java开发 顺丰

## 一面
JVM 的GC说一下

c=a+b ,JVM可以执行多少次。

jmap,jstat.

HashMap底层实现

动态规划的思想。

深度优先检索。

TCP的四次挥手

如果第二次断开的时候消息丢失,(失败重传)

项目中RabbitMQ的作用,怎么实现的。kafka了解吗


## HR面

HR面,问基本情况


## 二面
1、过滤器,拦截器,***,以及执行顺序
过滤器可以用来做权限限制吗?

2、深拷贝和浅拷贝的区别。

```
浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())

深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝(例:JSON.parse()和JSON.stringify(),但是此方法无法复制函数类型)

```


3、SpringMVC和Spring的区别。Spring的创建流程。

4、synchronized底层实现,使用场景,使用在静态方法和非静态方法上的区别。

5、对于一个静态方法(加了锁),一个非静态方法,两个线程去访问,一个访问静态方法,一个访问非静态方法。是同步还是异步的。

```
异步的
```


6、ThreadLocal的内部实现,以及使用(线程之间的数据同步),可以用来做同步吗?

7、设计模式了解哪些? 讲一下策略模式以及适配器模式。

8、SQL优化的步骤,SQL语句执行慢应该怎么排查。执行计划讲一下字段。

9、select * from A for update 怎么加锁的。

```
for update 是行级排它锁,如果当前事务执行select * from A where id=1 for update,那么其他事务不可以再进行update,add,delete等操作,会阻塞。
```
![](https://images2018.cnblogs.com/blog/679616/201803/679616-20180303093852338-426193922.png)

右边阻塞

```
SELECT ... LOCK IN SHARE MODE; 共享锁
SELECT ... FOR UPDATE; 排它锁
意向锁是 InnoDB 自动加的,不需要用户干预。其设计目的主要是为了在一个事务中揭示下一行将要被请求锁的类型
```


10、redis的数据结构,redis中的列表的基本操作的方法,比如遍历。



11、序列化与反序列化,序列化的作用是什么?如果序列化存到数据库中,后续做了更改怎么办?(回答是使用版本号+序列化)

```
对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序;
从字节流创建对象的相反的过程称为反序列化。而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。
```

12、什么是幻读。


#顺丰科技##Java工程师#
全部评论
c=a+b ,JVM可以执行多少次  怎么答呢~大佬!
点赞 回复
分享
发布于 2019-10-11 15:42
5、对于一个静态方法(加了锁),一个非静态方法,两个线程去访问,一个访问静态方法,一个访问非静态方法。是同步还是异步的。 ---------测试了一下是异步的
点赞 回复
分享
发布于 2019-10-13 16:58
博乐游戏
校招火热招聘中
官网直投

相关推荐

4 38 评论
分享
牛客网
牛客企业服务