

Jeff Friesen
Jeff Friesen teaches Java technology (including Android) to everyone via articles, blogs, books, and software. In addition to writing Java books for Apress, Jeff has written numerous articles on Java and other technologies for JavaWorld, InformIT, Java.net, and SitePoint. Jeff can be contacted via his website at JavaJeff.ca.


Functional programming for Java developers, Part 2
Rewrite object-oriented code using functional techniques. Get started with lambdas, method references, functional interfaces, and the Streams API in Java

Functional programming for Java developers, Part 1
Optimize your Java code with these five functional programming techniques

Data structures and algorithms in Java, Part 5: Doubly-linked lists
A guide to advanced searching and sorting with doubly-linked lists and circular-linked lists and their algorithms

Data structures and algorithms in Java, Part 4: Singly linked lists
Learn how to search and sort linked lists in Java! Find out which algorithms are most used to sort linked lists and how each one stacks up for performance

Java language oddities
The Java language includes various behaviors that may puzzle newcomers to the language. This post examines three such behaviors involving arrays, bytes and shorts, and private fields and methods.

Data structures and algorithms in Java, Part 3: Multidimensional arrays
Multidimensional arrays are useful for complex computing scenarios, and ragged arrays can help conserve memory for big data applications. Learn how to create multidimensional arrays and ragged arrays and use them in your Java programs ...

Base64 encoding and decoding in Java 8
Java 8 will be remembered mainly for introducing lambdas, streams, a new date/time model, and Nashorn--but don't miss the new Base64 API. It could be just what you need to ensure data integrity in transit.

Data structures and algorithms in Java, Part 2: One-dimensional arrays
Get started with one-dimensional arrays and array variables, then try out five algorithms for searching and sorting arrays in your Java programs
Web services in Java SE, Part 4: SOAP with Attachments API for Java
Learn about SAAJ and other advanced Java SE Web service features
Web services in Java SE, Part 3: Creating RESTful Web services
Learn how to use Java SE's JAX-WS API to create a RESTful-based library Web service
Web services in Java SE, Part 2: Creating SOAP web services
Learn how to use Java SE's JAX-WS API to create a SOAP-based units-conversion Web service.

Data structures and algorithms in Java, Part 1: Overview
Get an overview of data structures and algorithms and how they work together in your Java programs

Web services in Java SE, Part 1: Tools overview
This post launches a four-part series introducing you to Java SE 6's support for Web services. Later in the series we'll build SOAP-based and RESTful-based Web services and explore advanced Web services topics.
Java library evolution and other puzzlers
Exploring puzzling code to figure out why it doesn't do what seems obvious is one way to improve your programming skills. Puzzle yourself today!

Java 9's other new enhancements, Part 6: Concurrency
Java 9 introduces a publish-subscribe framework for reactive streams, improvements to the CompletableFuture class, and other concurrency enhancements

Regular expressions in Java, Part 2: The Regex API
Complete your introduction to the Regex API, then find out how regular expressions make quicker work of common tasks like code documentation and lexical analysis.

Regular expressions in Java, Part 1: Pattern matching and the Pattern class
Pattern matching is an important technique used in text processing, and Regex is here to help. Find out how to use the Pattern class and constructs like quantifiers and boundary matchers to describe patterns in your Java programs.

Java 9's other new enhancements, Part 5: Stack-Walking API
Replacing StackTraceElement, the new Stack-Walking API supports filtering and lazy access to stack trace information, and makes it easier to obtain the caller class

Java 9's other new enhancements, Part 4: Multi-release JAR files
A Java 9 extension to the JAR file format makes it easier for third-party libraries and frameworks to use language and API features from newer Java releases