Book Image

Java Fundamentals

By : Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare
Book Image

Java Fundamentals

By: Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare

Overview of this book

Since its inception, Java has stormed the programming world. Its features and functionalities provide developers with the tools needed to write robust cross-platform applications. Java Fundamentals introduces you to these tools and functionalities that will enable you to create Java programs. The book begins with an introduction to the language, its philosophy, and evolution over time, until the latest release. You'll learn how the javac/java tools work and what Java packages are - the way a Java program is usually organized. Once you are comfortable with this, you'll be introduced to advanced concepts of the language, such as control flow keywords. You'll explore object-oriented programming and the part it plays in making Java what it is. In the concluding chapters, you'll get to grips with classes, typecasting, and interfaces, and understand the use of data structures, arrays, strings, handling exceptions, and creating generics. By the end of this book, you will have learned to write programs, automate tasks, and follow advanced courses on algorithms and data structures or explore more advanced Java courses.
Table of Contents (12 chapters)
Java Fundamentals
Preface

Autoboxing and Unboxing


Sometimes, we need to deal with primitive types in methods that only accept objects. A good example of this is when we want to store integers in an ArrayList (which we will discuss later). This class, ArrayList, only accepts objects, and not primitives. Fortunately, Java provides all primitive types as classes. Wrapper classes can hold primitive values and we can manipulate them as if they were normal classes.

An example of the Integer class, which can hold an int is as follows:

Integer a = new Integer(1);

We can also skip the new keyword and the compiler will implicitly wrap it for us:

Integer a = 1;

We can then use the object as if it was any other object. We can upcast it to Object and then downcast it back to an Integer.

This operation of converting a primitive type into an object (reference type) is referred to as autoboxing.

We can also convert the object back into a primitive type:

Integer a = 1;
int b = a;

Here, the b primitive is assigned the value of a, which is...