书单
Hc-Z
知道的越多,不知道的就越多
展开
-
Java如何决定对象的生死及对象该如何逃脱?
垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象中哪些还“存活”,哪些已经“死去”。 引用的分类 Java将引用分为4种: 强引用:指在程序代码之中普遍存在的引用赋值,即类似 “Object obj = new Object ()” 这种引用关系。无论何种情况下,只要强引用关系存在,垃圾收集器就不会回收调被引用的对象。 软引用:用来描述一些还有用,但非必须的对象。只要被软引用关联着...原创 2020-03-28 14:58:12 · 184 阅读 · 0 评论 -
深入理解JAVA虚拟机- Java内存区域与对象揭秘
此文是对《深入理解JAVA虚拟机》的一点总结,如果想要了解具体细节可以去看原书。 运行时数据区域 Java虚拟机在执行Java程序的过程中会把内存划分为若干个不同的数据区域。如下图所示: 程序计数器 程序计数器可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环...原创 2020-03-14 16:58:56 · 150 阅读 · 0 评论 -
【JAVA书单】-《JAVA多线程核心技术》-第六章 单列模式与多线程
此文是对《JAVA多线程编程核心技术》的一点总结,如果想要了解具体细节可以去看原书。 第六章 单列模式与多线程 我之前最经常使用的单列: public class MyObject { private volatile static MyObject myObject; private MyObject() {} //使用双检测来解决问题,既保证了不需要同步代码的异步执行...原创 2020-02-17 14:42:56 · 113 阅读 · 0 评论 -
【JAVA书单】-《JAVA多线程核心技术》-第四章 Lock的使用
此文是对《JAVA多线程编程核心技术》的一点总结,如果想要了解具体细节可以去看原书。 第四章 Lock的使用 lock和synchronized的区别 用法: synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。 lock:需要显示指定起始位置和终止位置。一般使用ReentrantLock类做为锁,多个...原创 2020-02-15 15:27:38 · 143 阅读 · 0 评论 -
【JAVA书单】-《JAVA多线程核心技术》-第三章 线程间通信
此文是对《JAVA多线程编程核心技术》的一点总结,如果想要了解具体细节可以去看原书。 第三章 线程间通信 使用wait/notify实现线程间的通信 方法wait()的作用是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止执行,直到接到通知或中断为止。在调用wait()之前,线程必须获得该对象的对...原创 2020-02-13 16:12:11 · 123 阅读 · 0 评论 -
【JAVA书单】-《JAVA多线程核心技术》-第二章 对象及变量的并发访问
此文是对《JAVA多线程编程核心技术》的一点总结,如果想要了解具体细节可以去看原书。 第二章 对象及变量的并发访问 synchronized对象监视器为Object时的使用 a)、synchorized修饰非静态方法时,synchorinzed获得的锁都是对象锁,而不是把一段代码或方法当作锁,哪个线程先执行synchronized方法,哪个线程就持有该方法所属对象的锁Lock,那么其他线程只能...原创 2020-02-12 17:00:25 · 174 阅读 · 0 评论 -
【JAVA书单】-《JAVA多线程核心技术》-第一章 多线程技能
此文是对《JAVA多线程编程核心技术》的一点总结,如果想要了解具体细节可以去看原书。 第一章 多线程技能 线程的启动 实现多线程编程的方式主要有两种,一种是继承Thread类,另一种是实现Runnable接口。 1.继承Thread类,并且重写run方法。 public class MyThread extends Thread { public static void main(Strin...原创 2020-02-11 17:03:35 · 134 阅读 · 0 评论