面试复盘|用友Java后端秋招提前批一面+hr面面经
一面面经
方式:赛码
时间:8月14日9:30
时长:38分钟
总结:技术面:问题问的很简答,但是还可以答的更深。hr面:至今不明白hr面除了谈薪资还有其他实质性交流吗?
coffee time
- 自我介绍
- 怎样开始学习Java的(因为是非科班所以被问了这个问题)
- 研究生有趣的经历
项目
- 项目里面用到了登陆怎样实现的?那我怎样判断有没有登陆?
- 你说的Cookie和Session可以详细说说吗?
- 关于dubbo和zookeeper(项目里用了,所以问,让我学习下这方面的知识)
多线程和并发
说说线程池的参数?线程工厂有哪些参数?听说过守护线程吗?
(线程工厂有哪些参数,这个可能是想问这个参数的值有哪些?或者一个线程工厂里面的成员变量吧)
说说synchronized关键字是怎么样保证线程安全的
- 偏向锁、轻量级锁、重量级锁
- 轻量级锁是怎样实现的
- CAS有什么问题?CAS怎么实现的?
- 为什么要优化synchronized?也就是为什么以前是直接加重量级锁,现在要逐步升级?
- 与ReentrantLock有什么区别?什么是可重入锁(因为提到了两者都是可重入锁)?
框架(Spring)
- Spring中事务的ACID四个属性指什么?
- 事务的隔离属性有哪些?事务的传播属性有哪些?默认的是什么?
- 你的项目中有没有用到事务?怎么配置的?
数据库(MySQL)
- 怎样查看一条SQL语句的执行情况?有哪些参数?
dessert
- 平时是怎样学习Java的?
- 现在我来介绍下我们的情况:干啥的、用啥技术等
- 后续hr会联系你,(插了句什么时候知道面试结果)面试官想了半天大概3天(工作日),待会儿我会把面试录入系统,你还可以自己网上看看我们公司的情况……
- 你还有什么问题吗?(没了,想问下你们做什么的刚刚已经介绍了……)
hr面面经
方式:赛码
时间:8月23日14:00
时长:13分钟
自我介绍
你做Java有什么优势?
学习Java多久了?为什么想做Java?怎么不选择Python?
为什么考xx专业研究生?为什么考xx学校?本科学xx专业,研究生又读xx专业,现在想做Java是怎么想的?
高考有没有复读?(为啥这么问?复读?这得多想不开逃离地狱再回去😅)
你的职业规划是什么?为什么想来北京?(没规划,也并不想来北京啊😅,当然我冇这么说)
研究生是全日制吗?什么时候毕业?挂过科吗?
期望薪资?(面试官没有给出数字,下面是对话答题的内容,各位自行体会咯😄)
hr:你的期望薪资是多少? 我:你们大概能给到多少? hr:现在不确定,后期我们集中处理,通过面试会先发一个意向(offer?)? 我:北京希望高一些,期望在xx-xx(要了个不算低的薪资,参考offershow上显示的薪资要的)
你有什么想问我的吗?
- 业务部门是?
- 什么时候知道面试结果(2周左右)
- 牛客网上看不到应聘进度
总结:CAS有什么问题?当时直接说了有ABA问题,解释了一下什么是ABA问题,并且说了怎么解决。后来偶然机会发现其实CAS缺点还有其他的,CPU开销大、不能保证原子性、只能保证一个共享变量的原子操作。还有就是CAS的实现原理、Java中解决CAS问题的具体实现。能说的还是很多的😄
1. CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 2. 在实际应用时,CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。 3. 存在的问题主要有:ABA问题、循环时间开销大、只能保证一个共享变量的原子操作 - 针对**ABA问题**:解决思路就是使用版本号。在变量前面追加上版本号,每次变量更新的时候把版本号加一,那么A-B-A 就会变成1A-2B-3A; - 针对**循环开销大**问题:根据实际情况来选择是否使用 CAS,在高并发的场景下,通常 CAS 的效率是不高的; - 针对**只能保证一个共享变量的原子操作**:当对一个共享变量执行操作时,可以使用循环CAS的方式来保证原子操作,但是对多个共享变量操作时,需要把多个共享变量合并成一个共享变量来操作。
全部评论
(7) 回帖