商涌科技——上海
一面
1、技术
知道HashMap底层结构吗?为啥要引入红黑树?为啥要从头插法转化为尾插法?
线程池用过吗,说说底层原理以及实现
HashMap线程安全吗?知道Java中有哪些线程安全的Map吗?
synchronized的锁升级了解吗?锁升级的过程是怎样的?偏向锁是如何实现的?请你谈谈。
用过ReentranLock吗?它是怎么实现锁机制的?
分布式锁有了解吗,如何实现分布式锁?
如果设置的分布式锁超时了,但是此时拿到锁的请求还没有处理完,而另外一个又进来了,请问怎么解决这个问题?
B树和B+树的区别?
说说MVCC机制,并且它是如何解决可重复读问题的?(即在同一个事务中是如何保证多次读取同一份数据得到的结果是一致的)
知道Autowired和Resource它俩的区别吗?
Linux命令有知道哪些吗?如果遇到一个日志文件,要查看其指定的内容,应该用哪个命令?且如何使用?
二面
1、技术
你知道Java是如何实现跨平台的吗?
Java中的八种基本类型变量都分别占用多少字节?
来个最基础的考考你(滑稽),一个字节占多少位?
谈谈你对堆和栈的理解
Java中的集合类用过哪些?
HashMap底层数据结构,它是线程安全的吗,不安全发生在哪里?
你了解锁吗,Java中的锁都有哪些?
如果在多个集群下部署的多个应用之间,还能够通过synchronized关键字或者是其他锁机制来保证线程同步吗(这里其实可以采用分布式锁来实现,后面聊到redis时有说到可以通过redis来实现分布式锁)
你知道@Transactional注解在什么时候会失效吗?
数据库中索引的底层结构有哪些?
redis你一般用来做什么的,项目中有哪里使用到吗
linux命令有了解吗,熟悉吗,请你说说如果给你一个日志文件,要让你检索该文件中指定的内容,你会用什么命令来查找,该命令是如何配合参数或选项来使用的?