面试
csucoderlee
这个作者很懒,什么都没留下…
展开
-
后端面试实现死锁代码
死锁发生的四个必要条件:1. 互斥 一个资源在同一个时间只能被一个线程所占有2. 请求且保持 线程保持自己获取到的资源,并且去请求其他线程所拥有的资源3. 不可剥夺 线程已经获取得到的资源,不能被其他线程剥夺4. 循环等待 线程等待另外线程的资源,出现一个线程-资源的循环链基本实现:import java.lang.Thread;/** * @author by csucoderlee ...原创 2018-03-22 22:09:13 · 369 阅读 · 0 评论 -
JAVA后端面试必会之JVM虚拟机类加载机制
.class字节码文件使用javac命令编译后的.class文件,就是java的字节码文件。平时使用开发工具如Intellij idea中看到的.class文件都是经过反编译后的java代码,实际上.class文件都是一组以8位字节为基础单位的二进制流,用sublime打开看是十六进制的代码,大致如下:CAFE BABE 0000 0032 0016 0700...类的生命周期类从被加载到虚拟机内...原创 2018-03-25 09:47:47 · 1476 阅读 · 2 评论 -
Java后端面试必会之线程
Java天生就是多线程程序,运行一段代码,后台运行着多个线程 什么是线程?提到线程,首先就要提到进程。进程是资源分配和调度的基本单元,而线程是CPU调度的基本单元。一个进程里可以创建多个线程。Java程序的main()方法开始执行,然后按照既定的代码逻辑执行,看似是只有一个main线程,实际上执行main()方法的是一个名为main的线程,同时还有其他线程也在执行。/** * Created b...原创 2018-04-05 13:24:34 · 220 阅读 · 0 评论 -
后端面试必会之ConcurrentHashMap的实现原理和使用
为什么要使用ConcurrentHashMap?没有对比就没有伤害,在并发编程中使用HashMap可能会导致程序死循环。而使用线程安全的HashTable效率又非常低下,基于以上两个原因,才有了ConcurrentHashMap。为什么说HashMap可能会导致死循环?因为HashMap在并发执行put操作时,会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的...原创 2018-07-02 23:08:10 · 1228 阅读 · 0 评论