热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

面试刷题1018

 5.红黑数是二叉树,B树和B+树是N叉树,层数更浅,可以减少磁盘IO次数8.常规问题,zset底层是跳跃表,9.不可以用红黑树,红黑树不支持范围查询。10.select,poll

面试刷题10-18

 

5. 红黑数是二叉树,B树和B+树是N叉树,层数更浅,可以减少磁盘IO次数

8. 常规问题,zset底层是跳跃表,

9.不可以用红黑树,红黑树不支持范围查询。

10. select,poll,epoll

11. 常规问题

12. 类加载的时候,先调用类加载器父类的方法

13.

14.

15.

 

 

网易互娱初级

一面

1.自我介绍,简历项目
我简历上的项目是java的,所以感觉面试官也不咋感兴趣

2.C++虚函数继承
并不会C++,所以后面都问的Java
3.Java中GC的过程,分代回收的具体细节
Java就只问了这个问题,二面也就问了这一个

4.树的中序遍历
代码实现,但是我递归遍历的终止条件写错了,后面就问了个更简单的
5.斐波那契

递归,非递归,空间优化,
6.两数之和,三数之和
7.socket编程,工作在哪层,具体流程
回答了C语言socket编程的过程,两个套接字,侦听的和通信的两个套接字
由于我不会C++,所以感觉这一面偏简单。

二面
1.自我介绍,简历项目
2.Java和C++的区别,C++为什么比java快
字节码和机器码,虚拟机和解释器
3.Java GC过程
一面也是这问题,又答了一遍

4.数据结构设计
设计一个队列,可以查询队列中的最大值,入队,出队的时间复杂度
5.数据结构设计
实现一个队列,入队、出队随机删除,给定位置,给定值,查询值所在的位置,以及操作的时间复杂度
6.游戏相关
由于我简历上写了炉石传说老玩家,所以问了炉石传说的问题
一、什么时候开始玩的,当时玩的卡组是啥,现在炉石的活动参加了吗
二、炉石传说中变羊和火球作为两张解牌的区别,竞技场中什么时候抓变羊什么时候抓火球

总体来说,因为我不会C++,所以也没怎么问编程语言,算法感觉也偏简单。
二面面试官还提醒我参加炉石传说马上就有的活动,两面体验都很好,就是隔得时间有点久。
最后求个HR面和offer。

 


首先是自我介绍,每人说完自己的自我介绍,然后就开始挨个提问。不过好的是,本科和研究生分开的,不然我这个双非本科怕是话都插不上。面试官主要是对项目问问题,然后对技术进行延伸,包括java多线程,后端的框架什么的,反正我也不懂。数据库考的是左外连接和右外连接的区别,还有就是事务的ACID特性。网络提到了http。还有问前端优化什么的,比如说怎样使网页加载更快。还有linux常用的命令,这个挺简单的。c问的就是结构体里面的计算内存大小,堆和栈的区别,还有static修饰函数和变量后的作用。

 

5. 输出下列的三角形

1

1 2

1 2 3

1 2 3 4

。。。。。

6. 进程和线程的区别

7. tcp都有哪些状态

8. tcp的特点是什么

面向连接可靠的字节流传输协议

 

3. 瓜子一面(大概40分钟)

1. 输出所有的互不重复的五位数

组合的方法

2. n个人围成一个圈,依次报数,报到m的人出圈,然后再从下一个开始报,问最后一个人第几个出圈的人

约瑟夫问题

3. 死锁产生的条件

(1)互斥条件

(2)占有且等待

(3)不可强制占有

(4)循环等待

4. 全双工和半双工

单工数据传输只支持数据在一个方向上传输; 

 半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 

5. tcp的半连接是什么

T C P提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。这就是所谓
下载

6. tcp的三次握手四次挥手说一下

7. time_wait是什么

8. 说一下虚拟内存

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

