摘要:
JDK5之前Java是靠synchronized关键字保证同步,这种机制存在以下问题:在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题一个线程持有锁会导致其他需要此锁的线程挂起如果一个优先级高饿线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险synchron... 阅读全文
摘要:
对象的创建(不包括数组和Class对象) 虚拟机遇到一条new指令时,首相检查这个指令的参数是否能再常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 类加载检查通过后,虚拟机将为新生对象分配内存。对象所需的大小再类... 阅读全文
摘要:
Java在执行Java程序时会把内存划分为若干个不同的数据区:1.程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号计数器。 在任意时刻,一个处理器(内核)都只会执行一条线程中的指令,因此,每条线程都有一个独立的... 阅读全文