- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 程序猿每日面经[4]
1.synchronized锁的升级?synchronized锁有四种状态:无锁、偏向锁、轻量级锁、重量级锁。 锁可以升级但不能降级,偏向锁状态可以被重置为无锁状态。 jdk1.6之前都是重量级锁,大多数时候不存在锁竞争,如果每次都要竞争锁会增大很多没有必要付出的代价,为了降低获取锁的代价,引入锁升级。偏向锁: 线程1获取锁对象时,会在java对象头和栈帧中记录偏向的锁的threadID,线程1获取该锁时,比较threadID是否一致,若一致则直接进入而无需使用CAS来加锁、解锁...
2021-07-29 19:45:42
226
原创 程序猿每日面经[2]
1.equals和==的区别?java中的数据类型分为两类:基本数据类型(原始数据类型)。byte,short,char,int,long,float,double,boolean。这8种数据类型之间的比较,应该用==,比较的是它们的值。 复合数据类型(类,引用数据类型)。使用==比较时比较的是在内存当中的存放地址,除非是同一个类new出来的对象,他们的比较结果为true,否则比较后结果为false。java中所有的类都是继承于Object这个基类的,...
2021-05-26 23:44:26
200
1
原创 程序猿每日面经[1]
1.TCP三次握手?第1次握手建立连接时,客户端向服务器发送SYN报文(SEQ=x,SYN=1),并进入SYN_SENT状态,等待服务期确认。 第2次握手分两部分完成:SYN+ACK(请求和确认)报文。 服务器收到了客户端的请求,向客户端回复一个确认信息(ACK=x+1). 服务器再向客户端发送一个SYN包(SEQ=y)建立连接的请求,此时服务器进入SYN_RECV状态。第3次握手,客户端收到服务器的回复(SYN+ACK报文)。此时,...
2021-05-20 14:51:15
127
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人