java运行机制与垃圾回收机制

时间:2022-04-21 00:03:06

一、java机制

1.1、运行机制

  • 高级语言运行机制
    • 编译型:源代码–>特定平台机器码(效率高,脱离开发环境,移植性低)
    • 解释型:源代码–>特定平台的解释器–>特定平台的机器码(可移植,但是相当于是把编译与解释混在一 起,牺牲了运行效率)
  • java语言运行机制
    • 先编译后解释:java源文件 —javac编译器—> .class字节码文件(与平台无关) –jvm解释–> 特定平台机器码
    • 由此出现了生命周期为编译时和运行时的时间

1.2、垃圾回收机制

  • 简介:java内存分配和回收是由JRE后台自动运行的,JRE会回收无用的内存;这种机制称为垃圾回收机制,JRE提供一个后台线程进行检查和回收。(通常在cpu空闲或内存不足时进行,提高编程效率和安全性,但性能有影响,需要向对象进行跟踪)
  • 特点
    • 回收的是无用对象的内存空间,是jvm堆内存的内存空间,只能回收内存资源,不能回收数据库连接和磁盘IO
    • 在回收任何对象之前,总会调用他的finalize方法
    • 可以给对象的引用变量设为null暗示回收机制回收该对象内存资源
  • 强制垃圾回收
    • System.gc();Runtime.gc()
  • finalize方法
    • 只会由垃圾回收机制调用
    • 可恢复对象的finalize方法会激活对象
    • finalize方法出现异常时,垃圾回收机制不会报告异常,程序继续执行