面试宝典
tom_66
这个作者很懒,什么都没留下…
展开
-
JAVA面试题06-Mysql索引
1.什么场景下适合创建索引,什么场景下不适合创建索引。? 1.1 where,order by,group by中频繁出现,且数据分布比较离散的列适合创建索引。比如有个用户表,用户名,手机号经常会作为查询条件,且不同用户用户名,手机号都不同(数据较离散),因此适合创建索引。但是用户的性别,虽然也会经常作为查询条件,但是因为性别只有男,女,未知等几种,数据不够离散,因此不适合创建索引。为什么要离散?原创 2017-03-19 22:36:35 · 5446 阅读 · 1 评论 -
JVM垃圾收集策略
JVM垃圾收集器有很多种,但常用垃圾算法就那么几种,作为一名java程序员,理解常用垃圾收集算法还是非常有必要的。1.JVM如何判断一个对象是否可以回收?引用计数算法 jvm没有采用这种算法,后面分析下为什么jvm不采用引用计数算法。对于引用计数算法来说,会给对象添加一个引用计数器,初始值为0。每当有一个地方引用它时,计数器加1,当引用失效时,计数器减1。当计数器为0时,就表示此对象没有被引用,即原创 2017-10-11 19:38:31 · 328 阅读 · 0 评论 -
JAVA面试题05-ConcurrentHashMap的实现
1.HashMap是线程安全的么?并发环境下有什么替代方案?1.1 HashMap不是线程安全。 1.2 并发环境下替代方案有HashTable(所有方法加synchronized), ConcurrentHashMap(用分段锁实现线程安全)。2.ConcurrentHashMap是如何实现线程安全的?2.1 JDK1.7中是用Segment(extends Reentra原创 2017-03-22 21:31:23 · 3287 阅读 · 1 评论 -
JAVA面试题01-大纲
又到招聘季,最近一波面试了不少JAVA开发人员,感觉人与人之间的差距真的很大。好了,先概括一下我面试过程中经常问到的一些问题吧。基础篇 1.String和StringBuffer的区别。 2.ArrayList和LinkedList的区别。 3.栈和队列的区别。 4.HashMap基于什么样的数据结构实现的(居然有60%+的人不知道)。原创 2017-03-18 10:27:47 · 399 阅读 · 0 评论 -
JAVA面试题02-String和StringBuffer的区别
1.String是final的,不能被继承。 2.String是不可变的,对String的任何拼接,截断操作并不会改变原有String对象,而是重新生成了一些String对象。因此代码中绝对不能在循环中使用字符串拼接操作,这样会导致内存中创建多个String对象。public final class String``` * Strings are constant; their原创 2017-03-18 10:47:39 · 682 阅读 · 0 评论 -
JAVA面试题04-HashMap的实现
1.HashMap基于什么样的数据结构实现的? 答:从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下如所示。 2.HashMap put一个元素的过程。 2.1.根据key计算hashcode 2.2.根据hashcode找到数组下标,如果数组该位置空,则创建一个链表,链表中只有一个元素。 2.3 如果数组该位置已存在链表,且链表头元素k原创 2017-03-18 11:31:40 · 454 阅读 · 0 评论