Java是一种面向对象语言,它拥有面向对象语言的特性,如:封装、继承、多态等。
其中有跟其他面向对象语言不同的地方,如:Java支持的是单继承,也就是说一个子类只能有一个父类,如果在实现中存在需要多个父类的情况,可以用接口,Java支持多接口。
跟Java有关的JRE、JDK:
JRE是Java运行环境,包含JVM、Java类库、以及一些模块等。
JDK是Java开发工具,可以看作是JRE的一个超集,提供了更多工具,比如编译器、各种诊断工具等。
Java还有两个特性,一是跨平台性,二是Java的垃圾回收机制GC。
跨平台性是因为Java源代码首先会通过Javac编译成字节码,然后在运行时,通过JVM内嵌的解释器将字节码转换成为最终的机器码。这个字节码文件就是Java跨平台的关键,Java通过字节码和JVM这种跨平台的抽象,屏蔽了操作系统和硬件上的细节,实现 了“一次编译,到处执行”。(JDK9引入了一种新的编译模式AOT,直接将字节码转机器码)
垃圾回收机制是Java会自动回收内存,在内存和系统资源紧张的情况下,JVM会自动将那些无用对象(也就是没有再被引用的对象)所占用的内存空间回收。不需要我们手动去释放资源回收资源。另外我们也可以显式调用system.gc()来手动回收。GC使我们可以不用担心内存和系统资源的分配和回收,同时也降低了内存泄漏。
语言特性
泛型:就是将类型参数化,是JDK5引入的类型机制。
Lambda表达式:简单的说就是匿名方法。
基础类库(具体后续介绍)
集合、并发、网络、IO/NIO、安全
集合类型主要有3种,set、list、map。
并发
网络
IO/NIO
安全