0. 前言 Java虚拟机和真实的计算机一样,执行的都是二进制的机器码;而我们将.java 源码编译成.class 文件,class文件便是Java虚拟机可以认识的二进制机器码,Java可以识别class文件里的信息和机器指令,进而执行这些机器指令。那么,Java虚拟机是怎样执行这些二进制的机器码的 ...
分类:
编程语言 时间:
2017-07-14 22:16:44
阅读次数:
340
在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。 在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由于类作为JV ...
分类:
其他好文 时间:
2017-07-14 13:35:41
阅读次数:
1682
当调用java命令运行某个java程序时,该命令将会启动一个java虚拟机,不管该程序有多么复杂,启动了多少个线程,他们都处于该java虚拟机里,同一个JVM的所有线程,所有变量都处于同一个进程里,都使用该JVM进程的内存区 以下情况JVM被终止: 程序运行到正常结束 程序运行到System.exi ...
分类:
其他好文 时间:
2017-07-13 21:59:52
阅读次数:
197
《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明 《Java多线程编程核心技术》作者高洪岩 《Effective Java中文版》的作者是Joshua Bloch 《大型网站技术架构 核心原理与案例分析》的作者是李智慧 《从Paxos到ZooKeeper 分布式一致性原理与实践》,作 ...
分类:
其他好文 时间:
2017-07-13 10:48:29
阅读次数:
114
在读: Java 核心技术:卷一 Spring In Action(Spring 实战) 第四版 重构:改善既有代码的设计 未读: Java 编程思想: 深入理解 Java 虚拟机: Head First 设计模式: Java 并发编程实践 以此作为自己的书单,时刻提醒自己需要学习!!! ...
分类:
其他好文 时间:
2017-07-13 10:48:15
阅读次数:
146
Java虚拟机在操作系统层面会先尽一切可能在虚拟机层面上解决竞争关系,尽可能避免真实的竞争发生。同时,在竞争不激烈的场合,也会试图消除不必要的竞争。实现这些手段的方法包括:偏向锁、轻量级锁、自旋锁、锁消除、锁膨胀等 1. 偏向锁 偏向锁是JDK1.6提出的一种锁优化方式。其核心思想是:如果程序没有竞 ...
分类:
编程语言 时间:
2017-07-12 23:38:30
阅读次数:
329
程序代码: 解析: public static void main(String[] args) 这个main方法是一个程序的执行入口地址。Java程序的字节码文件被Java虚拟机调用,而这个main()方法就是被JVM所调用。 对于main方法的格式,它是固定的格式,前面的关键字任何一个均不能少。 ...
分类:
编程语言 时间:
2017-07-12 20:01:30
阅读次数:
233
一。你要做的事情: 1. 编写源代码:xxx.java 2. 编译器编译:检测代码错误 3. 输出:编译器输出xxx.class 4. 运行:java虚拟机运行xxx.class ...
分类:
编程语言 时间:
2017-07-11 23:25:13
阅读次数:
218
1 OOP(面向对象编程):继承,封装,多态,抽象。 2 什么是java虚拟机: 可以执行java字节码的虚拟机进程,而不需要为每一个平台单独重写或重新编译。虚拟机知道底层指令长度。 3 JDK,JRE区别: JRE是Java虚拟机,可以解释JAVA字节码,形成及其语言。 JDK是完整的开发包,包含 ...
分类:
编程语言 时间:
2017-07-11 11:12:48
阅读次数:
229
这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。 线程 JVM 系统线程 每个线程相关的 程序计数器 栈 本地栈 栈限制 栈帧 局 ...
分类:
编程语言 时间:
2017-07-10 14:31:54
阅读次数:
266