前言
如果你今天还在问我“程序员为什么需要深度学习?”,那么这只是意味着你对开发的兴趣并不高,你对编程的热情并不够,你对自己的职业发展也没有一个清晰的规划。
作为开发人员来说,不说要求自己成为业内顶尖,但也要保证自己不被市场所淘汰,学习对于程序员来说是最基本的事情。
一面
注:面试官特别友善,面试体验特别好
自我介绍
实习时间挺长?
数组和链表的区别?
ArrayList的扩容是怎么实现?
介绍一下hashmap,介绍一下put操作做了哪些步骤?(问了细节)
hashmap判定重复是==还是equals
hashmap1.7和1.8?
hashMap是线程安全吗?介绍一下concurrentHashMap?如何保证线程安全的同时保证吞吐量?
synchronized在jdk1.8做了哪些优化?
synchronized为什么要设计成可重入?
volatile的原理?解决什么问题?
介绍一下JMM
Lock接口?了解过AQS嘛?
ReentrantLock可以做公平锁吗?怎么实现公平锁?
算法题:用栈实现队列(Leetcode)其中栈的数据结构也自己实现
String s1 = “abc” String s2 = new String(“abc”)两个语句分别创建了几个对象?对象存储的位置?s1和s2