Java初级程序员面试总结(一)--JVM篇

Java初级程序员面试总结(一)

引言:
我是一个菜鸟程序员,坐标HZ,最近在准备面试,所以想写点博客进行总结.
Q1: JVM你了解么?
Answer: JVM分为5个区:栈,堆,方法区,本地方法区,程序计数器.在JDK1.8时,堆的永久代被转移到元数据空间了.在栈区可以存放线程的栈帧,在堆区存放new的对象,又分成新生代,老年代,永久代.在方法区存放了常量,字节码文件等.在本地方法区存放除java外的其他语言文件,如c/c++.程序计数器是记录每条程序的执行顺序的.堆和方法区为共享区,其他为私有区.
Q2: JVM调优你会吗?
Answer: JVM可以设置Xmx最大堆内存,Xms初始堆内存,可以设置新生代和老年代的比例,Eden和Survivor的比例,选择相应的垃圾回收器如G1,CMS+ParNew,并行回收器组合等.
Q3: G1回收器你了解吗?
Answer: G1采用逻辑分区,新增H区,让创建的超大临时变量直接进入H区,不再在进入Old区避免了频繁调用full GC.采用Rset方式,将分区分成多个Card,每个Card516KB,进行相互的引用,加快了存活对象的查找效率.垃圾回收流程为初始标记STW,区域扫描,并发标记,最终标记STW,清除垃圾STW.
Q4: tomcat调优你会吗?
Answer: tomcat调优可以关闭AJP协议,因为现在用的都是nginx.可以设置线程池参数,比如KeepAlive,最大/核心线程数,工作队列.进行JVM调优.优化连接器,缓存优化,设置模式为NIO


以上为比较基础的常见问题.
JVM操作工具:VisualVM+MAT(dump堆内存文件,可查看对象的内存占用情况,依赖关系等信息),Jstatck(跟踪堆栈信息),JConsole(监控工具)
以上工具可以在jdk/bin中找到

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值