JAVA面试场景题

时间:2025-02-17 07:32:41

1、Java堆内存溢出怎么解决

堆内存溢出一般是年老代溢出。当程序不断地创建大量对象实例并且没有被GC回收时,就容易产生内存溢出。

堆内存溢出很可能伴随内存泄漏,应首先排查可能泄露的对象,再通过工具检查GC roots引用链,从而发现泄露对象是由于何种引用关系使得GC无法回收他们;若不存在内存泄漏,换句话说就是内存中的对象还都需要继续存活,则可通过修改虚拟机的堆参数将堆内存增大。

2、java内存泄露的排查思路

1、内存溢出:你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,出现溢出。
2、内存泄漏:你用new申请了一块内存,后来很长时间都不再使用了(按理应该释放),但是因为一直被某个或某些实例所持有导致 GC 不能回收,也就是该被释放的对象没有释放。

内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点:
1)首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;
2)其次,这些对象是无用的,即程序以后不会再使用这些对象。
如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存。(或者引用计数器不为零,循环引用)

内存泄露的发现?

如果频繁出现fullGC说明可能有内存泄露的概率

3、CAS的ABA问题如何解决?

通过给数据加版本号的方式

 

面试海量数据处理题总结_向着星辰大海-****博客_海量数据面试题

教你如何迅速秒杀掉:99%的海量数据处理面试题_结构之法 算法之道-****博客 

海量数据处理面试题集锦_结构之法 算法之道-****博客_海量数据处理面试题 

从Trie树(字典树)谈到后缀树(10.28修订)_结构之法 算法之道-****博客_trie 树 

面试必须掌握的十个海量数据问题及解决方案_hitxueliang的专栏-****博客_海量数据问题 

面试经典的海量数据处理(TOPK)问题—转载+个人见解!_Much effort, much prosperity.-****博客_海量数据topk 

十道海量数据处理面试题与十个方法大总结_tianyue168的专栏-****博客