9. 物理内存只有4g,两个进程,每个进程都需要4g的内存,那么这两个进程可以同时运行吗

不可以

10. 共享锁,排它锁,乐观锁的区别

 

11. https过程中,私钥的作用是什么,客户端如何判断服务器证书的安全性

有效的证书需要由权威机构CA签名,CA会用自己的私钥来生成数字签名。这个权威机构CA客户端是可以完全信任的,客户端浏览器会安装CA的根证书,由CA签名的证书是被CA所信任的,这就构成了信任链,

 

瓜子二面(大概40分钟)

1. 死锁产生的条件

2. 写一个死锁的例子

3. 写一个单例模式,多线程访问怎么办

写双重校验的线程安全的单例

4. 一个字符串,按照字符出现的次数输出

5. mysql索引的结构,b+树和b树的区别,b+树有什么优点

6. redis为什么检索快

内存操作

7. redis为什么使用单线程,单线程的好处是什么

减少多线程上下文切换的开销

8. 讲一下COOKIE和session,为什么需要使用COOKIE和session

记录客户端的连接状态

9. 范围查询时索引如何使用

 

4. 最右一面(大概半小时)

最右面试的体验可以说是不怎么好了,当时是在学校来宣讲,然后现场笔试,第二天去面试,结果去面试的时候面试官就问了几个问题,都是算法的,然后就没了。

1. 给一个整数n,就n的平方根的整数部分,算法的时间复杂度是多少,怎么用二分法求

2. 非递归写二叉树的前序遍历

3. 写一个最长回文子串

4. 写一个反转二叉树(镜像二叉树)

5. 将一些快排的思想,怎么找第k大的数

 

 

6. 晨星一面(大概30分钟)

1. 介绍一下自己

2. tcp的三次握手和四次挥手讲一下,握手为什么是三次

3. 如果请求网站的时候发现你请求的特别慢,怎么分析原因,如果你请求的服务器距离很远,速度会慢,这怎么办

4. drop,delete,trunact之间的区别,delete 不加条件删除时和truncate的区别是什么

5. 讲一下面向对象的特性,分别介绍一下

6. 继承的作用是什么,多态的作用是什么

7. 重写和重载的区别是什么

8.hashmap和hashtable的区别

9. 聚集索引和非聚集索引的区别

10. 知道哪些开源框架,mvc,aop了解吗

 

 

 

1)所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。

    2)而运行时常量池,则是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中,我们常说的常量池,就是指方法区中的运行时常量池。



为什么要用常量池啊?

jvm 在栈帧(frame) 中进行操作数和方法的动态链接(link),为了便于链接,jvm 使用常量池来保存跟踪当前类中引用的其他类及其成员变量和成员方法。

每个栈帧(frame)都包含一个运行常量池的引用,这个引用指向当前栈帧需要执行的方法,jvm使用这个引用来进行动态链接。

在 c/c++ 中,编译器将多个编译期编译的文件链接成一个可执行文件或者dll文件,在链接阶段,符号引用被解析为实际地址。java 中这种链接是在程序运行时动态进行的。

静态常量池的好处是什么啊?

常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。
说下创建一个类在JVM中的过程是怎么样的?
你说下volatile,他的底层是怎么样的?
怎么保证的可见性?

如果我有很多的线程同时访问,我能用使用vovalile吗?
怎么用volatile线程安全?
单例模式的volatile是干嘛的?

禁止指令重排

第7行的代码创建了一个对象,这一行代码可以分解成3个操作

Copy

memory = allocate();  // 1:分配对象的内存空间

ctorInstance(memory); // 2:初始化对象

instance = memory;  // 3:设置instance指向刚分配的内存地址

根源在于代码中的2和3之间,可能会被重排序。例如:

Copy

memory = allocate();  // 1:分配对象的内存空间

instance = memory;  // 3:设置instance指向刚分配的内存地址

// 注意,此时对象还没有被初始化! ctorInstance(memory); // 2:初始化对象java

