java知识点

一、java特点

        跨平台,平台无关性,自动内存管理,面向对象,多线程,网络。

二、JDK,JRE

        JDK,java开发人员工具包。JRE,java运行环境。现在已经整合了,一个jdk包含了JRE。java是通过JVM去实现的。jvm即java虚拟机,运行java程序的一个容器,提供不同操作系统的接口。

三、类加载机制

        讲的是jvm如何把class文件加载到软件中去。

四、JVM模块

        方法区,本地方法栈,堆空间,虚拟机栈,PC寄存器,程序计数器。

五、Java程序运行过程

  1. 源代码编写: 开发人员使用Java编程语言编写源代码文件,通常以.java为扩展名。

  2. 编译: 使用Java编译器(如javac)将源代码文件编译成字节码文件。字节码是一种中间语言,它是平台无关的,能够在任何支持Java的平台上运行。编译过程中,编译器会检查源代码的语法和语义错误,并生成对应的.class字节码文件。

  3. 类加载: 当Java程序启动时,Java虚拟机(JVM)通过类加载器(ClassLoader)系统来加载字节码文件。类加载器负责查找和加载类文件,将其转化为内存中的Class对象。

     

    类加载过程包括以下阶段:

    • 加载:从文件系统或网络中读取.class文件数据。
    • 验证:确保字节码符合Java语言规范和JVM规范,防止恶意代码执行。
    • 准备:为类的静态变量分配内存并初始化为默认值。
    • 解析:将符号引用转换为直接引用,如方法、字段和接口的引用。
  4. 类初始化: 如果类中有静态初始化块或静态变量需要初始化,JVM会在解析阶段后进行类初始化。

  5. 对象创建: 当需要创建对象时,JVM会为对象分配内存,并调用构造函数初始化对象的实例变量。

  6. 运行: JVM的执行引擎开始执行程序代码。它解释或编译(通过JIT编译器)字节码为特定平台的机器指令。

  7. 垃圾回收: 在程序运行过程中,JVM通过垃圾回收器自动管理内存。当一个对象不再被任何引用指向时,垃圾回收器会识别并回收其占用的内存。

  8. 异常处理: 如果在程序运行过程中发生异常,JVM会按照异常处理机制寻找适当的异常处理器来处理异常。

  9. 程序结束: 当程序执行完毕或者遇到系统退出命令(如System.exit())时,JVM会进行清理工作,包括停止线程、关闭打开的文件等,然后退出。

 六、java类中区域的执行顺序

        1.静态成员变量

        2.静态方法

        3.构造函数,构造方法区

        4.成员变量

        5.内部类

        6.main函数

        7.成员方法

七、类加载器

        在ClassLoader中被定义,具体的实现交给具体实现类,如BootstrapClassLoader类加载器(系统级类加载器rt.jar)------------->在这个之下,还有一个第二级类加载器(ExtClassLoader),是一个第三方扩展库类加载器。----->  应用类加载器ApplicationClassLoader--------------------------------->CustomClassLoader自定义类加载器,由自己去实现。

八、类加载器的加载机制

        双亲委派机制

        我们写的java文件都是先通过应用级容器进行装载,它在拿到一个文件的时候,他不是马上加载,而是先去询问父级容器,即扩展类加载器,看他有没有加载这个文件,在这个父级之上,还有一个系统级的类加载器。这时,系统加载器也要去询问上一级Bootstrap类加载器。要通过父级和爷爷级的两个操作,确保他们俩都没有加载,这时候就交给类文件加载器加载。(一层一层向上去搜索,看这个文件有没有被加载你)

九、类加载器的生命周期步骤

        加载

        链接      

                验证,验证一些数据的合法性

                准备,

                解析,讲具体的符号转换为jvm能够识别的具体的符号引用

        初始化

        使用

        卸载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值