菜鸟春招Java二面凉经

第一个大厂面试完了,真的一直不想听这段录音,觉得面得特别差,当时面完整整一个下午时间才缓过神来😭

今天终于鼓起还是鼓起勇气来复盘下,只有不断复盘才能进步吧,0offer选手继续加油

3/27 一面,30min
1,就问了一些集合和数据库事务的基础吧,还有数据结构的特性是啥?最后还有一些基础问题:比赛你负责做的那个模块?选开发的原因?学Java多久了?项目是怎么搭的?看别人的代码中觉得最巧妙或是印象最深刻的是哪一部分?


4/1 二面,40min,
2,线程池说一下,,,
老八股文(三个临界条件会发生啥,数据结构,拒绝策略以及通过什么参数与方法来线程监控)
3,BIO和NIO了解不,说一下他们的区别吧 
4,hashmap不是线程安全的,concurrentMap为什么是线程安全的呢?
5,并发安全说一下(我把悲观锁,乐观锁以及可重入锁说了遍)
面试官追问:你知道可重入锁是吧,那你把reentrank的详细原理给我说下
reetranklock不是取代synchronized的,而是在提供比如可饷应中断锁,可轮询锁请求,定时锁等避免多线程死锁的方法;reentranklock通过方法lock0与unlock()来进行加锁与解锁操作,与synchronized会被JVM自动解锁机制不同,reentranklock需要手动进行解锁,为了程序异常二出现无法解锁,用reetrankLock必须在finally控制块中进行解锁操作...
6,AOP动态代理的实现方式有哪些以及区别说下
7,CMS垃圾回收器回收过程说下
initial mark -> concurrent mark -> remark -> sweep,
8,mysql大数据量分页如何查
先查主键,再查记录
9,i++是原子操作吗?为什么?,1什么是分布式事务?分布式事务如何保证数据一致性?
1.补偿性事务 2.后置提交优化 3.两阶段提交
10,线程池的参数如何作用?假如核心线程数=5,最大线程数=15,阻塞队列=10,来了6个任务,会创建几个线程?
  • 创建5个线程,第6个线程入阻塞队列。如果阻塞队列满了,再创建线程至最大线程数;如果达到最大线程数,阻塞队列也满了,则走拒绝策略,
面试官追问:乐观锁和悲观锁的理解,怎样用乐观锁来在数据库中实现count+1的操作?版本号具体怎么加?
11,redis的过期策略
  • 定期删除:定期随机抽取20个key检查过期并删除
  • 惰性删除:读取key时检查到过期则删除
12,redis淘汰策略
13,kafka如何保证消息可靠性?
  • 重复发送,数据落地,确认信号.....

    写笔试题

    手写单例模式(懒汉+双重校验),阿里一道字符串匹配的题(网上能查到)

  • 复盘完发现真的原理很难,但是当时真的答得特别差,泡了一礼拜就挂了,还是太菜了,继续加油吧。


    #面试复盘##春招##实习##面经##笔经##秋招##Java##菜鸟网络#
    全部评论
    🎉恭喜同学成功投稿参与【面试复盘】,并通过审核! 😉累积5篇即可获得名企面试官1v1面试点评大奖,期待你的获得~~ 👉🏻戳:https://www.nowcoder.com/discuss/872618了解更多活动详情~
    点赞 回复 分享
    发布于 2022-04-29 16:47
    请问线程池的“三个临界条件会发生啥”答案是啥呀?
    点赞 回复 分享
    发布于 2022-06-06 17:32

    相关推荐

    3 12 评论
    分享
    牛客网
    牛客企业服务