这在单线程环境下是没有问题的,但在多线程环境下会出现问题:B线程会看到一个还没有被初始化的对象。
A2和A3的重排序不影响线程A的最终结果,但会导致线程B在B1处判断出instance不为空,线程B接下来将访问instance引用的对象。此时,线程B将会访问到一个还未初始化的对象。

你说下你的秒杀项目是怎么保证健壮性的?
你用了什么方式?
秒杀的核心业务是什么?
怎么防止超卖超卖?
加锁并发现太低了,怎么提高并发?
redis队列说说看?
redisson分段锁你怎么实现?
你用什么作为分段锁的标识?如果是多个不同的IP同时访问怎么保证唯一性呢 ?


 

09.02 小米面试 35min

1. 自我介绍

2. final 关键字

修饰方法,修饰变量,修饰类

3. static关键字

修饰变量,修饰方法,修饰静态内部类

4. 实习项目中的并发操作

5. 对线程池的了解

6. 为什么会产生死锁

7. java并发 wait 和sleep的区别

8. 设计模式,观察者模式

9. 写反转链表

问题 15min ,代码大概十几分钟,最后问我有什么问题

 

 

10.11 小米 二面 33min

隔了一个多月,以为凉了呢

竟然又通知了二面

 

1. 自我介绍

2. 排序算法了解么,写一下快排

3. 还有什么排序算法,插入排序如何改进为 nlogn的时间复杂度,什么排序算法效率最高呢

4. 什么情况下要用什么排序算法?

5. java 接口和抽象类

6. 为什么java要有抽象类和接口这两种?

7. GC讲一讲

8. 可达性分析中 gc root都包括哪些?

没有了???

 

 

一面 10.16 1.5h C++

 

1、拷贝构造函数什么时候调用?知不知道移动构造函数?

2、C++多态实现原理;多继承中虚指针、虚函数表问题(不会)。

3、一个空类的内存大小?类里面有函数时?类里面有虚函数时?

4、STL中各种容器的实现原理介绍?红黑树有什么性质,它的插入、删除实现过程(他希望介绍涂色、旋转的过程)?介绍自己知道的树,DST、AVL树、B树、红黑树等?哈希表解决冲突的方法?什么时候用map什么时候用unordered_map?怎么用两个栈实现一个队列?

5、网络编程了不了解?说说epoll和select的区别?介绍Socket网络编程?

6、说说虚拟内存实现原理?C++的内存模型介绍?函数递归过程栈的变化?进程和线程的区别,同一进程中的多线程共享哪些东西?

7、介绍自己知道的各种排序算法?说说他们的时间复杂度和空间复杂度(快排空间复杂度是O(logN))

 

8、多线程同步编程题,开三个线程,线程A打印3n,线程B打印3n+1,线程C打印3n+2,控制三个线程的同步,顺序打印数字(1 2 3 4 5...)

 

9、编程题,有三小问。已经定义一个双向链表。

第一问:是顺序打印链表值,并中间接“->”输出;

第二问:反转双向链表;

第三问:给一个值x,将链表中小于x的节点排前面,大于x的节点排后面,小于、大于这两部分中各节点的相对位置保持不变。

 

面试官人非常好,答不出来的问题也没有直接说就算了继续问下面的,而是不断提示引导,比如上面说的快排的空间复杂度一开始我也没答上来,面试官就从快速排序执行过程慢慢提示,说这个过程有没有什么地方需要开辟新空间等等。

 

感觉面的不是很好,本来就不抱希望了,但是下午接到网易电话,说一面通过,但是上海人比较满了,然后问我能不能接受广州,我说可以,他说接下来会安排二面。

 

希望能继续更新二面和hr面。

 


 

10.8线上笔试

10.16线上视频一面(共50分钟左右):


1. 项目

2. 讲讲代理,代理细分,Java里的代理

