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.

Immutable empty collections and iterators

Immutable empty collections and iterators

Find out why the java.util.Collections class includes static methods that return immutable empty collections and iterators.

When is a character not a character?

The values assigned to char variables don't always represent characters. Learn all about characters and their variables in this edition of Java Q&A.

Exploring JavaFX's Application class

JavaFX's Application class is an essential part of every JavaFX application. Learn about the various capabilities that Application makes available.

The six roles of the interface

Java's interface language feature often puzzles newcomers to this language. Jeff eliminates this mystery by presenting the six roles that interfaces play in the Java language.

Checkers, anyone?

Checkers, anyone?

Explore the design and implementation of a Swing-based library that provides the user interface for the game of checkers.

JavaFX improvements in Java SE 8u40

JavaFX 8u40 added support for accessibility, standard and custom dialogs, a spinner control, and text formatting. Learn about these new capabilities in this installment of Java Q&A.

NIO.2 cookbook, Part 3

Leverage file-visitor, glob/pathmatcher, and directory-watcher features for advanced tasks in NIO.2.

Java 101: The essential Java language features tour, Part 7

Java 101: The essential Java language features tour, Part 7

End your tour of Java's essential language features with Java 8's method references, interface default and static methods, and three lesser known language updates, then preview new features coming in Java 9.

NIO.2 cookbook, Part 2

Test out these recipes for obtaining paths and retrieving path information, testing files and directories, and working with attributes in NIO.2.

Java 101: The essential Java language features tour, Part 6

Java 101: The essential Java language features tour, Part 6

Learn by example how lambdas interact with scopes, local variables, the this and super keywords, and exceptions in Java programs.

NIO.2 cookbook, Part 1

Start here, with three recipes for copying, deleting, and moving files using NIO.2.

Invokedynamic 101

What do you need to know about using invokedynamic and the java.lang.invoke API package in Java 7 and Java 8?

Java ME 8 and the Internet of Things

Java ME 8 and the Internet of Things

For Java developers just getting started with embedded programming and IoT, this guide will orient you in Java ME's history and the new Java ME 8 and Java Embedded platforms.

Customizing cell rendering

Swing's javax.swing.JList component and JavaFX's javafx.scene.control.ListView control let you customize how their various cells are rendered. In this post, I show you how to accomplish these tasks.

Java 101: The essential Java language features tour, Part 5

Java 101: The essential Java language features tour, Part 5

Not all varargs methods will contribute to heap pollution, so find out which ones do and why, in this second half of Jeff Friesen's introduction to small language changes that have made a big difference since JDK 7.

The ultimate superclass, Part 3

This post completes a three-part series in which I present and answer questions about Object and its methods.

Java 101: The essential Java language features tour, Part 4

Java 101: The essential Java language features tour, Part 4

Project Coin was the Java 7 language update that emphasized small changes with a big impact. Get a primer on automatic resource management with try-with-resources, then zip through three more JDK 7 updates: switch-on-string,...

The ultimate superclass, Part 2

Java beginners are invited to dig deeper into Java's ultimate superclass with this introduction to Object's finalize(), getClass(), and hashCode() methods.

Java 101: The essential Java language features tour, Part 3

Java 101: The essential Java language features tour, Part 3

Get introduced to the last but not least of new features that have improved Java's productivity since JDK 5: Autoboxing and unboxing, the enhanced for loop, static imports, varargs, and covariant return types.

The ultimate superclass, Part 1

This post launches a three-part series in which I present and answer questions about Object and its methods.

Load More