深⼊理解java虚拟机pdf,GitHub已标星16k 专题5:Java序列化
1、什么是java序列化,如何实现java序列化?
2、保存(持久化)对象及其状态到内存或者磁盘
3、序列化对象以字节数组保持-静态成员不保存
4、序列化⽤户远程对象传输
5、Serializable 实现序列化
6、writeObject 和 readObject ⾃定义序列化策略
7、序列化 ID
8、序列化并不保存静态变量
9、Transient 关键字阻⽌该变量被序列化到⽂件中
10、序列化(深 clone ⼀中实现)
专题6:Java注解
1、4种标准元注解是哪四种?
2、注解是什么?
专题7:多线程&并发
1、Java中实现多线程有⼏种⽅法
2、继承 Thread 类
3、实现 Runnable 接⼝。
4、ExecutorService、 Callable、 Future 有返回值线程
5、基于线程池的⽅式
6、4 种线程池
7、如何停⽌⼀个正在运⾏的线程
7、如何停⽌⼀个正在运⾏的线程
8、notify()和notifyAll()有什么区别?
9、sleep()和wait() 有什么区别?
10、volatile 是什么?可以保证有序性吗?
11、Thread 类中的start() 和 run() ⽅法有什么区别?
12、为什么wait, notify 和 notifyAll这些⽅法不在thread类⾥⾯?
13、为什么wait和notify⽅法要在同步块中调⽤?
14、Java中interrupted 和 isInterruptedd⽅法的区别?
15、Java中synchronized 和 ReentrantLock 有什么不同?
16、有三个线程T1,T2,T3,如何保证顺序执⾏?
17、SynchronizedMap和ConcurrentHashMap有什么区别?
18、什么是线程安全
19、Thread类中的yield⽅法有什么作⽤?
20、Java线程池中submit() 和 execute()⽅法有什么区别?
21、说⼀说⾃⼰对于 synchronized 关键字的了解
22、说说⾃⼰是怎么使⽤ synchronized 关键字,在项⽬中⽤到了吗synchronized关键字最主要的三种使⽤⽅式
23、什么是线程安全?Vector是⼀个线程安全类吗?
24、volatile关键字的作⽤?
25、简述⼀下你对线程池的理解
26、线程⽣命周期(状态)
27、新建状态(NEW)
28、就绪状态(RUNNABLE)
29、运⾏状态(RUNNING)
30、阻塞状态(BLOCKED)
31、线程死亡(DEAD)
32、终⽌线程 4 种⽅式
33、start 与 run 区别
34、JAVA 后台线程
35、什么是乐观锁
36、什么是悲观锁
37、什么是⾃旋锁
38、Synchronized 同步锁
39、ReentrantLock
40、Condition 类和 Object 类锁⽅法区别区别
41、tryLock 和 lock 和 lockInterruptibly 的区别
41、tryLock 和 lock 和 lockInterruptibly 的区别
42、Semaphore 信号量
43、Semaphore 与 ReentrantLock 区别
44、可重⼊锁(递归锁)
45、公平锁与⾮公平锁
46、ReadWriteLock 读写锁
47、共享锁和独占锁
48、重量级锁(Mutex Lock)
49、轻量级锁
50、偏向锁
51、分段锁
52、锁优化
53、线程基本⽅法
54、线程等待(wait)
55、线程睡眠(sleep)
56、线程让步(yield)
57、线程中断(interrupt)
58、Join 等待其他线程终⽌
59、为什么要⽤ join()⽅法?
60、线程唤醒(notify)
61、线程其他⽅法
62、进程
63、上下⽂
64、寄存器
65、程序计数器
66、PCB-“切换桢”
67、上下⽂切换的活动
68、引起线程上下⽂切换的原因
69、同步锁
70、死锁
71、线程池原理
72、线程复
73、线程池的组成
74、拒绝策略
75、Java 线程池⼯作过程
75、Java 线程池⼯作过程
76、JAVA 阻塞队列原理
77、Java 中的阻塞队列
78、ArrayBlockingQueue(公平、⾮公平)
79、LinkedBlockingQueue(两个独⽴锁提⾼并发)
80、PriorityBlockingQueue(compareTo 排序实现优先)
81、DelayQueue(缓存失效、定时任务 )
82、SynchronousQueue(不存储数据、可⽤于传递数据)
83、LinkedTransferQueue
84、LinkedBlockingDeque
85、在 java 中守护线程和本地线程区别
86、线程与进程的区别?
87、什么是多线程中的上下⽂切换?
88、死锁与活锁的区别,死锁与饥饿的区别?
89、Java 中⽤到的线程调度算法是什么?
90、什么是线程组,为什么在 Java 中不推荐使⽤?
91、为什么使⽤ Executor 框架?
92、在 Java 中 Executor 和 Executors 的区别?
93、如何在 Windows 和 Linux 上查哪个线程使⽤的 CPU 时间最长?
94、什么是原⼦操作?在 Java Concurrency API 中有哪些原⼦类(atomic classes)?
95、Java Concurrency API 中的 Lock 接⼝(Lock interface)是什么?对⽐同步它有什么优势?
96、什么是 Executors 框架?
97、什么是阻塞队列?阻塞队列的实现原理是什么?如何使⽤阻塞队列来实现⽣产者-消费者模型?
98、什么是 Callable 和 Future?
99、什么是 FutureTask?使⽤ ExecutorService 启动任务。
100、什么是并发容器的实现?
101、多线程同步和互斥有⼏种实现⽅法,都是什么?
102、什么是竞争条件?你怎样发现和解决竞争?
103、为什么我们调⽤ start()⽅法时会执⾏ run()⽅法,为什么我们不能直接调⽤ run()⽅法?104、Java中,你怎样唤醒⼀个阻塞的线程?
105、在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
106、什么是不可变对象,它对写并发应⽤有什么帮助?
107、Java 中⽤到的线程调度算法是什么?
108、什么是线程组,为什么在 Java 中不推荐使⽤?
专题8:JVM
1、java中会存在内存泄漏吗,请简单描述。jdk怎么使用
2、64 位 JVM 中,int 的长度是多数?
3、Serial 与 Parallel GC 之间的不同之处?
4、32 位和 64 位的 JVM,int 类型变量的长度是多数?
5、Java 中 WeakReference 与 SoftReference 的区别?
6、JVM 选项 -XX:+UseCompressedOops 有什么作⽤?为什么要使⽤?
7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?
8、32 位 JVM 和 64 位 JVM 的最⼤堆内存分别是多数?
9、JRE、JDK、JVM 及 JIT 之间有什么不同?
10、解释 Java 堆空间及 GC?
11、JVM 内存区域
12、程序计数器(线程私有)
13、虚拟机栈(线程私有)
14、本地⽅法区(线程私有)
15、你能保证 GC 执⾏吗?
16、怎么获取 Java 程序使⽤的内存?堆使⽤的百分⽐?
17、Java 中堆和栈有什么区别?
18、描述⼀下 JVM 加载 class ⽂件的原理机制
19、GC 是什么?为什么要有 GC?
20、堆(Heap-线程共享) -运⾏时数据区
21、⽅法区/永久代(线程共享)
22、JVM 运⾏时内存
23、新⽣代
24、⽼年代
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论