PS:蓝色块为线程独享空间 1、程序计数器(Program Counter Register) 1.1概述 a当前线程正在执行Java方法,记录所执行的虚拟机指令的地址。否则为空(Undefined)。 b每个线程都有独立的PC, c字节码解释器工作时通过改变PC的值来选取下一条需要执行的字节码指令... ...
分类:
其他好文 时间:
2020-05-31 19:53:36
阅读次数:
85
浅谈Java三种实现线程同步的方法 一、概述 无论是使用何种语言编程,在多线程编程中,常常会遇到多个线同时操作程某个变量(读/写),如果读/写不同步,则会造成不符合预期的结果。 例如:线程A和线程B并发运行,都操作变量X,若线程A对变量X进行赋上一个新值,线程B仍然使用变量X之前的值,很明显线程B使 ...
分类:
编程语言 时间:
2020-05-31 19:38:31
阅读次数:
76
1概述 a虚拟机的指令由一个字节长度(意味着操作码总数不能超过256条)、代表某种操作含义的数字(操作码,Opcode)以及跟随其后的0至多个代表此操作所需参数的操作数(operand)构成 b因为JVM采用面向操作数栈而不是面向寄存器的架构,所以大多数指令都不包含操作数,只有一个操作码,指令参数都... ...
分类:
其他好文 时间:
2020-05-31 19:37:16
阅读次数:
97
1.加载2.连接(1)校验: 查看字节码的数据是否以“cafe”开头 jdk版本是否可以运行字节码的数据 (2)准备 成员变量赋默认值 常量(final) (3)解析 String -->String类型对应的class地址 3.初始化<clinit>类初始化 (1)静态变量的显式初始化代码,赋值代 ...
分类:
其他好文 时间:
2020-05-31 10:59:45
阅读次数:
63
JVM 深入理解JVM(6)——类加载器 Posted by Crow on August 21, 2017 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的 ...
分类:
其他好文 时间:
2020-05-30 21:56:40
阅读次数:
64
JVM、JRE、JDK之间的关系 1.三者介绍 JDK:java的开发工具包 JVM:是java的虚拟机(Java Virtual Machine-JVM (虚拟机))。任何一 种可以运行Java字节码的软件均可看成是Java的"虚拟机”;只要为不同平台实现相应的虚拟机, 编译后的Java字节码(J ...
分类:
编程语言 时间:
2020-05-29 21:06:44
阅读次数:
65
/* 在给变量进行赋值的时候,如果右侧表示当中全都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。 short c = 1 + 2; //等号右边全都是常量,没有任何变量参与运算,编译之后,得到的.class字节码文件相当于【直接就是】:short c = 3 右侧 ...
分类:
其他好文 时间:
2020-05-29 17:38:45
阅读次数:
71
JVM JVM运行在操作系统之上,与硬件没有直接的交互。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 J ...
分类:
其他好文 时间:
2020-05-29 13:31:13
阅读次数:
51
前言JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在
分类:
其他好文 时间:
2020-05-29 10:14:52
阅读次数:
61
一、什么是反射? Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。 二、反射的三种方式 这里需要跟大家说一下,所谓反射其实是获取类的字节码文件,也 ...
分类:
其他好文 时间:
2020-05-28 21:59:14
阅读次数:
64