Java Language
Strict object-oriented programming language.
Forces an object-oriented model where the main method is in a class.
Forces a one-class-per-file approach.
The name of the file must match the public class in the source code.
Can be used in a wide range of scenarios.
Mobile: Android applications <- focus of this class.
Desktop: CLI or Desktop applications.
Server: Web apps using application servers.
Web: Java Applets, and Java Web Start, sometimes via Java Network Launch Protocol.
Mostly dead as browsers dropped support due to security concerns.
Promotes the motto: Write once, run anywhere.
Enabled by using bytecode instead of machine code.
Bytecode runs on a Java Virtual Machine.
JVM implementation interprets bytecode in a pseudo-CPU.
JVM is implemented natively for each supported architecture.
Host architectural aspects are not directly exposed to applications.
Access is mediated (and limited) by the interfaces exposed by the JVM.
Source files must have .java extension.
import statement can be used to get features from other classes.
Compiled bytecode is in .class files.
The class filename matches the class inside, which enables dynamic, on-demand loading.
For nested classes, the name of the .class file also reflects this structure.
Last updated