- 博客(8)
- 收藏
- 关注
原创 Java虚拟机(JVM) 06.Java中自带的检测内存状态的DOS命令和可视化检测内存工具
怎么看运行程序的情况。1.在DOS界面输入命令查看java内存中的情况 2.可视化工具,查看java中的内存情况DOS中的命令:01.jinfo:02.jstat:03.jmap:可视化工具:jconsole:...
2020-01-21 14:18:56 215
原创 Java编程语言 02 类和对象
Java类中有属性和方法两种代码块,因为数据的安全性,数据区也就是实例区全部封装。访问,修改实例域都是特定的函数,getXXX(),setXXX()。所以属性(实例域)都是private修饰。只有类的对象才可以访问。方法 :一般是用public调用。方法的参数有显式和隐式之分,显示就是那些需要输入的参数,隐式就是对象本身,在方法中如果需要使用到对象本身的实例域(属性),使用this.XX...
2020-01-21 14:16:53 95
原创 Java虚拟机 (JVM)05 Java的各种实施垃圾回收器
01.serial 单线程工作,使用的标记清除算法,垃圾回收线程工作的时候,需要暂停全部的工作线程,单独运行serial来清洗工作线程。工作的主要区域是在新生代。02.pernew 多线程工作,这里说的是可以多个pernew线程同一时间段工作。但是和工作线程还是先要暂停。03.CMS 多标记工作,一.预先标记,找出GC Roots上的对象(直接关联对象) 二.根据GC Roots上找到的对...
2020-01-17 09:21:48 104
原创 Java虚拟机(JVM)04 When and How to do 垃圾回收 算法
用标记计数法和可达性探测法对堆中的对象进行标记后,怎么去回收垃圾对象以及何时去回收呢?这用到了几种算法:标记–清除法:就是将之前标记完成的对象进行简单的删除操作,这样会产生不整齐的内存。标记–复制法:先将Java堆的内存区域分成两个部分,其中一个用来存放Java对象,另一个是空的。当进行垃圾回收的时候,在有存放的地方先将标记的对象清除,没有清除的对象进行复制,转移到另一半空内存中。垃圾回收工...
2020-01-16 21:35:32 107
原创 Java虚拟机(JVM) 03 java对象的回收 which object is the garbage?算法
Java对象信息是存储在Java堆中的,如果不进行对堆中不需要的对象内存进行回收,就是发生堆内存溢出OutOfMemory错误,影响程序运行。所以需要对Java堆中的对象进行识别,什么对象是Garbage。which object is the garbage?这里需要提到Java中的引用,英文是reference。引用(Reference)数据中存储内存地址,程序用到引用的时候,根据其中的数...
2020-01-16 12:29:17 101
原创 java虚拟机(JVM)02 创建对象实例过程
java中使用new 创建一个类的对象实例:1.首先在方法区中的类信息中查找是否有这个类的信息。** 2.如果有继续运行,在java堆中找出相应的一块空闲内存。**这里如果java堆的内存结构是整齐的(上部是已经占用的内存,下部是空闲的内存),用一个指针隔开两种内存。这时只需要把指针向下移动相应的大小即可。 如果java堆的内存不是整齐的,(像是链表)这个时候使用一张java堆内存的空闲表来...
2020-01-14 19:09:42 95
原创 java虚拟机(JVM)01 JVM内存模型
java的内存的模型:图片如果侵权,联系我,删除java的内存分成几个部分:程序计数区,java虚拟栈,本地方法栈,方法区,堆,其中java虚拟栈和堆是大家经常提起的。程序计数区:功能是告诉CPU这个线程下一个需执行的指令的偏移地址。因为java是多线程工作的,所以切换线程的时候需要保留当前线程运行的信息,所以使用程序计算器来实现。java虚拟栈:每次方法的调用,都会创建一个叫做栈帧的事物...
2020-01-13 19:00:32 72
原创 java 编程语言 01
java编程语言java是一个强势语言,记住java是强势语言。有严格的语法,命名的规则。java对变量的命名,以字母开始,后以字母和数字跟随。java对大小写敏感,而且尽量进行英文命名,配合驼峰命名法(就是每个单词的首字母大写)。java是从c语言基础发展起来的,但是有不同,首先是数据类型(从小到大,以字节为单位):byte(1),char(1),short(2),int(4),long(...
2020-01-13 18:40:25 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人