37互娱java待遇,37互娱,JAVA服务端程序一面

本文记录了一次Java程序员的面试过程,涵盖了自我介绍、项目经验、JVM内存模型、垃圾回收机制、并发编程和锁机制、MySQL索引等内容。面试深入讨论了复制算法在年轻代的应用、多线程的优点、死锁的避免以及锁的实现原理,同时也涉及到了MySQL的索引优化策略。
摘要由CSDN通过智能技术生成

2018.6.12 下午3点

1.       自我介绍,介绍项目

2.       你本科和研究生专业都不相关,那你是怎么学习的?看书。看了哪些书?

3.       jvm内存模型介绍一下?

4.       GC?聊了根搜索进行可达性分析,标记,finalize(),(拯救),清理;介绍了GC算法(复制、标记整理、标记清除)

5.       为什么年轻代要用复制算法?复制算法的优缺点?聊了下无碎片空间,内存浪费,内存担保

6.       并发,为什么要用多线程?多线程的好处?最大化利用CPU和CPU时间片

7.       怎么加锁?synchronized 锁方法和锁代码块和显示锁ReentrantLock(提了超时获取锁)

8.       不加锁会产生什么问题?读写顺序不一致,读到的不是想要的;

写了一半挂起,另一个线程写,然后挂起线程继续写,导致写错误(我也不知道对不对)

9.       死锁,为什么会造成死锁,怎么解决死锁?锁成环,超时获取锁

10.    锁的机制?聊了CPU锁总线和锁内存(修改内存地址,然后嗅探置缓存行无效,下次直接从内存中读取)。

发现好像答的不对,然后又讲了锁的升级(对象头的MarkWord,偏向锁、轻量级锁、重锁,没有获取成功会怎么样,自旋答成重锁自旋了)

11.   MySQL你了解些什么?索引(聚簇、非聚簇、最左匹配),范式,explain,processlist指令,慢查询日志等

12.   MySQL索引,为什么要建索引?怎么建索引?加快查询速度,where条件查询后面常用到的列建立索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值