Java虚拟机在执行Java程序的过程会把它所管理的内存划分为若干个不同的数据区域,这些区域被称为运行时数据区。 程序计数器 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储。 Java虚拟机栈 ...
分类:
编程语言 时间:
2018-04-11 15:01:53
阅读次数:
174
一、概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verifica ...
分类:
编程语言 时间:
2018-04-09 23:09:34
阅读次数:
281
jstack用于生产java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法 堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,比如线程间死锁、死循环、请求 外部资源导致长时间等待等。线程出现停顿的时候通过jstack命令可查看各个线程的调用堆栈 线程 ...
分类:
编程语言 时间:
2018-04-09 17:19:10
阅读次数:
160
Java垃圾回收(GC)机制 标签(空格分隔): java虚拟机 垃圾回收的是什么? 我们需要回收的对象是那些不可能再被任何途径使用的对象 如何确定对象不再被引用? 1、引用计数法: 在对象中添加一个引用计数器,每当一个地方引用这个对象一次,计数器值就+1;当引用失效的时候就 1。当某个时候计数值等 ...
分类:
编程语言 时间:
2018-04-07 22:51:16
阅读次数:
204
对于常见的GC算法,我们都应该知道,例如:标记清除算法、复制算法、标记整理算法等。标记清除算法由于回收之后存在大量的内存碎片,存在效率和空间问题!为了解决效率问题,引出了复制算法!熟悉GC算法的小伙伴应该都看过周志明老师的《深入理解Java虚拟机》这本书。因此,这里不再讨论这几种GC算法的区别,这里 ...
分类:
其他好文 时间:
2018-04-07 22:42:28
阅读次数:
192
1.JAVA 虚拟机 2.垃圾收集 3.代码安全 Java 语言是解释执行 从某种意义上 Java 文件是编译的 (从源文件 到类文件 的过程) Java 目标代码 成为字节码 存储在.class 文件里 字节码是不依赖机器硬件平台的二进制代码 1.JAVA开发环境的安装 2.JAVA 应用程序(第 ...
分类:
编程语言 时间:
2018-04-07 16:14:08
阅读次数:
151
1. Java既是编译型语言,又是解释型语言 java源文件首先需要通过javac编译生成后缀名为.class的字节码文件(与平台无关,只面向JVM),然后使用Java虚拟机将字节码解释成特定平台上的机器码运行。 2. Java虚拟机JVM 不同平台上的JVM不同,但是都提供了相同的接口。 3. 开 ...
分类:
编程语言 时间:
2018-04-06 22:33:52
阅读次数:
209
前言:Java虚拟机的重要性不言而喻,不管是在实际工作中,还是面试中。 1.JVM架构 要点: 主要了解Java虚拟机运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆和方法区。 参考: https://blog.csdn.net/seu_calvin/article/details ...
分类:
编程语言 时间:
2018-04-06 14:03:06
阅读次数:
170
1 jstack jstack是JDK自带的一种线程栈跟踪工具,用于生成java虚拟机当前时刻线程快照。在定位线程卡顿、死锁、block等原因的时候非常有用。使用方法是: jstack [ l] pid 2 Monitor Monitor是java中用以实现线程同步和互斥的主要手段,每一个对象有且只 ...
分类:
Web程序 时间:
2018-04-06 13:53:31
阅读次数:
825
王利国的"Java语言程序设计第1次作业(2018)"详细 作业结果详细 总分:100 选择题得分:40 1. Java语言中,基本数据类型一共有( )种。 A.16 B.2 C.4 D.8 正确答案是: D 2. Java虚拟机的英文缩写是( ) A.JRE B.ECLIPSE C.JVM D.J ...
分类:
编程语言 时间:
2018-04-06 13:48:05
阅读次数:
678