E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
虚拟机学习
jJava
虚拟机学习
笔记(1)——虚拟机的组成结构
一.什么是Java虚拟机二.Java虚拟机的组成一.什么是Java虚拟机虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。(参考百度百
魔术兔
·
2020-07-02 16:13
Java虚拟机
JVM
深入理解java
虚拟机学习
—运行时数据区域
参考资料:《深入理解java虚拟机》JVM高级特性与最佳实践第二版周志明java虚拟机运行时数据区域如下图:其中红色背景区域代表的是线程共享的内存区,而蓝色背景区域代表的是线程私有的内存区。一、线程共享的内存区域1.堆Heap这个区域是我们用到最多的内存区域,该区域在虚拟机启动时创建,对象实例以及数组(直观点就是使用new产生的)都在这个堆上分配,我们可以通过-Xmx(堆最大可用内存)和-Xms(
zlp1992
·
2020-06-30 18:21
java
虚拟机
深入理解JAVA
虚拟机学习
笔记13——Class类文件的结构(1常量池)
前一篇文章已经对Class类文件匆匆一瞥,上一篇没看的,建议先看一下上一篇,这一篇就看一下具体的细节。我们先随便创建一个类,代码如下。运行main方法,这个时候会生成一个class文件,我们用文本编辑器打开它。由于class文件中是二进制流,直接打开会显示一堆乱码,为了方便查看,我们以16进制编码格式打开文件,需要借助一下插件。笔者用的是Nodepad++,在菜单栏中找到“插件”,依次选择“Plu
徐可心
·
2020-06-29 23:08
深入理解JAVA
虚拟机学习
笔记1——内存
Java虚拟机在执行Java程序的过程中会在内存空间中分配出一块区域,用于程序的运行。虚拟机又会把这块所管理的内存划分为若干个不同的数据区域:虚拟机栈,本地方法区,程序计数器,堆,方法区。左侧三个为线程私有,右侧两个为线程共享的区域。1.程序计数器:当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复
云水禅音
·
2020-06-29 21:35
JAVA虚拟机
JVM
虚拟机学习
笔记(一)Java内存划分
前言学习一门编程语言有必要去了解其底层的工作原理,这个系列对JVM学习过程中的一些笔记(主要来自周志明的深入理解Java虚拟机)Java技术体系java虚拟机运行时数据区域jvm体系结构程序计数器(ProgramCounterRegister)程序计数器是一块较小的内存空间,它可以看成是当前线程所执行的字节码的行号指器。在虚拟机的概念模型里(这里仅指概念模型,不同的虚拟机可能会有更高效的实现),字
Misery_Dx
·
2020-06-28 11:51
Java
虚拟机学习
笔记——JVM垃圾回收机制
Java
虚拟机学习
笔记——JVM垃圾回收机制Java垃圾回收基于虚拟机的自动内存管理机制,我们不需要为每一个对象进行释放内存,不容易发生内存泄漏和内存溢出问题。
weixin_30587927
·
2020-06-27 21:32
Java
虚拟机学习
---ClassLoader的思考
为什么会有双亲委派模型?Java虚拟机在加载一个clas文件时,需要遵循一个流程,这个加载流程就是双亲委派模型,Java类加载器有三种:BootstrapClassLoader(启动类加载器)、ExtClassLoader(扩展类加载器)、AppClassLoader(应用程序加载器)。Java加载class文件的过程是开放的,但需要保证基础核心的类不被修改,必然需要一套机制保证虚拟机的正常运行,
Groople
·
2020-06-26 23:02
java
Java
虚拟机学习
---Class文件解析
class文件整体结构:类型名称说明长度u4magic魔数,识别Class文件格式4个字节u2minor_version副版本号2个字节u2major_version主版本号2个字节u2constant_pool_count常量池计算器2个字节cp_infoconstant_pool常量池n个字节u2access_flags访问标志2个字节u2this_class类索引2个字节u2super_cl
Groople
·
2020-06-26 23:31
java
Java
Class
结构
虚拟机
文件
深入理解JVM
虚拟机学习
笔记(四)虚拟机性能监控和故障处理工具
jps:虚拟机进程状况工具可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及这些进程本地虚拟机的唯一ID(LVMID)。对于本地虚拟机进程来说,LVMID与操作系统的进程ID是一致的。jps命令格式:jps[options][hostid]jstat:虚拟机统计信息监视工具是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集JIT编译等
但觉
·
2020-06-24 22:00
JVM
深入理解JVM
虚拟机学习
笔记(三)内存分配和回收策略
大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机将发起一次MinorGC。新生代GC(MinorGC):指发生在新生代的垃圾收集动作,因为Java对象大多具有朝生夕灭的特性,所以MinorGC非常频繁,一般回收速度也比较快。老年代GC(FullGC/MajorGC):指发生在老年代的GC,出现了MajorGC,经常会伴随至少一次的MinorGC。非绝对。大对
但觉
·
2020-06-24 22:59
JVM
jvm
虚拟机
对象
内存分配
深入理解JAVA
虚拟机学习
笔记3——OutOfMemoryError异常
开门见山。为了方便制造溢出,将JAVA堆的大小调整为10M。本机用的是IntelliJIDEA作为开发工具,进入到IDEA的安装目录,如D:\tools\IntelliJIDEA2017.1.4\bin,打开idea64.exe.vmoptions文件(32位的请打开idea.exe.vmoptions),把-Xms(最大堆内存)和-Xmx(初始化对内存大小)都设置成10M,书上说设置成一样可避免
徐可心
·
2020-06-24 09:54
Java
虚拟机学习
- 垃圾收集器
HotSpotJVM收集器上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvmclient模式下默认的新生代收集器。对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的
iteye_3619
·
2020-06-23 19:58
深入理解Java
虚拟机学习
笔记——三、虚拟机类加载机制
1、概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成能够被虚拟机直接使用的数据类型,这就是虚拟机的类加载机制。在Java中,类的加载、校验、解析和初始化都是在运行期间完成的。2、类加载的时机类从被加载都虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括:加载、准备、校验、解析、初始化、使用和卸载7个阶段。准备、校验、解析被统称为连接。其中,加载、
隔壁老王来也
·
2020-06-23 13:03
Java
虚拟机学习
之运行时数据区域
Java
虚拟机学习
之运行时数据区域内容选择《深入理解java虚拟机》周志明著一书,尊重并感谢原著作者。
Haoroid
·
2020-06-22 21:46
虚拟机学习
Java虚拟机 学习
20.2.4Java
虚拟机学习
栈堆栈方法区的关系堆JMM内存模型亮色是所有线程共享,灰色是单个线程私有。亮色存在垃圾回收,但是不一定有。类加载器四个问题:什么是类加载器,都有那几种?
bw_ustc
·
2020-06-22 19:30
搭建Tensorflow
虚拟机学习
环境
大家好,我是帅气小伙,我要开始探索人工智能了!其实也不是难的事情,写这篇文章的目的是,记录自己在安装Tensorflow的过程,方便以后查看;帮助广大朋友搭建学习环境。如果大家能看到这篇文章,就证明我已经成功地搭建了学习环境,安装步骤是可靠的。前言1.我为什么要学习Tensorflow?因为我想学Linux,学python,学docker,学git,学tensorflow,就是这么贪心。2.如何克
帅气小伙
·
2020-04-13 15:21
java
虚拟机学习
笔记3-----对象的内存布局和对象的访问定位
对象的内存布局在HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头、实例数据、对齐填充。对象头HotSpot虚拟机中的对象头包括两部分内容:第一部分用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁标识状态、线程持有的锁、偏向线程ID、偏向时间戳等,因为对象的运行时数据很多,所以存储的结构并不固定。第二部分是类型指针,即对象执行她类元数据的指针,虚拟机通过这个指针来确定对
乘风遇见
·
2020-04-11 11:29
JVM
虚拟机学习
-精简版
JVM
虚拟机学习
Jdk:javadevelopmentkitJre:javaruntimeenvironment1:自动内存管理机制Java内存区域与内存溢出异常Java的内存区域结构如下程序计数器:1
Skybike
·
2020-04-09 21:09
Java
虚拟机学习
(二) JVM异常与反射
异常1:使用异常捕获的代码为什么比较耗费性能?因为构造异常的实例比较耗性能。这从代码层面很难理解,不过站在JVM的角度来看就简单了,因为JVM在构造异常实例时需要生成该异常的栈轨迹。这个操作会逐一访问当前线程的栈帧,并且记录下各种调试信息,包括栈帧所指向方法的名字,方法所在的类名、文件名,以及在代码中的第几行触发该异常等信息。虽然具体不清楚JVM的实现细节,但是看描述这件事情也是比较费时费力的。2
一个忙来无聊的人
·
2020-04-05 09:46
深入理解JAVA
虚拟机学习
笔记14——Class类文件的结构(2访问标志, 继承, 实现)
各位朋友,上一篇的常量池都掌握了吧,我们的口号是:每天进步一点点!开始之前,我们先巩固并扩充一下昨天的知识,用Excel表示一下就是这样的(请原谅笔者low到爆的画图水平,画这种图有什么好的工具,朋友们可以推荐一下啊)。请注意!!!这里有个地方需要补充个一下,那就是当常量的类型是CONSTANT_Utf8_info的时候,看一下它的类型,length是它的字符串长度,意思是代表有多少个bytes(
徐可心
·
2020-04-04 09:22
小白电脑实用技巧35——使用
虚拟机学习
安装操作系统
对于还不会安装操作系统的朋友来说,使用
虚拟机学习
安装操作系统,无疑是最简单和方便的方法了,不用担心安装失败带来的烦恼,同时也能迅速找到问题及查找故障。
万魔寺
·
2020-03-28 02:47
java
虚拟机学习
记录(内存划分、垃圾回收、类加载等机制)
一直以来觉得虚拟机是Java最难的一部分,涉及最底层的原理,学起来难度很大,而且工作中基本上用不到这些原理,所以对这部分“敬而远之”。现如今工作五年了,从Java基础到算法、数据结构、网络、数据库、设计模式都有涉猎,虚拟机部分在脑海里还是空空荡荡,连经常被谈起的垃圾回收机制都不了解,实在是惭愧。了解虚拟机通往高级Java程序员的必由之路,同时学好虚拟机也能提高我们代码的质量,知道对象是怎么创建的,
小小的菜鸟鸟
·
2020-03-24 13:00
深入理解java
虚拟机学习
笔记(一) java内存区域与相关异常
1.JVM虚拟机运行时内存区域jvm运行时所管理的内存将会分为如下几个区域:程序计数器、虚拟机栈、本地方法栈、方法区、堆区。其中,方法区和堆区由所有线程共享,程序计数器、虚拟机栈、本地方法栈将根据线程进行隔离。jvm1.7虚拟机运行时数据区域1.1程序计数器程序计数器(ProgramCounterRegester):是一块较小的内存空间,作为当前线程锁执行字节码的行号指示器。为当前线程私有。如果执
冬天里的懒喵
·
2020-02-23 21:09
深入理解JAVA
虚拟机学习
笔记16——Class类文件的结构(4属性)
我们的口号是:每天进步一点点!上一篇的字段写到属性的时候,由于属性涉及到的内容比较多,我们暂时搁置了,这一篇是Class文件结构的最后一篇,我们就详细说说属性表结合。九、属性(Attribute):从表中看属性部分分为属性个数(attributes_count)和属性信息(attributes),这个已经没什么好说的了(参考前面的文章),这个单独拿出来主要是属性的类型比较多,如下图所属。类中字段和
徐可心
·
2020-02-15 14:10
系统学习python第一天学习笔记
winxpwin7win10windowserver(服务器)linuxcentos,图形化界面差ubuntu,个人开发(图形化比较好)redhat,企业级mac,办公/装逼(入职之前看看mac怎么玩,mac)2.学习编程语言安装解释器/编译器/
虚拟机学习
语法
bkhg
·
2020-02-06 00:00
Java虚拟机——初探字节码class文件内部结构
此文对字节码class文件的内部结构进行初步探索,介绍其各个重要组成部分,对之后的Java
虚拟机学习
做好基础。
Simon Q.Zhu
·
2020-01-16 20:53
Java虚拟机
Java虚拟机
字节码文件
class文件结构
Java
Class
常量池
JVM
虚拟机学习
(更新中)
Java虚拟机(JVM)你只要看这一篇就够了!JVM分为五大区域:程序计数器;虚拟机栈;堆;方法区;本地方法栈;程序计数器当前线程的行号指示器。是唯一没有OOM的区域,如果当前执行在Native方法,则返回为undefinded。虚拟机栈线程私有,生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同事都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等
是y狗阿
·
2020-01-08 23:51
深入理解JAVA
虚拟机学习
笔记26——字节码执行引擎(栈帧)
每天进步一点点!今天主要了解一下栈帧中的内容,大部分为内容都比较容易理解,且做以下记录。首先介绍以下栈帧的概念:栈帧(StackFrame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(VirtualMachineStack)的栈元素。栈帧中主要存储了5方面的内容:方法的局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。在编译代码的时候,栈帧中
徐可心
·
2020-01-07 08:38
深入理解java
虚拟机学习
笔记(三) 虚拟机性能监控与故障处理工具
1.JDK的命令行工具jdk自带监控和故障处理工具名称主要作用jpsJVMProcessStatusTool,显示指定系统内所有HotSpot虚拟机进程jstatJVMStatisticsMonitoringTool,用于收集HostSport虚拟机各方面的运行数据jinfoConfiguationInfoforJava,显示虚拟机的配置信息jmapMammoryMapforjava,生成虚拟机的
冬天里的懒喵
·
2020-01-07 07:57
深入理解JAVA
虚拟机学习
笔记25——类加载的初始化过程
每天进步一点点!前面已经介绍了类加载的加载、验证、准备、解析等过程,今天来学习最后一个过程,初始化!对于有过java开发经验的朋友们来说,初始化这个词自然不陌生,初始化阶段与变量初始化自然不是一个概念,但是也有一些关联。在上一篇中,我们已经看到了在准备阶段,不同变量初始化的区别,实际上,初始化阶段是执行类构造器()方法的过程。朋友们还记得上一篇中的例子吗(有兴趣的朋友可以看一下上一篇)?按照前面的
徐可心
·
2020-01-07 06:28
深入理解JAVA
虚拟机学习
笔记19——字节码指令3(类型转换指令)
每天进步一点点!上一篇写的数据类型的范围,相信大家还记得吧,每一种类型对应不同的数据范围和精度。有的时候,我们需要对数据类型进行转换,既涉及到从范围较小的数据类型向范围较大的数据类型来转换,也涉及到从范围较大的数据类型转向范围较小的数据类型转换。就像折酒一样,把二两杯里面的啤酒倒进大扎啤杯里面,自然是没问题的,虚拟机自动进行隐式转换。但是当大扎啤杯里面的啤酒往二两杯里面倒的时候,如果扎啤杯里面的酒
徐可心
·
2020-01-06 06:46
Java -
虚拟机学习
笔记2 类加载机制
之前写了篇关于Java虚拟机内存管理方面的学习总结,点击查看,主要总结了Java虚拟机运行时不同数据区域的作用(堆、方法区、栈等等),以及内存分配和内存回收的原理,本篇文章主要介绍Java虚拟机类加载机制,搞懂虚拟机是怎么加载编译后的类文件的。一、Class类文件二、类加载机制三、类加载器四、类的初始化五、总结一、Class类文件Sun公司于1995年5月正式推出Java语言,如今Java已经得到
尘语凡心
·
2019-12-28 06:39
深入理解JAVA
虚拟机学习
笔记21——虚拟机的类加载机制概述
每天进步一点点!在前面的几篇中,我们已经详细学习了Class字节码文件的结构,包含哪些内容已经内容的含义,下面几篇我们将研习一下类的加载。虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(
徐可心
·
2019-12-26 06:13
Dalvik
虚拟机学习
之路
1.Dalvik虚拟机和Java虚拟机的区别Dalvik虚拟机使用的是dex(DalvikExecutable)格式的类文件,而Java虚拟机使用的是class格式的类文件。一个dex文件可以包含若干个类,而一个class文件只包括一个类。由于一个dex文件可以包含若干个类,因此它就可以将各个类中重复的字符串和其它常数只保存一次,从而节省了空间,这样就适合在内存和处理器速度有限的手机系统中使用。D
wenxiaohua
·
2019-12-25 06:45
虚拟机学习
第三章 垃圾收集器与内存分配策略
1.引用计数算法概念:给对象添加引用计数器,有引用加1,失效减1。问题:很难解决对象之间相互引用。2.可达性分析算法概念:GCRoot作为起点,搜索节点路径为引用链,没有引用链不可达,可回收。GCRoot:1.虚拟机栈(本地变量表)引用的对象。2.方法区里静态属性引用的对象。3.方法区里常量引用的对象。4.J本地方法栈JNI引用的对象。3.引用类型a.强引用:普通的Objecto=neObject
zhuozhi
·
2019-12-24 12:58
深入理解JAVA
虚拟机学习
笔记27——字节码执行引擎(方法调用)
每天进步一点点!这里说的方法调用阶段的任务并不是执行过程,而是确定方法运行时的入口地址。前面我们已经学习过,在Class文件的常量池中,类型为CONSTANT_Methodref_info的,存储的就是方法信息,并最终指向方法的符号引用。对于方法调用,首先要进行的就是解析,这个其实在前面我们已经有了一些涉及,虚拟机提供了五条字节码指令,用于方法调用,我们再来回顾一下。1.invokestatic:
徐可心
·
2019-12-19 03:45
深入理解JAVA
虚拟机学习
笔记24——类加载的准备和解析
每天进步一点点!今天我们一起看一下类加载的准备阶段和解析阶段。先看一下准备阶段:主要任务是在方法区中为类变量(仅static修饰变量,不包含实例变量)分配内存并设置类变量初始化的阶段。这里面的区别,我们通过下面的代码来简单了解一下。我们将上面的代码编译好后,通过字节码工具看一下其中的信息。首先,从上图可以看出,被final修饰的b是直接赋值的。我们再打开classlib,如下图所示,b对应的是一个
徐可心
·
2019-12-15 06:52
深入理解JAVA
虚拟机学习
笔记22——类加载的加载过程
每天进步一点点!上一篇穿插了一段动态绑定和静态绑定的知识,这一篇我们回归到类加载上来,学习一下类加载的“加载”。是不是读起来有点拗口,这是什么意思?别迷糊,还记得上一篇的上一篇学习过的类加载过程吗,里面有一个阶段就是“加载(loading)”。加载过程主要包括以下三点内容:1、通过一个类的全限定名来获取定义此类的二进制字节流。全限定名也就是包名.类名的形式。如下图所示,当我们在同一个类中,引用的两
徐可心
·
2019-12-14 04:22
深入理解JAVA
虚拟机学习
笔记20——字节码指令4(其他指令)
每天进步一点点!指令这块的相关信息我们在前几篇的文章中已经有了基本了解,这一篇不过多解释了,将剩下的指令列出来,作为记录(节选自《深入理解JAVA虚拟机》)。1、对象创建与访问指令JVM对类实例和数组创建和操作使用了不同的字节码指令,包括:创建类实例的指令:new创建数组的指令:newarray,anewarray,multianewarray访问类字段(static字段,或者称为类变量)和实例字
徐可心
·
2019-12-12 20:33
深入理解JAVA
虚拟机学习
笔记23——类加载的验证过程
每天进步一点点!上一篇已经学习了加载阶段,这一篇我们了解一下验证的过程。我们已经知道了,虚拟机加载的是Class字节码文件,我们也通过工具查看了文件中存储的是二进制流。下面我们打开一个文件AppTest.class,我们在文件的开头随便加入一个字母“f”,如下图所示。那么,我们通过命令行输入命令“javaAppTest”,会出现什么结果呢?虚拟机会报一个Class文件格式化错误,这是我们随便修改的
徐可心
·
2019-12-06 23:46
Java
虚拟机学习
笔记:为什么Java的跨平台性好?
》目录1.JDK、JRE、JVM三者的关系是什么。2.为什么Java要在虚拟机里运行?3.Java虚拟机是怎么执行一段Java程序的?4.Java虚拟机将Java字节码翻译成机器码的形式有哪两种?5.为什么说Java的跨平台性好?6.Java是面向对象语言,为什么要引入基本数据类型?》解答1.JDK、JRE、JVM三者的关系是什么?JDK(Java开发工具包)包含JRE(Java运行时环境)及一系
楠楠喜欢泡枸杞
·
2019-12-06 23:19
深入理解JAVA
虚拟机学习
笔记12——class类文件结构概述
对于前面的学习,笔者认为属于第一阶段,一直都在说虚拟机内存分配和垃圾收集的问题,由于这些都是开发的过程中看不见又不常用得,不那么容易理解。从这一篇开始,我们迎来了第二阶段,这一阶段的知识,将会和我们的代码紧密联系起来。每一个学习JAVA的人,相信都听过一个诱人的口号“Writeonce,runanywhere”,JAVA是怎么实现的,简单来说,在不同的平台上有不同的虚拟机,虚拟机会将生成的字节码文
徐可心
·
2019-11-29 09:41
Java
虚拟机学习
(一)
一、GC的回收算法:①引用计数法:给对象添加一个引用计数器,当有一个地方引用他的时候,引用计数器就加1,当引用失效的时候,引用数就减1,当引用计数器任何时刻都为零的的对象就是不会再被引用的对象②可达性分析算法:算法的基本思路就是通过一系列成为GCRoots的对象那个作为根节点,从这些节点开始向下搜索,搜索的路径成为引用链,当一个对象到GCR哦哦图书没有任何引用链的时候,则认为此对象是不可用的;③即
Taoyongpan
·
2019-11-06 20:44
Java -
虚拟机学习
笔记1 自动内存管理机制
在学习Java的时候,我们通常会将其与c++进行对比,Java在c++的基础上作了许多改进,摒弃了c++中很多很少使用、难以理解的且容易混淆的特性,例如头文件、指针、运算符重载、多继承等等。Java与c++相比有很多不同之处,其中就包括自动内存管理机制。在c++中,对于new分配的内存最终都需要使用对应的delete进行释放。而对于Java来说,Java虚拟机的自动内存管理机制在内存管理方面帮我们
尘语凡心
·
2019-11-04 12:01
深入理解java
虚拟机学习
笔记(二) jvm垃圾收集器和内存分配策略
1.垃圾如何确认对于大多数语言中判断对象是否存活会采用引用计数法:给对象添加一个引用计数器,当有一个地方引用时,计数器就加1,当引用失效时,计数器就减1。任何时刻只要计数器为0则回收。但是这种算法无法解决对象之间互相循环引用的问题。如A引用B,而B又引用A,计数器永远不为0,这两个对象再也无任何引用。这样GC不能回收这两个对象。因此,在JAVA中,采用了可达性分析算法来解决这个问题,判断对象是否存
冬天里的懒喵
·
2019-11-04 00:57
VMware与Centos系统安装
目录1.下载centos系统ISO镜像2.安装VMware虚拟机3.为什么要通过VM
虚拟机学习
Linux?
626
·
2019-10-20 19:00
VMware与Centos系统安装
目录1.下载centos系统ISO镜像2.安装VMware虚拟机3.为什么要通过VM
虚拟机学习
Linux?
626
·
2019-10-20 19:00
Java -
虚拟机学习
笔记1 自动内存管理机制
在学习Java的时候,我们通常会将其与c++进行对比,Java在c++的基础上作了许多改进,摒弃了c++中很多很少使用、难以理解的且容易混淆的特性,例如头文件、指针、运算符重载、多继承等等。Java与c++相比有很多不同之处,其中就包括自动内存管理机制。在c++中,对于new分配的内存最终都需要使用对应的delete进行释放。而对于Java来说,Java虚拟机的自动内存管理机制在内存管理方面帮我们
HelloWorld搬运工
·
2019-10-10 09:19
深入理解JVM
Java -
虚拟机学习
笔记2 类加载机制
一、Class类文件二、类加载机制三、类加载器四、类的初始化五、总结一、Class类文件Sun公司于1995年5月正式推出Java语言,如今Java已经得到广泛的认可和使用,Java得以欢迎的重要原因是它实现了“一次编写,到处运行”的理想。构成平台无关性的基础是虚拟机和字节码。字节码是一种虚拟的机器指令代码,不针对特定的机器,Java虚拟机是执行Java程序的软件平台,负责将字节码解释成本地机器指
HelloWorld搬运工
·
2019-10-09 11:40
Java基础
java虚拟机笔记-1
java
虚拟机学习
笔记Java技术的核心就是Java虚拟机,因为所有的Java程序都在虚拟机上运行。Java程序的运行需要Java虚拟机、JavaAPI和JavaClass文件的配合。
Durian_yang
·
2019-10-06 00:00
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他