社招面试总结

社招面试总结

本文首发在个人公众号:HelloWorldEE,欢迎扫码加入,以后将会不定期的更新Java、MySQL等相关的知识。

前言

目前在考虑新的机会,面试了几家公司,趁今天周末,想想还是写篇面筋吧,希望对大家有所帮助。

在写这一篇面筋之前,自己也回去看了下2016年9月自己参加完校园招聘之后写的面筋内容。

发现对于基础知识部分,还是有很多相同的,但也有一些不同点。下面具体说一下

常见面试题

下面将从项目、Java基础、MySQL、Redis、Spring等几个方面来一一进行介绍。

项目

不用多说,项目这块在面试过程中肯定少不了,由于每个人所做的项目不一样,但是有几个通用问题值得说一下

1.在项目中遇到的最大难点和挑战是什么?无论是技术上的,还是业务上的

这个问题真的很难,需要好好思考好好准备。

2.在项目中你收获最大的是什么?

3.工作中有遇到什么线上故障,例如OOM等

Java基础

1.HashMap、ConcurrentHashMap的实现原理

常见的put、get方法的大致实现原理没什么说的,我想大家都应该都了解。

我在面试中,有两个面试官问到这样的问题,ConcurrentHashMap的put方法中什么情况下会加锁?什么情况下使用的是CAS操作,什么情况下使用的是synchronized关键字加锁?如果不使用synchronized加锁会有什么样的问题,可否举一个实际的例子来说明?

笔者本文在第一次被问到的时候是比较懵逼的,虽然以前看过ConcurrentHashMap的实现原理,还仅仅只是大致看了下,仅了解一个大概,而且好多也忘记了,面试过程确实尴尬。

一点感受:社招面试不仅仅要求大致看过源码懂得大致思路,而且还需要对相应的细节有一定的研究和了解。

2.ThreadLocal的具体实现以及在项目中的应用场景

面试了几家公司,发现这个类被问到的频率是相当高的,其实真正在我们项目开发中,被用到的场景其实是比较少的,笔者见过和使用过的具体场景如下:

  • 为保证线程安全,变量被线程独享

通常在项目中我们都需要将时间转换为指定的格式,而且在项目中用到的地方很多,因此为了复用我们都会进行相应的封装提供静态方法。如下就是两种不同的写法,第二种写法就是使用ThrealLoca老保证线程安全。否则,在并发的情况下如果调用第一种方法,则会抛java.lang.

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值