每日五题-java面试题220826

1、JRE、JDK、JVM以及 JIT之间有什么不同?

JRE 代表 Java运行时(Java-run-time),是运行 Java引用所必须的。JDK代表 Java 开发工具(Java Development kit),是 Java 程序的开发工具,如 Java 编译器,它也包含 JRE。 JVM 代表java 虚拟机(Java virtual machine), 它的责任是运行 Java 应用。 JIT代表 即时编译(Just In Time compilation),当代码执行的次数超过一定的阈值时,会将 Java 字节码转换为本地代码,如,主要的热点代码会被转换为本地代码,这样有利于大幅度提高 Java 应用的性能。

2、解释 Java 堆空间及 GC?

当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建堆空间,当程序中创建对象的时候,就从堆空间中分配内存。GC是 JVM 内部的一个进程,回收无效对象的内存用于将来的分配。

3、你能保证 GC 执行吗?

不能,虽然你可以通过 System.gc() 或者 Runtime.gc() ,但是没有办法保证 GC 的执行。

4、怎么获取 Java 程序使用的内存?堆使用的百分比?

可以通过 java.lang.Runtime 类中与内存相关方法来获取剩余的内存,总内存及最大堆内存。通过这些方法你也可以获取到堆使用的百分比及堆内存的剩余空间。Runtime.freeMemory() 方法返回剩余空间的字节数,Runtime.totalMemory() 方法总内存的字节数,Runtime.maxMemory() 返回最大内存的字节数。

5、java 中 堆 和栈 有什么区别?

JVM 中 堆和栈属于不同的内存区域,使用的目的也不同。栈常用于保存方法帧和局部变量,而对象总是在堆上分配。栈通常都比堆小,也不会在多个线程之间共享,而堆被整个 JVM 的所有线程共享。

源链接-掘金

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值