摘要: monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖操作系统互斥(mutex)来实现的(系统调用)。互斥是一种会导致线程挂起,并在较短的时间内又需要重新调度回原线程的,较为消耗资源的操作。 JDK1.6对线程进行了优化,目的就是减少多线程编程下对锁 阅读全文
posted @ 2017-08-02 21:03 bili111 阅读(594) 评论(0) 推荐(0) 编辑
摘要: java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢? 对象头:对象头存放的是这个对象的一些元数据信息。例如每个对象都有哈希值,GC分代年龄,锁状态标志等,这些信息就是存放在对象头中。 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 阅读全文
posted @ 2017-08-02 15:05 bili111 阅读(2852) 评论(0) 推荐(0) 编辑
摘要: 机器语言是cpu唯一能够读懂的语言,早期的程序员写机器语言,实际上是直接写机器指令去命令底层硬件如何操作,但是机器语言都是16进制的数字,很不直观而且非常容易出错。之后就有了汇编语言,它是对机器语言用助记符来表示,然后由汇编器去查表,将助记符映射成机器语言。汇编语言和机器语言是一一对应的关系,一条汇 阅读全文
posted @ 2017-08-02 10:53 bili111 阅读(266) 评论(0) 推荐(0) 编辑