3. JDK的动态代理怎么实现

4. 动态代理底层怎么实现

5. mybatis的缓存

6. 什么时候才能命中二级缓存,什么时候才能存到二级缓存里

7. mybatis的接口和xml交互,用到了代理了吗?

8. Spring的事务传播机制

 



9. JVM常用的垃圾回收器,

10. CMS的优缺点

11. CMS回收几个阶段是只有自己的线程吗?还是多个线程并行

12. 频繁Full GC,如何排查,用到什么工具

13. 类加载机制

 

 



14. synchronized和lock区别

synchronized是关键字,lock是类,

15. synchronized、lock是公平锁还是非公平锁

非公平

16. synchronized的锁升级过程

17. MySQL常用的引擎区别

18. MySQL的索引结构

19. 哪些会索引失效

20. B+树和B树的区别

21. MySQL常用的事务隔离级别

22. MySQL事务隔离级别都解决了什么问题


23. 脏读幻读是什么。

24. 不可重复读,MySQL是什么解决的


25. Redis的数据结构

26. 讲跳表,如果插入这个怎么做的,比如插入第一个数据,存到第几层

27. 手撕两数之和、判断括号是否合法


 

一面

Innodb的索引实现?

为什么是B+树

Redis的使用,分布式锁的实现

操作系统虚拟内存换页的过程

虚拟内存换页的算法有哪些?

换页算法里面,FIFO有什么缺点?怎么改进?

TCP三次握手

ReentrantLock和synchronized锁的区别

接着上面问,为什么公平锁效率低

公平锁要记住请求的先后顺序

算法题:

滑动窗口,具体忘了~

二面:

……忘的差不多了

三面:

(印象特别深刻的一轮,因为面试官一看就气场特别强大)

大致是三道题

4G内存,40亿整数,全排序该怎么做

算法题:

设计一个MaxStack,在stack基础上增加getMax函数,能够以O1时间复杂度找到栈中现存最大元素

能否减少空间使用?

概率题:

N个能随机等概率生成1-N的数字的骰子,对其做distinct之后的剩下元素个数的数学期望

比方说三个骰子,如果投出 1 1 1,那么distinct之后只剩下1个元素

 

因为外排序没有学过,加上概率题死活没想明白,就果断挂了,但是运气特别好的是又被捞了起来,继续三轮面试

一面:

数据库的隔离级别?

拥塞

算法题:

若干个线程,有执行的开始时间和结束时间,如果两个线程时间有重叠,那么就需要并行计算,问最多会有多少个并行计算

一棵树,如果从右边看这个棵树,返回从上到下的输出

 

二面:

HashMap怎么实现?除了链表法还有什么办法解决冲突?

jdk1.8中对hashmap做了什么修改?

如果有若干个线程同时执行HashMap的put操作,会有什么后果?   并发修改异常

程和线程的区别?

概率题:如果一直抛硬币,直到:如果出现反反正就A赢,如果出现正反反就B赢,那么这是公平的游戏吗?谁获胜的概率大?

手写任意一个排序排序算法

算法题: 如果a[0]a[n-1],那么请找出任意一个点使得a[i-1]a[i+1] 要求logN

三面:

描述堆的实现

如果有一组数字,按照“拿出第一个数在桌上并然后将下一个数放到队尾”一直操作直到数字全部放在桌子上,给你最后在桌子上的数字,请返回最开始数字的顺序

一个数组,找最大的连续子数组和

linux中如果读取文件"/xx/yy/z"请描述过程

 

最后,感谢字节~

 



1.几种map,treemap使用场景
2.http1.0和1.1
3.三次握手说下,如果少了最后一次会怎么样
4.200   300  500 都是什么
5.如何获取一万个数前100个最小的
6.先增再减的一个数组,给索引,返回值,怎么实现

其他不记得了。。。。。。


希望能够,但愿吧。。。。????????????


 

