恢复内容开始 JVM架构模型 一、Jvm简图 这张图是针对当前最流行的HotSpot VM虚拟机来说。 其中名称以及作用: 1.classFiles:字节码文件。 2.类装载器子系统(加载器):将class文件加载为一个类。 3.其中方法区和堆是线程共有的,而java栈、本地方法栈、程序计数器是线程 ...
分类:
其他好文 时间:
2020-04-16 19:26:06
阅读次数:
75
什么是反射,反射原理 java类的执行需要经历以下过程 编译:.java文件编译后生成.class字节码文件 加载:类加载器负责根据一个类的全限定名来读取此类的二进制字节流到JVM内部,并存储在运行时内存区的方法区,然后将其转换为一个与目标类型对应的java.lang.Class对象实例 连接:细分 ...
分类:
编程语言 时间:
2020-04-16 14:51:00
阅读次数:
71
Java程序在运行时,首先要读取编译后的class文件,由于我们在编写源码时会定义和使用各种结构和对象,那么在进行加载时,JVM会将分配得到的内存划分为多个区域。由JVM创建的不同区域,有些会随着虚拟机启动而创建,随着虚拟机退出而销毁,如:方法区(Method)、Java堆。还有一些是与线程一一对应的,会随着线程开始和结束而被创建和销毁,如:PC寄存器、Java虚拟机栈、本地方法栈。
分类:
其他好文 时间:
2020-04-15 23:01:12
阅读次数:
86
1、引用计数法 如果某个地方引用了这个对象就+1,如果失效了就-1,当为0就会回收但是JVM没有用这种方式,因为无法判定相互循环引用(A引用B,B引用A)的情况 2、引用链法(可达性分析) 通过一种GC ROOT的对象(虚拟机栈(栈帧中的本地变量表)中引用的对象、方法区中类静态属性引用的对象、方法区 ...
分类:
其他好文 时间:
2020-04-12 23:07:09
阅读次数:
169
线程之间方法区和堆内存共享,栈内存不共享;哪个线程调用sleep()方法,哪个线程就进入睡眠状态,与哪个对象调用该方法无关.packagetest1;publiccla***acerRunnableimplementsRunnable{/***龟兔赛跑多线程*/publicStringwinner;publicvoidrun(){for(intstep=1;step<=100;step++)
分类:
编程语言 时间:
2020-04-12 00:01:21
阅读次数:
86
运行时数据区域 java虚拟机在执行java程序过程中会把他所管理的内存划分为若干个不同的数据区域。 java虚拟机运行时数据区 方法区(线程共享区),虚拟机栈,本地方法栈,堆(线程共享区),程序计数器 1.程序计数器 程序计数器是一块较小的内存空间,他可以看作当前线程所执行的字节码指示器。每条线程 ...
分类:
编程语言 时间:
2020-04-09 14:11:41
阅读次数:
81
类的加载机制分为如下三个阶段:加载,连接,初始化。其中连接又分为三个小阶段:验证,准备,解析。 加载阶段 将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后再堆内创建一个class对象,用来封装类在方法区内的数据结构。 加载class文件的方式: 从本地系统中直接 ...
分类:
其他好文 时间:
2020-04-09 00:26:47
阅读次数:
72
类的流程 类的加载流程各阶段说明: 全限定名 : 包名 + 类名 加载 : 1. 根据类的全限定名找到对应的二进制流 2. 将静态数据结构转换为方法区运行时数据结构 3. 在堆中生成一个java.lang.class对象,作为访问方法区这些数据的入口 验证 : 校验字节码正确性 和 二进制流正确性等 ...
分类:
其他好文 时间:
2020-04-08 19:34:28
阅读次数:
84
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法 ...
分类:
编程语言 时间:
2020-04-08 12:10:18
阅读次数:
75
JVM类加载机制 JVM类加载机制分为:加载,验证,准备,解析,初始化五步,如 下图: 加载:这个阶段会在内存中生成一个代表这个类的java.lang.Class对象作为方法区这个类的各种数据的入口。 验证:目的去报Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机的自身安全 ...
分类:
其他好文 时间:
2020-04-08 09:23:26
阅读次数:
70