
java常见面试
老新人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA之 多线程下的 HashMap 的死循环原因
(转)在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite...原创 2019-03-31 23:53:59 · 182 阅读 · 0 评论 -
为什么面试要问hashmap 的原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...原创 2019-03-31 23:44:26 · 589 阅读 · 0 评论 -
java常见面试题之:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
基本原理(对象引用遍历方式): 对于GC(垃圾收集)来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。 通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。 通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。 当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。 垃圾回收器不可以马上回收内存。 垃圾收集器不可以被强制...原创 2019-03-30 20:30:30 · 4648 阅读 · 0 评论 -
Java数据结构和算法(十一)——红黑树
1、红-黑树的特征 有如下两个特征: ①、节点都有颜色; ②、在插入和删除的过程中,要遵循保持这些颜色的不同排列规则。 第一个很好理解,在红-黑树中,每个节点的颜色或者是黑色或者是红色的。当然也可以是任意别的两种颜色,这里的颜色用于标记,我们可以在节点类Node中增加一个boolean型变量isRed,以此来表示颜色的信息。 第二点,在插入或者删除一个节点时,必须要遵...原创 2019-03-30 20:30:06 · 173 阅读 · 0 评论 -
Java常见面试题之:深入了解Java 的 TreeSet
Java中的TreeSet是Set的一个子类,TreeSet集合是用来对象元素进行排序的,同样他也可以保证元素的唯一。那TreeSet为什么能保证元素唯一,它是怎样排序的呢?先看一段代码:public static void demo() { TreeSet<Person> ts = new TreeSet<>(); ts.add...原创 2019-03-30 19:58:34 · 711 阅读 · 0 评论 -
Java常见面试题之: 垃圾回收的优点和原理。并考虑2种回收机制
Java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。垃圾回收可以有效的防止内存泄露,有效的使用内存。垃圾回收器通常是作为一个单独的低级别的线程(后台线程)运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回...原创 2019-03-29 23:53:51 · 1644 阅读 · 1 评论 -
java常见面试题之:说说 ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据效率较低,Vector由于使用了synchronized(同步)方法(线程安全),通常性能上较ArrayList差。 LinkedList使用双向链表实现存储,按序号索引数据需要...原创 2019-03-29 23:43:07 · 994 阅读 · 0 评论 -
Java常见面试题之:List、Map、Set三个接口,存取元素时,各有什么特点?
这样的题属于随意发挥题:这样的题比较考水平,两个方面的水平: 是要真正明白这些内容。 是要有较强的总结和表述能力。如果你明白,但表述不清楚,在别人那里则等同于不明白。 首先,List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫Collection。Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是...原创 2019-03-29 23:40:35 · 898 阅读 · 0 评论 -
Java常见面试题之:ArrayList和Vector的区别
答:这两个类都实现了List接口(List接口继承了Collection接口),它们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本来题目问的与hashset没有任何关系,但为...原创 2019-03-29 23:31:53 · 574 阅读 · 0 评论