一面 (基础技术面)

  1. redis的几种数据类型,redis是单线程的,如何优化? redis为什么能做到这么快 ?

高效的数据结构设计,内存操作,非阻塞IO多路复用

  1. Spring的核心设计理念,SpringMVC的请求流程,MVC的分层在Spring中的实现
  1. ORM框架如何配置主从数据源,Mybatis原理
  2. 垃圾收集器用的哪种?CMS和G1的区别,讲一讲CMS垃圾收集的步骤,哪些步骤是并发哪些是并行。知道哪些垃圾收集算法
  3. 数据库索引了解多少?组合索引的最左原则,innodB和mylSAM的使用场景和区别,簇族索引和非簇族索引的存储区别
  4. sql优化怎么做,如何判断sql能否用到索引或者大约需要扫描多少行数据。
  5. HTTP1.0/1.1/2.0 HTTPS的区别与特性
  6. 讲讲NIO的原理与实现?NIO用到了哪个经典技术思想?JDK1.8中NIO有做什么优化
  7. SpringMVC、SpringBoot、SpringCloud之间的关系?SpringCoud的注册发现与RPC的实现。
  8. 知道哪些RPC的方式?有哪些框架?如果让你设计RPC数据交换报文格式你会怎么设计?最重要的是什么?
  9. 用过哪些日志框架、日志框架间的比较?

 

  1. Java中的锁有哪几种?Synchronized 的特性和底层实现?ReentrantLock了解么?AQS锁了解么?
  2. Java经典特性封装继承多态中的继承,Java的继承有什么缺点?wait()、notify必须在什么情况下使用

Synchronized内部使用。

二面(经理面)

  1. 讲讲项目中的RocketMq服务化
  2. Java中的锁知道多少

ReentrantLock

  1. 有5000w数据的场景,如何做查询性能优化
  2. 线程、进程、协程的关系。
  3. 知道Go么,有没有学习过,排不排斥新语言的学习使用
  4. nginx的高可用,redis的高可用,redis的集群方案,一致性哈希和哈希槽模式下缓存服务器宕机,数据如何迁移
  5. 怎么让一个定时任务在集群模式下只有一个实例执行?怎么实现分布式锁?怎么高可用?怎么保证一定有且只有一个实例的定时任务成功

三面 (部门领导面)

  1. 讲讲项目中的高可用实现,知道zookeeper选举算法么?这个nacos如何实现的一致性,知道raft的原理么?选举的机制是什么样的?具体是怎么投票的?
  2. DNS原理,DNS的轮询规则是怎样的,一个DNS请求是怎样的,如何使用自己的DNS服务器
  3. 如果现在有一个活动,一共赠送用户100000点券,有一个获取点券的按钮,一个用户只能获取一次,获取的点券算法是一个函数do(s,l),s是用户的等级,L是目前剩余的点券。在这个业务场景下,最需要考虑的是什么(不是多线程竞争问题)
  4. 现在有一个游戏,玩家有一群建筑,这些建筑一开始是1级,然后点击升级按钮会扣除金币,同时建筑进入升级倒计时。如何设计这个建组等级相关的数据存储?如果有一个排行榜显示用户的建筑等级排行怎么办?如果用户升完级就退出,排行榜怎么保证排名的正确。用户下一次进来如何保证时间的准确性
  5. 在一个场景下:客户端使用TCP连接服务端通信。服务端如何检测出客户端断开连接?发送心跳是客户端发送好还是服务端发送好?如何在不用客户端/服务端发心跳包的情况下可以检测得到客户端tcp连接已经异常断开?

四面(Hr面)

  1. 个人信息,之前公司的情况,个人在公司所处的位置
  2. 学习方法,个人长处,最有成就感的事情
  3. 问了对技术的看法
  4. 目前薪资期望薪资
  5. 最快入职时间

拿到offer

 

 

 


推荐阅读
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
author-avatar
誓言俱乐部
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有