Java入门,深入理解Java平台及其关键特性

Java平台简介

Java的特性:

  1. 跨平台能力:Java的标志性特点是“一次编写,到处运行”(Write once, run anywhere)。通过字节码和Java虚拟机(JVM),Java可以在不同的操作系统和硬件上运行,这种跨平台的抽象屏蔽了底层的细节,使得Java程序具备了很强的可移植性。

  2. 垃圾收集:Java通过垃圾收集器(Garbage Collector)管理内存,大部分情况下,程序员无需手动处理内存分配和回收。常见的垃圾收集器包括Serial GC、Parallel GC、CMS、G1等,每种收集器在不同的工作负载下表现最佳。

JVM、JRE、JDK的关系

**JVM(Java Virtual Machine)**是Java虚拟机,Java程序运行在虚拟机上。不同的平台有对应的JVM实现,这也是Java能够跨平台运行的基础。

**JRE(Java Runtime Environment)**包括Java虚拟机和Java程序所需的核心类库。核心类库主要是java.lang包,其中包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程和异常处理类等。如果想运行一个开发好的Java程序,只需安装JRE。

**JDK(Java Development Kit)**是为Java开发人员提供的开发工具包,包含了JRE以及编译工具(如javac.exe)、打包工具(如jar.exe)等开发工具。因此,安装了JDK就不需要再单独安装JRE。

Java是解释执行的吗?

严格来说,这个说法不完全准确。Java源代码首先通过javac编译成字节码(bytecode)。在运行时,Java虚拟机(JVM)内嵌的解释器将字节码转换为机器码。然而,常见的JVM(如Oracle JDK的HotSpot JVM)提供了即时编译器(JIT),能够在运行时将热点代码编译成机器码,从而实现部分代码的编译执行,而非解释执行。

字节码的好处

字节码是Java源代码通过虚拟机编译器编译后生成的文件(.class文件),它不针对任何特定的处理器,只针对虚拟机。

采用字节码的主要好处在于它使Java实现了编译期与运行时的分离。Java源代码通过javac编译生成字节码,而不是直接生成机器码。这种方式通过JVM的跨平台抽象,屏蔽了操作系统和硬件的细节,实现了“一次编译,到处运行”的目标。

基础语法

JDK 1.8 之后的新特性

  1. 接口默认方法:Java 8允许在接口中添加非抽象的方法实现,只需使用default关键字。

  2. Lambda表达式和函数式接口:Lambda表达式本质上是匿名内部类的一种简化形式,可以将代码块作为参数传递。使用Lambda表达式可以使代码更简洁,但需注意不要滥用以保持代码可读性。

  3. Stream API:Stream API提供了一种函数式编程方式,可以对集合进行复杂操作。它允许指定对集合进行的操作,如查找、过滤和映射数据,并且支持并行执行。

  4. 方法引用:方法引用提供了一种简洁的语法,可以直接引用已有的Java类或对象的方法或构造器,与Lambda表达式结合使用时尤为强大。

  5. 新的日期时间API:Java 8引入了改进的日期时间API,以便更好地管理日期和时间。

  6. Optional类:为了解决NullPointerException问题,Java 8引入了Optional类。Optional类旨在减少空指针异常的发生,并鼓励编写更干净的代码。

  7. 新工具:如Nashorn引擎(jjs)、类依赖分析器(jdeps)等新编译工具。

构造器是否可以重写

构造器不能被重写(override),但可以被重载(overload)。因此,在一个类中可以看到多个构造函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值