Java Tutorial – Language Fundamentals for Beginners with Examples
Java Tutorial – Language Fundamentals for Beginners with Examples
In this tutorial we will cover Core Java Language Fundamentals and provide adequate examples to help facilitate your learning. We will cover core topics like, Primitives, Variables, Operators, Separators and Object-Oriented concepts.
What’s Covered
Primitives
The Java programming language is strongly-typed, meaning all variables must be declared before they may be used. In Java there are eight (8) primitives types, each with their own format and size. Six out of the eight primitives are numeric, one is character, and the last one is boolean. Let’s look at the following example and see how to declare and assign variables in Java:
- boolean is_active = false;
In the above example, we declare a boolean variable whose name is is_active and whose value has been assigned as false.
Numeric Primitives
A byte is 8 bits long so it can only have 256 possible values. However, since the byte primitive is a signed number it only supports values from -128 to 127. The first 128 numbers are for numbers ranging from -128 to -1, then 0 takes a spot and 1 through 127 take the remaining values.
We should use short when we know that data type is integer value and it will not exceed the 32k limit imposed by a short. The primitive int can store numbers ranging from -32,768 to 32,767 and uses two-bytes. This will save us two bytes of space as the short is only 16-bits as well as performance gains versus the primitive int and long especially when being used in arrays. However, most of the time the JIT compiler may be able to optimize this and the net effect on performance may be negligible.
If you need to use store longer values then use should use int. The primitive int can store numbers ranging from -2,147,483,648 to 2,147,483,647 so this primitive is probably so one that is used most often. Personally, I generally rely on using the primitive int for most of my applications.
When you are required to store huge values in your applications the primitive long must be used. This primitive can store values that range from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. It uses eight bytes (64 bits) to store these extremely large values.
At this point, we have covered all of the primitives that can handle whole numbers or integers. If you need to store numbers with decimals points then you will need to rely on using float and double.
The floating-point types float and double are conceptually associated with the single-precision 32-bit and double-precision 64-bit format IEEE 754 values and operations as specified in IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985.
Rule of Thumb
As a general rule, you should consider the length and type of data you will be storing and use a primitive that is large enough to accomodate your storage requirements and yet small enough that you’re not arbitrarily wasting space.
char Primitive
The primitive char can store a single Unicode character such as ‘A’, ‘c’, or ‘$’. In addition using Unicode allows it to contain characters outside of those used in the English alphabet including characters like ‘ñ’, ‘ù’ or ‘ä’.
boolean Primitive
The primitive boolean can only store two possible values (true or false).
Primitive | Range | Description |
---|---|---|
byte | -128 to 127 | Byte integer(8 bits) |
short | -32,768 to 32,767 | Short integer, Two-Bytes (16 bits) |
int | -2,147,483,648 ~ 2,147,483,647 | Integer, Four-Bytes (32 bits) |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | Long Integer, Eight-Bytes (64 bits) |
float | 14e-45 ~ 3.4028234e38 | Single Precision floating point (32 bits) |
double | 4.9e-324 ~ 1.7976931348623157e308 | Double Precision floating point (64 bits) |
char | \u0000 ~ \uffff | Character data type, 16-but Unicode character |
boolean | true or false | Boolean data type, only supports true/false |
Variables
Variables are used to hold data while the application is running. All computer programming languages have the concept of variables and use it to one degree or another in much the same way. A variable is used to store data coming from many different mediums like (keyboard, disk, mouse, internet, biometric sensors, state changes, or by interactions with other applications, etc). We will store the values read from these mediums into the variables, sometimes maniulate it in some way or interact with this data and make decisions based on this data and then often times write this data back out to other mediums like (disk, internet, database, console, printer, etc).
Java Variable Types
The Java programming language defines four types of variables:
- Instance Variables (non-static fields)
- Class Variables (static fields)
- Local Variables
- Parameters
Instance Variables (non-static fields)
Objects store their state in “non-static fields” or instance variables, that is, fields that do not have the static keyword. The values stored in instance variables are unique to each instance of a class. In other words, every instance of our class Customer contains four instance variables (non-static fields) and the values contained in each instance will be unique to that instance of the class.
public class Customer { private String customerId; private String firstName; private String lastName; private int age; ... }
Class Variables (static fields)
Class variables are declared with the static keyword. Class variables (static fields) belong to the class and not to any individual instances of the class. The value that is stored in a class variable will be the same for all instances of that class. A variable declaring the Logger log for our class Customer would create a static field and all instances would share this same value.
public class Customer { public static final Logger log = LoggerFactory.getLogger(Customer.class); private String customerId; private String firstName; private String lastName; private int age; ... }
Local Variables in Java
Local variables in Java are declared inside methods. These local variables are only accessible within the body of the method in which they are declared. The local variable’s scope is from the opening curly brace ‘{‘ until the closing curly brace ‘}’ of that method. These variables are only visible to the method in which they are declared and may not be used anywhere else in the class. Other methods are not even aware that the variables exist.
public void calculateRewards() { int rewardsPoints = 0; int currentYearlySales = 0; ... }
Parameters
Parameters in Java are declared within the parenthesis of the method itself, commonly called the method declaration. Additionally, parameters are always called variables and not fields. Parameters are used as a mechanism to pass values into the method being called. Some people may also refer to parameters as arguments, although I would argue that the latter has more to do with the value of the instance that is passed at runtime.
In the example below, you will notice that I am passing two parameters, rewardPoints and Sales, to the showRewardAndSales method. These two parameters are then used in the method and finally displayed in the console using a System.out.println() statement.
public void showRewardAndSales(int rewardPoints, int Sales) { ... // do something... System.out.println("Reward Points Earned..: " + rewardPoints); System.out.println("Current Yearly Sales..: " + Sales); }
Java Variable Declaration and Assignment
In Java we declare variables by writing the type followed by the name of the variable followed by a semicolon.
Variable Declaration
In the following example I will declare all of the primitives available in Java.
byte myByte; short myShort; int myInt; long myLong; float myFloat; double myDouble; char myChar; boolean myBoolean;
Declare Multiple Variables at Once
We can declare mutliple variables having the same type on the same line by using a comma as separator between each of the variables.
int x,y,z; char mySeparator, myLineBreak, myPageBreak; boolean isActive, isAlive;
Warning
I don’t recommend using the multiple declaration approach as I feel it reduces readability in the code.
Variable Assignment
In the following example I will declare all of the primitives available in Java.
byte myByte = 20; short myShort = 100; int myInt = 30293; long myLong = 89303; float myFloat = 192.75; double myDouble = 10920.373; char myChar = '|'; boolean myBoolean = false;
Java Constants
A constant is a variable whose value that cannot be changed once it has been assigned. In Java, we declare constants using the final keyword. When declaring constants, we use ALL CAPS in the constant name and use underscore (_) as word separators.
final int MAX_FILES = 25; final double PI = 3.141592653589;
Java Constants using Static and Final
In general, I prefer to declare constants using both static and final. As explained earlier, using the static keyword will make the variable a class variable so only one variable is created per class. Using the final keyword tells Java that the reference address to the value of the variable may not be altered.
public class MyClass { private static final int MAX_FILES = 25; private static final double PI = 3.141592653589; ... }
What the final keyword means is that once the value has been assigned to MAX_FILES and PI, it cannot be re-assigned a new value.

Core Java Related Tutorials
- Base64 Encoding and Decoding Examples in Java 8
In this tutorial we will discuss how to Encode and Decode using Base64 using Java 8, which now finally has native Base64 support. - Base64 Encoding and Decoding Examples in Java using Google Guava
This tutorial will introduce how to Encode and Decode using Base64 using Google’s Guava Project Open Source library. - Base64 Encoding and Decoding Examples in Java using Apache Commons
This tutorial will introduce Base64 encoding and decoding examples using the Apache Commons Codec library. - Custom Number Formatting in Java
In this example we will show you how to use the NumberFormat and DecimalFormat classes to format numbers using special patterns. - Custom Date Formatting in Java
In this example we will show you how to use the SimpleDateFormat class to format Date objects using special patterns to better fit the needs of the application.
Please Share Us on Social Media






Leave a Reply