Simplicity (no header files, pointers, unions, operator overloading, virtual base classes, etc.)
Object-oriented (focus on data, namely objects, and object interfaces)
Distributed (Java applications can open and access objects on the network through URL)
Robustness (Java compiler can detect many problems that can only be detected at runtime in other languages)
Security (Java is designed to prevent various attacks)
Architecture neutral (the compiler generates an architecture-neutral object file format, which is a compiled code, as long as there is a java runtime system, these compiled codes can run on many processors)
Portability (in java, the data structure has a fixed size, which eliminates the main problem of code migration)
Interpreted (java interpreter can execute java bytecode on any machine where the interpreter is transplanted)
High performance (bytecode can be dynamically translated into machine code corresponding to the specific CPU running this application at runtime)
Multithreading (the first mainstream language to support concurrent programming)
Dynamic (new methods and instance variables can be added freely in the library without affecting the client terminal)
2. Java development history
version
years
characteristic
1.0
1996
Language itself
1.1
1997
Inner class
1.2
1998
strictfp modifier
1.3
2000
no
1.4
2002
Affirmation
5.0
2004
Generic class, for each loop, variable parameter, auto-boxing, metadata, enumeration, static import