面试小记,小场面轻轻松松搞定!!!!!
Jave基础
文章目录
前言
此文资料从各个地方的优秀作者中收集,在这做一个收藏与分享。
一、JVM内存结构?
二、jvm与jdk关系结构?
三、字节码的作用?
四、如何判断对象可回收?
五、类的加载器
类加载器:启动类加载器 拓展类加载器 应用程序类加载器
六、面向对象及多态
多态是同一个行为具有多个不同表现形式或形态的能力。同一个接口,使用不同的实例而执行不同操作,编译时和运行时类型不一致的情况,运行时多态(重写)和编译时多态(重载)
七、ArrayList和LinkedList区别
八、数组查询为什么比链表快?
九、HashMap与HashTable区别
十、ConcurrentHashMap JDK1.7与1.8的区别
十一、双亲委派模型(向上委派向下查找)
十二、线程的状态
sleep释放资源不释放锁
wait释放资源释放锁
十三、Condition接口
十四、并发与死锁
并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并发的三个条件:原子性 可见性 有序性
死锁发生在多线程竞争时,两个线程各自先拿到锁,想要继续执行下去得获取对方所占有的锁才能释放刚开始占的锁。没有外力剥夺,只能循环等待造成死锁。
死锁的四个条件:互斥 请求与保持 不剥夺 循环等待
十五、CAS会产生什么问题?
ABA问题解决:使用AtomicReference原子类加每次修改完时间戳版本号加1
十六、线程池的作用