Optimus_7

博客园 首页 新随笔 联系 订阅 管理

2020年8月13日 #

摘要: 1. 对象结构 1.1 对象结构概览 1. 对象头:Instance Header Java对象最复杂的一部分,采用C++定义了头的协议格式,存储了Java对象hash、GC年龄、锁标记、class指针、数组长度等信息,稍后做出详细解说。 2. 实例数据:Instance Data 这部分数据才是真 阅读全文
posted @ 2020-08-13 18:55 Optimus_7 阅读(141) 评论(0) 推荐(1) 编辑

2020年8月12日 #

摘要: 1. Synchronized的各种使用方式 以及 锁的都是什么: Synchronized方法,且为非静态方法:锁的是当前类的实例对象(this)。 Synchronized方法,但是为静态方法:锁的是当前类对象。 Synchronized块(Object):锁的是Object对象。 Synchr 阅读全文
posted @ 2020-08-12 00:29 Optimus_7 阅读(142) 评论(0) 推荐(0) 编辑

2020年8月10日 #

摘要: 1. 单例模式的核心:两私一公 1. 本单例类的private的static属性 private static Object instance,用于接收本单例类的单例实例。 2. 本单例类的private的构造方法 防止别的类通过new 的方式创建。 (但是可以被反射破解) 3. 本单例类的publ 阅读全文
posted @ 2020-08-10 20:55 Optimus_7 阅读(223) 评论(0) 推荐(1) 编辑

摘要: 1. JMM规定CPU执行的(线程执行的)一些交互操作(应该并不是指令名称,只是抽象动作概念): 每条指令都是原子的(指令内部的操作们粘在一起的,不可分开的,要么都执行要么都不执行) (JMM规定每条指令都是原子的,但是对double和long的操作除外) lock:作用于主内存的变量, 将该变量被 阅读全文
posted @ 2020-08-10 20:44 Optimus_7 阅读(566) 评论(0) 推荐(0) 编辑

摘要: 1. JMM简介: JMM表示了主内存和工作内存之间的关系: 1. 主内存:只有一份,保存着所有变量。 即计算机内存条、即堆 2. 线程的工作内存:每线程都有一份且对其他线程不可见,保存着从主存中的变量的副本(其实是变量的引用)。 即计算机单核CPU的寄存器+单核CPU的高速缓存、即栈 3. 线程通 阅读全文
posted @ 2020-08-10 20:26 Optimus_7 阅读(135) 评论(0) 推荐(1) 编辑

摘要: 1. 线程与进程 1.1 进程与线程的区别 线程比进程更轻量级。 有进程的时候,一个进程(的资源)可以被多个线程共享。 没有进程的时候,线程也可以被CPU独立调度。 1.2 多进程场景下的解决方案(信号量方案) 在多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用,这 阅读全文
posted @ 2020-08-10 14:50 Optimus_7 阅读(411) 评论(0) 推荐(0) 编辑