java--jvm--重点面试题3

本文深入解析了Java中的关键概念,包括静态分派与动态分派的区别、方法重载与重写的使用场景、JVM内存溢出的不同类型及其原因、垃圾回收机制中的Minor GC与Full GC触发条件以及对象在内存中的布局细节。
  • 1.简述分派
    

包括静态分派与动态分派
a.静态分派:发生在编译时期,所有依赖静态类型来定位方法执行版本的分派称为静态分派,典型应用为方法重载。
b.动态分派:在运行期根据实际类型确定方法执行版本的分派过程。典型应用为方法重写。

  • 2.Java重写和重载?
    

方法重载:关键字overload,方法名和方法的返回类型都相同,方法参数个数和类型不一样
方法重写:也叫方法覆盖,关键字override,相对于类继承而言,重写的方法名,返回类型,参数个数,参数类型都要求和父类一样。

  • 3.jvm OutMemory的种类?
    

1.堆溢出:被缓存的实例对象,大的map,list引用大的对象等
2.栈溢出:栈帧太多
3.方法区溢出:加载很多类会有可能出现,GC不会在主程序运行期对此区域进行清理,可通过设置jvm启动参数解决:-XX:MaxPermSize=256m

  • 4.简述minor gc和full gc
    

Minor GC:从新生代回收内存,关键是Eden区内存不足。导致垃圾回收。
Major GC:从老年代回收内存,一般比Minor GC慢10倍以上。
Full GC:对整个堆来说的,出现Full GC通常伴随至少一次Minor GC,但非绝对。

  • 5.虚拟机栈中的各个部分?
    

a.局部变量表b.操作数栈c.动态链接d.方法返回地址.

  • 6.对象的内存布局?
    

对象内存布局分为三部分:对象头、实例数据、对齐填充。
对象头包含两部分:
1.存储对象自身运行时数据
2.对象指向它的类元数据指针–类型指针.以确定这个对象是哪个实例
实例数据:程序代码中所定义的各种类型的字段内容
对齐填充:不是必然存在,仅起到占位符作用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据学习爱好者

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值