java虚拟机
文章平均质量分 92
powerfuler
这个作者很懒,什么都没留下…
展开
-
java核心知识点总结篇-JVM篇
2. JVM(1) 基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。(2) 运行过程:我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:① Java 源文件—->编译器—->.原创 2021-11-05 20:23:11 · 1329 阅读 · 1 评论 -
Linux端口/应用/pid/进程互查
Linux端口/应用/pid/进程互查1. 根据进程pid查端口: lsof -i | grep pid2. 根据端口port查进程: lsof -i:port 3. 根据进程pid查端口: netstat -nap | grep pid4. 根据端口port查进程 netstat -nap | grep port5、先查看进程pid ps -ef | grep 进程名6、Linux在启动一个进程时,系统会在/p...原创 2020-08-24 10:14:32 · 314 阅读 · 0 评论 -
linux压缩和解压缩命令、上传下载,rz和sz
linux压缩和解压缩命令:tar 解包:tar zxvf filename.tar 打包:tar czvf filename.tar dirnamegz命令 解压1:gunzip filename.gz 解压2:gzip -d filename.gz 压缩:gzip filename .tar.gz 和 .tgz 解压:tar zxvf filename.tar.gz 压缩:tar zcvf filename.tar.gz dirname...原创 2020-08-17 10:16:56 · 1908 阅读 · 0 评论 -
虚拟机基础常用操作命令(1)——虚拟机环境
虚拟机基础常用操作:1、cent0s7 改密码https://jingyan.baidu.com/article/f71d6037b16a3d1ab741d157.html2、CentOS7图形界面与命令行界面切换:在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F1切换回图形界面3、CentOS7安装后,localhost l...原创 2020-03-05 19:19:05 · 4595 阅读 · 2 评论 -
探索深入理解java虚拟机之线程安全与锁优化(8)
线程安全与锁优化1、线程安全Brian Goetz对线程安全比较恰当的定义:当多个线程访问一个对象时,如果不考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调度方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。2、线程安全(Java语言中的线程安全)按照线程安全的“安全程度”由强至弱来排序,java原创 2017-11-25 14:17:21 · 424 阅读 · 0 评论 -
探索深入理解java虚拟机之Java内存模型和线程(7)
Java内存模型和线程1、硬件效率与一致性由于计算机的存储设备与处理器的运算速度之间有着几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用的数据复制到缓存中,让运算速度快速运行,当运算结束后再从弄个缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。基于高速缓存的存储交互很好地解决了处原创 2017-11-25 14:08:30 · 200 阅读 · 0 评论 -
探索深入理解java虚拟机之虚拟机类加载机制(6)
虚拟机类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接(验证、准备、解析)和初始化过程都是在程序运行期间完成的。1、 类加载的时机类被加载到虚拟机内存中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解原创 2017-11-16 10:24:30 · 179 阅读 · 0 评论 -
探索深入理解java虚拟机之虚拟机类文件结构(5)
虚拟机类文件结构1、Java虚拟机提供的语言无关性Java虚拟机不和包括java在内的任何语言绑定,它只与Class文件这种特定的二进制文件格式所关联。不论Class文件来源何种语言,Java虚拟机都能接受。2、Class类文件的结构根据Java虚拟机规范的规定,Class文件格式采用一种类似于C语言结构体的伪结构来存储,这种伪结构中只有两种数据类型原创 2017-11-16 10:04:40 · 245 阅读 · 0 评论 -
探索深入理解java虚拟机之垃圾收集(4)
垃圾收集程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。1、判断对象存活a)引用计数器法给对象添加一个引用计数器,每当由一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。b)可达性分析算法原创 2017-11-16 09:54:39 · 168 阅读 · 0 评论 -
探索深入理解java虚拟机之java内存溢出(OOM)解析(3)
java内存溢出(OOM)解析根据java内存的结构,发生内存溢出的地方在于堆、栈、方法区、直接内存。1、 Java堆溢出(对象太多)Java堆用于存储对象实例,只要不断的创建对象,并且保证GCRoots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在数量到达最大堆的容量限制后就会产生内存溢出异常。通过参数-XX:+HeapDumpOnOutOfMemoryE原创 2017-10-29 11:58:14 · 390 阅读 · 0 评论 -
探索深入理解java虚拟机之hotspot虚拟机对象(2)
hotspot虚拟机对象1、 对象的创建1.检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。2.分配内存 接下来将为新生对象分配内存,为对象分配内存空间的任务等同于把一块确定的大小的内存从Java堆中划分出来。假原创 2017-10-29 11:47:58 · 341 阅读 · 0 评论 -
探索深入理解java虚拟机之java内存区域解析(1)
java内存区域解析1、java虚拟机内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存。2、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来原创 2017-10-29 11:29:07 · 267 阅读 · 0 评论