自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 【JVM-01】JVM位置及内存结构

目录JVM位置JVM内存结构JVM位置JVM运行在操作系统之上JVM内存结构

2020-09-17 02:05:01 124

原创 Young Collection的跨代引用

新生代垃圾回收的过程:首先要找到根对象 然后对根对象进行可达性分析,找到存活对象 对存活对象进行复制,复制到幸存区产生问题:找到新生代对象的根对象,根对象有一部分是来自老年代的,而老年代存活的对象一般都特别多,如果去遍历整个老年代,效率非常低。应对措施:采用了cart table的方式,对老年代进行细分,分成了许多个card,每个card大约是512K。如果老年代某个对象,引用了新生代的对象,我们把这个老年代的对象标记为脏card。这样,找老年代的根对象时,就不用遍历整个老年代了,...

2020-07-01 15:19:42 577 2

原创 Full GC

SerialGC新生代内存不足发生的垃圾收集 – minor gc 老年代内存不足发生的垃圾收集 –Full GCParallelGC新生代内存不足发生的垃圾收集是 minor GC 老年代内存不足发生的垃圾收集是Full GCCMS新生代内存不足发生的垃圾收集是 minor GC 老年代内存不足,并发收集失败时会Full GC,可以看gc日志,打印出了full gc字样,才是Full GCG1新生代内存不足发生的垃圾收集是 minor GC 老年代内存不足,当老年..

2020-07-01 15:08:55 230

原创 G1垃圾回收器

适用场景:同时注意吞吐量和低延迟 默认的暂停目标是200ms , 适合超大堆内存,会将堆划分为多个大小相等的区域特点:整体上是标记+整理算法,两个区域之间是复制算法垃圾回收阶段:Young Collection新生代的垃圾收集 Young Collection + Concurrent Mark(新生代垃圾回收+并发标记) Mixed Collection 混合收集Young Collection新生代的垃圾收集:① 如下图1-1,G1垃圾回收器把...

2020-06-30 17:28:07 202

原创 垃圾回收器

分类:串行 吞吐量优先 响应时间优先详细介绍:1.串行单线程 堆内存较小,适合个人电脑 开启串行垃圾回收器的jvm参数:-XX:+UseSerialGC = Serial(新生代复制算法) + SerialOld(老年代标记整理算法) 注:在一个进程进行垃圾回收时,要在一个安全点阻塞其他进程,进行一次stop the world,因为对象回收时,会涉及到对象移动,引用的地址会改变。2.吞吐量优...

2020-06-29 17:32:41 148

原创 分代垃圾回收过程

堆内存初始状态,开辟出新生代和老年代,新生代分为伊甸园区和幸存者区,内存比例为8:1,幸存者区一分为二,划分成幸存者FROM区和幸存者TO区对象首先分配在伊甸园区继续存放新对象当发现新生代空间不足时,触发Minor GC,经过标记清除,伊甸园区的垃圾被回收,存活下来的存入幸存者TO区交换FROM和TO的指针继续产生新对象,存入伊甸园区伊甸园内存不够,进行第二次Minor GC,清除伊甸园和FROM区的垃圾,并且将伊甸园区和FROM区不是垃圾的对象移动到幸...

2020-06-29 17:05:49 653

原创 垃圾回收算法

标记清除先判断可以回收的对象,并标记 再对标记的对象,进行回收,释放空间。 -------(释放空间只需要将对象所占用内存的起始和结束地址记录下来,放到空闲地址列表里就可以了) -------(再分配新对象的时候,在空闲地址列表里找一块足够的空间) 优点:速度快 缺点:产生内存碎片标记整理先判断可以回收的对象,并标记 一边释放空间,一边将未回收的对象内存空间,向前移动,让内存更加紧凑优点:没有内存碎片 缺点:效率低,需要移动的时间。并且在整理过后,如果一些局部变量引用了改.

2020-06-24 15:30:18 121

原创 五种引用

强引用 被GC Root直接引用的对象 只有所有GCRoot断开引用后,才能被回收 软引用 被GCRoot间接引用的对象 在不被任何一个GC Root直接引用后,当一次垃圾回收后,内存仍然不足时,回收软引用对象 弱引用 被GCRoot间接引用的对象 在不被任何一个GC Root直接引用后,当发生垃圾回收,不管空间够不够 都会回收弱引用对象 虚引用 被GCRoot间接引用的对象 必须配合引用队列使用 终...

2020-06-24 14:18:06 345

