26年2月京东 Java开发工程师 一面

1. Java中String a = "test" 和 String b = new String("test"),a==b 和 a.equals(b) 结果分别是什么?

思路

== 比较地址,equals 比较内容;常量池和 new 对象地址不同。

回答示例

面试官您好,a==b 的结果是 false,因为 a 指向常量池,b 指向堆上新创建的对象,地址不一样。

a.equals(b) 结果是 true,因为 equals 比较的是字符串内容,两个字符串内容完全一样。

2. ArrayList和LinkedList的区别?什么场景下LinkedList反而比ArrayList慢?

思路

结构、查询、插入、内存;随机访问场景 LinkedList 更慢。

回答示例

ArrayList 是数组结构,查询快、插入删除慢;LinkedList 是双向链表,插入删除快、查询慢。

LinkedList 占内存更大,因为要存节点指针。

在大量随机访问、根据下标 get 的场景下,LinkedList 比 ArrayList 慢很多,因为它要从头遍历找节点。

3. HashMap的底层数据结构?JDK 1.8中链表长度超过多少会转为红黑树?

思路

数组+链表+红黑树;阈值 8,退化 6。

回答示例

HashMap 底层是 数组 + 链表 + 红黑树

JDK 1.8 中,当链表长度 超过 8,并且数组长度 ≥ 64 时,会转换成红黑树。

当红黑树节点数降到 6 时,会转回链表。

4. 线程池的七大参数有哪些?核心线程数如何合理设置?

思路

七大参数背诵;CPU 密集型/IO 密集型设置规则。

回答示例

七大参数是

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务