Oct 6, 2024•2 min read
Java Building Blocks
A practical summary of Java fundamentals: entry points, imports, compilation, classpath, literals, wrappers, text blocks, and garbage collection.
title: "Java Building Blocks" date: "2024-10-06" excerpt: "A practical summary of Java fundamentals: entry points, imports, compilation, classpath, literals, wrappers, text blocks, and garbage collection."
tags: "java,language-basics,certification" source: "https://shrikant-havale.in/2024/10/06/java-building-blocks/"
This article is a compact, exam-focused set of Java fundamentals and command-line basics.
Program Entry Point
- The
mainmethod accepts multiple valid parameter forms:String[] argsString args[]String... args
finalmodifiers are optional inmainsignatures.
public static void main(String[] args) {}
public final static void main(final String[] args) {}
Launching Single-File Programs
- Standard compile/run flow:
javac Zoo.java
java Zoo
- Single-file launch shortcut:
java Zoo.java one two
Imports and Packages
java.langis auto-imported.- Wildcards only apply at one package level.
- Class imports take precedence over wildcard imports.
- Classes in the same package do not need explicit imports.
import java.util.Random;
Random r = new Random();
int n = r.nextInt(10);
javac and java Commands
Compile
javac packagea/ClassA.java packageb/ClassB.java
javac -d classes packagea/ClassA.java packageb/ClassB.java
Classpath
javac -cp "C:\\temp\\directoryWithJars\\*" myPackage/MyClass.java
java -cp classes packageb.ClassB
- On Windows, classpath entries are separated by
;. - On macOS/Linux, classpath entries are separated by
:.
jar Command Basics
jar -cvf test.jar .
jar --create --verbose --file test.jar .
jar -cvf test.jar -C dir .
Initialization Order
- Fields and instance initializer blocks run in declaration order.
- Constructor runs after fields/initializers.
Numeric Literals and Types
floatliterals requiref/F.longliterals often requireL.- Supports octal (
017), hex (0xFF), binary (0b10). - Numeric underscores are allowed with placement rules.
Wrapper Classes
int primitive = Integer.parseInt("123");
Integer wrapper = Integer.valueOf("123");
Double apple = Double.valueOf("200.99");
Useful conversions include intValue(), longValue(), doubleValue(), etc.
Text Blocks
- Require a line break after opening
""". - Incidental whitespace is trimmed relative to left margin rules.
Identifiers and var
- Identifiers cannot start with numbers.
_alone is not a valid identifier.- Reserved words and literals (
true,false,null) cannot be used as variable names. varis for local variable inference only.
Garbage Collection Notes
System.gc()is only a request.- Objects become GC-eligible when no accessible references remain.
public class Bear {
private Bear pandaBear;
private void roar(Bear b) {
System.out.println("Roar!");
pandaBear = b;
}
public static void main(String[] args) {
Bear brownBear = new Bear();
Bear polarBear = new Bear();
brownBear.roar(polarBear);
polarBear = null;
brownBear = null;
System.gc();
}
}
Source
Original post: https://shrikant-havale.in/2024/10/06/java-building-blocks/