自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM10_引用计数法、GCROOT、Finalization机制、复制、标记清除、标记压缩算法、分代收集、增量收集、分区算法

引用计数法、GCROOT、Finalization机制、复制、标记清除、标记压缩算法、分代收集、增量收集、分区算法

2020-08-31 10:15:56 2641 1

原创 VUE01_基本使用、插值表达式、指令、事件绑定、分支循环结构

①. vue入门概述1>.vue入门概述①. vue的概述 ①. Vue:渐进式JavaSctipt框架 ②. https://cn.vuejs.org/v2/guide/②. vue入门案列讲解:③. 代码展示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content

2020-08-28 15:07:00 474

原创 JVM09_执行引擎概述、机器码|指令|汇编语言、解释器、Jlt编译器及分类、AOT编译器

前言:(1).new 最常见的方式 | 变形1 : Xxx的静态方法 | 变形2 : XxBuilder/XxoxFactory的静态方法(2).Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public(3).Constructor的newInstance(Xxx):反射的方式,可以调用空参、带参的构造器,权限没有要求(4).使用clone() :不调用任何构造器,当前类需要实现Cloneable接口,实现clone()(5).使用反序列化:从文件中、从.

2020-08-25 09:36:53 1692 1

原创 JVM08_字符串常量池基本特性、内存分配、拼接操作、intern、StringTable垃圾回收

①. 方法区的概述1>. 方法区的概述①. 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的 | 关闭Jvm就会释放这个区域的内存②. 方法区时逻辑上是堆的一个组成部分,但是在不同虚拟机里头实现是不一样的,最典型的就是永久代(PermGen space)和元空间(Metaspace)(注意:方法区时一种规范,而永久代和元空间是它的一种实现方式)③. 方法区的大小决定了系统可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同

2020-08-21 10:37:06 1940 4

原创 JVM07_ 对象的实例化、内存布局(对象头、实例数据、对齐填充)、访问定位、直接内存

①. 堆的概述1>. 堆的概述(共享|垃圾回收)①. 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域②. Java堆区在JVM启动的时候即被创建,其空间大小也是确定的。是Jvm管理最大的一块内存空间③. 堆可以在物理上不连续的内存空间中,但在逻辑上是连续的④. 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)⑤. 在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的

2020-08-19 14:28:22 2205 4

原创 JVM06_方法区的概述、内部结构、演变、常量池、运行时常量池、垃圾回收

①. 什么是JVM?1.什么是JVM?①. JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机②. jvm是运行在操作系统之上的,与硬件没有任何关系②. Java的跨平台及原理2.Java的跨平台及原理①. 跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行②. 原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)③. JVM的分类3.JVM的分类①. 类加载子系统

2020-08-19 11:27:54 4683 6

原创 JVM05_堆的概述、内存结构、复制算法、Minor|Major|Full GC、私有区域TLAB、对象分配、参数总结、逃逸分析、栈上分配、锁消除、标量替换

前言:(栈并不是越大越好,越多可以防止出现StackOverflowError晚点出现,但是栈越大,也就代表着虚拟机栈是一定的,你的栈越大,别的栈就会小)①. 什么是 Java virtual machine?①. 栈的概述每创建一个线程就会创建一个Java栈,每一个Java栈中都会有很多栈帧(局部变量表 | 操作数栈 | 动态链接 | 方法返回地址 | 一些附加信息) 掌握解释:(1). 虚拟机栈(Java Virtual Machine Stacks)和线程是紧密联系的,每创建一.

2020-08-19 11:20:45 3415

原创 JVM04_虚拟机栈概述、局部变量表、操作数栈、动态链接、方法的返回地址、附加信息

①. 程序计数器①. 作用,是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令②. 特点:①. 是线程私有的 ②. 不会存在内存溢出③. 注意:在物理上实现程序计数器是在寄存器实现的,整个cpu中最快的一个执行单元④. 它是唯一一个在java虚拟机规范中没有OOM的区域解释:⑤. 使用PC寄存器存储字节码指令地址有什么用呢?为什么使用PC寄存器记录当前线程的执行地址呢?⑥. PC寄存器为什么设定为线程私有?(为了能够准确

2020-08-19 11:15:04 3781 5

原创 JVM03_程序计数器的作用、特点、线程私有、本地方法的概述

①. 类的加载(掌握)①. 简述类的加载过程(掌握)当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载、类的链接、类的初始化这三个步骤来对类进行初始化。 如果不出现意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者初始化②. 什么是类的加载(Loading)类的加载指的是将类的.class文件中的二进制数据读取到内存中,存放在运行时数据区的方法区中,并创建一个大的Java.lang.Class对象,用来封装方法区内的数据结构③. 链接(Li

2020-08-19 11:05:31 3910

原创 JVM02_类加载器子系统(生命周期、加载、链接、初始化、类加载器概述、分类、ClassLoader源码分析、双亲委派机制)

①. System.gc()的理解①. 在默认情况下,通过System.gc( )或者Runtime . getRuntime( ).gc( )的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。②. 然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用(无法保证马上触发GC)。[不保证一定会发生垃圾收集,只是给jvm发出提示]③. JVM实现者可以通过system.gc( )调用来决定JVM的GC行为。而一般情况下,垃圾回收

2020-08-18 16:42:25 5273

原创 JVM01_概述、跨平台原理、分类、三大商业虚拟机

前言:判断对象存活的两种方式(引用计数算法、枚举根节点做可达性分析)①. 引用计数法①. 原理:假设有一个对象A,任何一个对象对A的引用,那么对象A的引用计数器+1,当引用失败时,对象A的引用计数器就-1,如果对象A的计数器的值为0,就说明对象A没有引用了,可以被回收②. 最大的缺陷:无法解决循环引用的问题,gc永远都清除不了(这也是引用计数法被淘汰的原因)③. 代码展示:/** * -XX:+PrintGCDetails * 证明:java使用的不是引用计数算法 */.

2020-08-18 11:11:05 5771 2

空空如也

空空如也

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

TA关注的人

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