随笔分类 -  Java 虚拟机

锁优化
摘要:前言 高效并发是从JDK1.5到JDK1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋、锁消除、锁粗化、轻量级锁和偏向锁等,这些技术都是为了在线程之间高效的共享数据,以及解决竞争问题,从而提高程序的执行效率。 自旋锁与自适应自旋 如果物 阅读全文

posted @ 2018-11-28 16:55 AoTuDeMan 阅读(119) 评论(0) 推荐(0)

Java线程安全
摘要:前言 在软件行业发展的初期,程序编写是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维的方式直接站在计算机的角度去抽象问题和解决问题,称为面向过程的编程思想。于此相对的是,面向对象的编程思想是站在现实世界的角度去抽象和解决问 阅读全文

posted @ 2018-11-28 11:16 AoTuDeMan 阅读(293) 评论(0) 推荐(0)

Java线程
摘要:前言 并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。本篇文章讲述的是Java线程在虚拟机中的实现。 线程的实现 线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址 阅读全文

posted @ 2018-11-27 21:23 AoTuDeMan 阅读(162) 评论(0) 推荐(0)

Java内存模型
摘要:前言 多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多的情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。 除了充分利用计算机处理器的能 阅读全文

posted @ 2018-11-27 16:55 AoTuDeMan 阅读(181) 评论(0) 推荐(0)

运行期优化
摘要:前言 在部分的商用虚拟机中,Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行特别频繁的时候,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器( 阅读全文

posted @ 2018-11-23 21:37 AoTuDeMan 阅读(253) 评论(0) 推荐(0)

虚拟机字节码执行引擎
摘要:前言 代码编译的结果从本地机器转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 概述 执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是一个相对于物理机的概念,这两种机器都有代码执行的能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行 阅读全文

posted @ 2018-11-20 21:30 AoTuDeMan 阅读(206) 评论(0) 推荐(0)

类加载器
摘要:前言 类加载器实现的动作是:通过一个类的全限定名来获取描述此类的二进制字节流。 类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求开发出来的。虽然目前Java Applet技术基本上已经不怎么使用(仅仅指浏览器上的Java App 阅读全文

posted @ 2018-11-14 21:38 AoTuDeMan 阅读(156) 评论(0) 推荐(0)

Java类加载机制
摘要:前言 我们知道Java的Class文件编译后生成了.class文件,.calss文件中包含的各种信息,最终都需要加载到虚拟机中之后才能运行和使用。而虚拟机是如何加载这些Class文件的呢?Class文件中从信息进入到虚拟机后会发生什么?这些都是本文要讲解的内容,将会讲解类加载的每个阶段Java虚拟机 阅读全文

posted @ 2018-11-13 21:08 AoTuDeMan 阅读(164) 评论(0) 推荐(0)

内存分配
摘要:前言 Java技术体系中所提倡的自动内存管理最终可以归结为自动化解决了两个问题:给对象分配内存以及回收分配给对象的内存。 对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接的在栈上分配),对象主要分配在新生代的Eden区上,如果启用了本地线程缓冲,将按线程优先 阅读全文

posted @ 2018-11-08 20:28 AoTuDeMan 阅读(159) 评论(0) 推荐(0)

HotSpot的算法实现
摘要:上一篇文章垃圾回收机制(GC)从理论上介绍了对象存活判定算法和垃圾收集算法,而在HotSpot虚拟机上实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。 枚举根节点 以可达性分析中从GC Roots 节点找引用链这个操作为例,可作为GC Roots 的节点主要在全局性的引用( 阅读全文

posted @ 2018-11-07 21:04 AoTuDeMan 阅读(679) 评论(0) 推荐(1)

垃圾回收机制(GC)
摘要:前言 上一篇文章Java内存区域及对象讲述了Java内存运行时的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程生而生,随线程灭而灭,在这几个区域是不需要过多的考虑回收的问题的,因为方法结束或者线程结束时,内存自然就跟随着回收了;而Java堆和方法区则不一样,一个接口中的多个实现类需要的 阅读全文

posted @ 2018-11-06 21:45 AoTuDeMan 阅读(387) 评论(0) 推荐(0)

JVM内存区域及对象
摘要:前言 我们都知道Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自不同的用途,以及创建和销毁的时间,有的区域随着虚拟机启动的进程而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示 阅读全文

posted @ 2018-10-31 21:36 AoTuDeMan 阅读(161) 评论(0) 推荐(0)

导航