JavaSE 第一章 初识 Java 复习要点

主要是复习和不漏,不适合自学,想看的可以看一下

一、运行 Java 程序

运行 Java 程序需要经过编译和执行两个关键步骤:

  1. 编译阶段:借助Javac.exe编译器对 Java 源程序进行编译操作,执行命令Javac xxx.java,该过程会生成对应的xxx.class字节码文件。字节码文件是 Java 程序的中间表示形式,具有平台无关性的特点。
  2. 执行阶段:使用java命令运行生成的xxx.class字节码文件,命令为java xxx(注意此处不需要加.class后缀) 。Java 程序最终在 JVM(Java 虚拟机)中运行,JVM 充当了 Java 程序与操作系统之间的桥梁,使得 Java 程序实现 “一次编写,到处运行”。  

这里还涉及到 JDK、JRE、JVM 三个重要概念,它们之间的关系如下:

  1. JDK(Java Development Kit:即 Java 开发工具包,它包含了 JRE 以及一系列开发工具,像我们编译程序使用的javac工具就属于 JDK 中的开发工具集。
  2. JRE(Java Runtime Environment:Java 运行时环境,由 JVM 和 JavaSE 标准类库组成。JRE 是运行 Java 程序所必需的环境。
  3. JVM(Java Virtual Machine:Java 虚拟机,负责加载字节码文件并解释执行,它屏蔽了底层操作系统的差异。

问题:JDK,JRE,JVM之间的关系?

JDK = JRE+开发工具集(比如:javac)

JRE = JVM+JavaSE标准类库

二、一些不常见的关键字

1. instanceof

instanceof关键字用于判断某个对象是否属于特定类或接口的实例,返回值为布尔类型。在实际开发中,常用于类型检查和多态性的处理,例如:

System.out.println(animal instanceof Dog);

上述代码会判断animal对象是否是Dog类的实例,并返回相应的布尔结果。

2. native

native关键字用于修饰方法,表明该方法的实现是由其他语言(如 C、C++)编写的,即本地方法。当 Java 需要调用底层操作系统的功能,或者希望利用其他语言的高效性能时,会使用到本地方法。

3. transient

transient用于修饰变量,在对象序列化过程中,被该关键字修饰的变量不会被序列化。当对象被反序列化后,transient字段会被设置为默认值(如null0)。例如:

class User implements Serializable {

    private String username;

    private transient String password; 

}

 在上述代码中,password字段在对象序列化时不会被保存,增强了数据安全性。

4. strictfp

strictfp能够确保浮点数运算在不同平台上都能获得一致的结果,它可以修饰类、接口或者方法,避免因硬件或 JVM 实现差异导致的舍入误差。示例如下:

public strictfp double calculate() {

    double a = 1.0 / 3.0;

    double b = 2.0 / 3.0;

    return a + b;

}

通过strictfp修饰,保证了calculate方法中浮点数运算结果的一致性。

5. volatile

volatile用于修饰变量,保证不同线程对该变量操作时的可见性,即一个线程修改了这个变量的值,新值对于其他线程来说是立即可见的。由于变量的可见性是影响多线程安全的重要因素,因此volatile在多线程编程中扮演着重要角色。

6. assert

assert用于调试阶段进行断言检查,若断言条件不成立,会抛出AssertionError。通常用于验证方法参数的合法性等场景,如:

public class Calculator {

    public int divide(int numerator, int denominator) {

        // 确保分母不为零(通常用if判断,但断言可用于内部防御性检查)

        assert denominator != 0 : "分母不能为零";

        return numerator / denominator;

    }

}

在调试Calculator类的divide方法时,assert可以帮助快速发现参数不合法的情况。

以上就是 JavaSE 第一章 “初识 Java” 的核心复习要点,掌握这些内容能够为后续 Java 学习打下坚实的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值