原创 垃圾回收的判断

1.如何判断一个对象可以被回收引用计数法:一个对象被其他变量引用,则计数+1,每被多引用一次,计数就+1,如果某个变量不再引用这个对象,则计数-1,如果计数为0,则可以回收。 存在弊端:循环引用。即如下图,A引用B,B引用A,但没有其他变量引用,A和B的引用计数都为1,不能被回收。 可达性分析算法:首先要确定一系列根对象GC Root(肯定不能被当成垃圾的对象)。 在垃圾回收之前,对堆内存中的所有对象进行扫描,观察每个对象是否被根对象直接或间接的引用,如果是,则不能被回收..

2020-06-24 14:11:32 250

原创 java数据结构之环形单向链表

代码实现:1.先定义一个节点实体类class Boy{ private int no;//节点编号 private Boy next;//next指向 public Boy(int no) { this.no=no; } public int getNo() { return no; } public void setNo(int no) { this.no...

2020-03-26 16:43:51 184

原创 JVMz之栈的演示分析

什么是虚拟机栈栈是一种先进后出的数据存储结构,而虚拟机栈则是线程运行需要的内存空间。每个栈由多个栈帧构成,一次栈帧代表一次方法的调用。public class stacks {public static void main(String[] args) { aa();}private static void aa() { bb(1,2); bb(2,3)...

2020-03-19 09:39:52 205

原创 java数据结构之linkedList

地址 data域 next域 110 A2 130 120 A4 140 130 A3 120 140 A5 NULL 150 A1 110 特点:链表以节点的方式来存储,是链式存储结构,但在屋里内存中不一定是连续的地址,是通过逻辑指针实现的连续链表。 每个节点包含data域(存储数据)和next...

2020-03-18 16:26:48 154

原创 JVM之PC寄存器

什么是PC寄存器?PC寄存器本质上像一个指针,指着一个命令行运行结束,下一个该执行PC的命令行。PC寄存器的特点线程私有 内存占用小,不会溢出,不存在垃圾回收器 如果是native方法,寄存器为空...

2020-03-18 10:40:07 247

原创 抽象类和接口

接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制抽象类意义:提供一个模板,让子类来实现特点:abstract来表示一个类是抽象类 有抽象方法的类只能是抽象类,但抽象类里不一定有抽象方法 抽象类里可以有普通方法 抽象类不能被实例化,只能通过它的子类调用 抽象类里可以包含属性,方法和构造器,但是构造器只能被子类调用,不能由外部...

2019-09-12 17:17:40 122

转载 Java包装类存在的必要

为什么存在这两种类型呢?Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在栈中,因此更加高效。有了基本类型为什么还要有包装类型呢?Ja...

2019-09-12 12:17:33 427

原创 Final

public class FinalTest { public static void main(String[] args) { String sex = "男"; sex = "女"; final String name = "周杰倫"; name = "王力宏";//这里会报错Cannot assign a value...

2019-09-12 12:09:10 173

原创 继承笔试题

1.属性和方法多态public class Fu { public int num = 10; public Fu() { System.out.println("fu"); } public void run(){ System.out.println("A.run..."); }}public class ...

2019-09-12 11:58:05 344

原创 单例模式

目录一、为什么要使用单例模式二、单例的实现方式1.饿汉式2.懒汉式3.加锁懒汉式4.双重检查锁一、为什么要使用单例模式 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统只能有一个窗口管理器或文件系统;如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则...

2019-09-12 10:29:24 112

原创 位运算

Java位运算是针对于整型(byte、char、short、int、long)数据类型的二进制进行的移位操作。一. 右移右移1位相当于原数字除以2运算 int a = 20; int num = a>>1; System.out.println("num="+num);运行结果:运算过程:①把十进制20转化成二进制数1010...

2019-08-08 10:01:13 280

原创 【订单编号】限8字符,多余用省略号表示。鼠标指向是tips显示全部编号

解决方案:SQL查出orderName(订单编号)字段 JSP截取字段前八位 td 加上title 参考代码: <table border="1" width = "100%" height = "50"> <thead> <tr> ...

2019-05-28 09:36:19 305

原创 Eclipse从SVN检出maven项目

1.点击file2.点击从SVN检出项目3.使用现有的资源库位置4.选中文件夹5.作为工作空间中的项目检出6.继续7.删除项目8.不勾选9.重新从已存在的maven导入10.选择文件Finish就OK了...

2019-04-22 13:51:26 664

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除