专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 2020年精选Java面试题目

2020年精选Java面试题目

更新时间:2020-04-16 14:12:24 来源:动力节点 浏览1941次

    Java虚拟机是如何判定热点代码的?

    Java虚拟机判定热点代码的方式有两种:

    基于采样的热点判定:主要是虚拟机会周期性的检查各个线程的栈顶,若某个或某些方法经常出现在栈顶,那这个方法就是“热点方法”。这种判定方式的优点是实现简单;缺点是很难精确一个方法的热度,容易受到线程阻塞或外界因素的影响。

    基于计数器的热点判定:主要就是虚拟机给每一个方法甚至代码块建立了一个计数器,统计方法的执行次数,超过一定的阀值则标记为此方法为热点方法。

    Hotspot虚拟机使用的基于计数器的热点探测方法。它使用了两类计数器:方法调用计数器和回边计数器,当到达一定的阀值是就会触发JIT编译。

    方法调用计数器:在client模式下的阀值是1500次,Server是10000次,可以通过虚拟机参数:-XX:CompileThreshold=N对其进行设置。但是JVM还存在热度衰减,时间段内调用方法的次数较少,计数器就减小。回边计数器:主要统计的是方法中循环体代码执行的次数。

    以下Integer代码输出的结果是?

2020年精选Java面试题目

    答:true,false题目解析:此道题目考察的是,面试者对于基础类型高频区缓存的掌握,因为Integer的高频区的取值是-128-127,所以在这个区间的值会复用已有的缓存,对比的结果自然是true,false。

    有哪些方法可以解决哈希冲突?

    答:哈希冲突的常用解决方案有以下4种:

    开放定址法:当关键字的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,循环此过程直到找出一个不冲突的哈希地址,将相应元素存入其中;

    再哈希法:这种方法是同时构造多个不同的哈希函数,当哈希地址Hi=RH1(key)发生冲突时,再计算Hi=RH2(key),循环此过程直到找到一个不冲突的哈希地址,这种方法唯一的缺点就是增加了计算时间;

    链地址法:这种方法的基本思想是将所有哈希地址为i的元素构成一个称为同义词链的单链表,并将单链表的头指针存在哈希表的第i个单元中,因而查找、插入和删除主要在同义词链中进行。链地址法适用于经常进行插入和删除的情况;

    建立公共溢出区:将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。

    JVM内存布局是怎样的?

    答:不同虚拟机实现可能略微有所不同,但都会遵从Java虚拟机规范,Java8虚拟机规范规定,Java虚拟机所管理的内存将会包括以下几个区域:

    程序计数器(ProgramCounterRegister)

    Java虚拟机栈(JavaVirtualMachineStacks)

    本地方法栈(NativeMethodStack)

    Java堆(JavaHeap)

    方法区(MethedArea)

    以下StringBuffer传值修改后的执行结果是什么?

2020年精选Java面试题目

    答:hilaowang题目解析:String为不可变类型,在方法内对String修改的时候,相当修改传递过来的是一个String副本,所以String本身的值是不会被修改的,而StringBuffer为可变类型,传递过来的参数相当于对象本身,所以打印的结果就为hilaowang。

 以上就是动力节点java培训机构的小编针对“2020年精选Java面试题目”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>