java高级工程师原理面试题分析
在进入高级工程师的领域后,对于实际java操作也算是小大神的级别,不过还是逃不脱面试的环节。在高级的java题目中,理论知识的考察也会更加细致,在一些机制的原理上和使用的效率对比上更为明显。本篇小编整理出了一些高级工程师的面试题,大家可以看看是否能全部答出。
1.JVM结构原理、GC工作机制详解
具体参照:JVM结构、GC工作机制详解
说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法( 这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:Java GC机制算法
2.char为什么比varchar快?
varchar存储的时候前两个字节会存储整个字符串的长度,最后一个字节会存储标志符。varchar读取到内存中的时候,是最大的设置,比如varchar(200),虽然实际值存储4个字符,但是在内存还是会占用200字符。varchar如果长度过大,还会造成拆分或者分页机制。如果频繁的修改字符串的长度,varchar还要涉及重新计算长度等。总体来说,char快的原因是用空间换时间。
3. Java创建线程之后,直接调用start()方法和run()的区别
调用run会在当前线程中执行方法,调用start会开启一条新线程来执行方法。
4.判断链表是否有环
可以采用“快慢指针”的方法。就是有两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步
操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next->next。
5.数据库引擎的区别
MyISAM与InnoDB的区别
InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
6.JVM优化方法
(1)适当的增大堆内存大小
(2)选择合适的垃圾收集器
(3)G1合理设置停顿时间
(4)合理设置并发线程数
(5)调整启动并发GC时堆内存占用百分比
(6)内存泄漏和内存溢出的区别,分别产生的原因,及解决方案
7.Java集合类:list、set、queue、map实现类
queue的实现类: AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, LinkedBlockingQueue,DelayQueue,LinkedList,PriorityBlockingQueue,PriorityQueue和ArrayDqueue
8.什么是设计模式
设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
以上就是java高级工程师面试题的展示,答案也同时附在了题目下方。在对题目进行理解后就可以开始作答,然后比对答案看看自己的理解还有哪些不足的地方吧。更多Java试题指路:java面试题
在准备面试的一段时间,我们需要对基本的理论知识做一个复习,尤其是一些反复会问到的知识点。相信在有所准备之后,大家在面试时也能增添不少的信心。下面我们就java的专业模块分类进行展示,并在分类下列举少数试题,最后带来 ...