自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vscode中vue项目引入的组件的颜色没区分解决办法

vscode中,vue的组件的代码颜色如何改变

2023-11-17 22:18:45 2010 3

原创 三十五、垃圾回收器

有了虚拟机,就一定需要收集垃圾的机制,这就是Garbage Collection,对应的产品我们称为Garbage Collector。1.1999年随JDK1.3.1一起来的串行方式的Serial GC,它是第一款GC。ParNew垃圾收集器是Serial收集器的u哦线程版本。2.2002年02月26日,Parallel GC和Concurrent Mark Sweap GC跟随JDK1.4.2一起发布。3.Parallel GC在JDK6之后成为HotSpot默认GC。

2023-04-27 11:39:56 606

原创 三十四、java中的引用

在系统GC时,只要发现弱引用,不管系统堆空间使用是否充足,都会回收掉只被弱引用关联的对象。弱引用对象与软引用对象的最大不同就在于,当GC在进行回收时,需要通过算法检查是否回收软引用对象,而对于弱引用对象,GC总时进行回收,弱引用对象更容易、更快被GC回收。9.相对的,软引用、弱引用和虚引用的对象是软可触及的、弱可触及的和虚可触及的,在一定条件下,都是可以被回收的。弱引用和软引用一样,在构造弱引用时,也可以指定一个引用队列,当弱引用对象被回收时,就会加入指定的引用队列,通过这个队列可以跟踪对象的回收情况。

2023-04-06 14:27:46 1917

原创 三十三、垃圾回收的并行与并发

2.并发不是正真意义上的”同时进行“,只是CPU把一个时间段划分成几个时间片段(时间区间),然后再这几个时间区间之间来回切换,由于CPU处理的速度非常快,只要时间间隔处理得当,即可让用户感觉是多个应用程序同时再进行。安全区域是指在一段代码片段中,对象的引用关系不会发生变化,在这个区域中的任何位置开始GC都是安全的。3.当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,我们称之为并行。否则,看似同时发生的事情,其实都是并发执行的。

2023-04-04 17:48:55 583

原创 STW(Stop The World)

1.Stop-the-world,简称STW,指的是GC事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何下你响应,有点像卡死的感觉。这个停顿称为STW。4.哪怕是G1也不能完全避免Stop-the-worl情况发生,只能说垃圾回收器越来越优秀,回收效率越来越高,尽可能地缩暂停时间。2.被STW中断的应用程序线程会再完成GC之后恢复,频繁中断会让用户感觉是网速不块造成卡带,所以我们需要减少STW的发生。3.STW事件和采用哪款GC无关,所有的GC都有这个事件。

2023-04-04 14:57:17 783

原创 三十二、内存溢出(OOM)、内存泄漏(Memory Leak)

(2)代码中创建了大量大对象,并且长时间不能被垃圾收集器收集(存在被引用)对于来版本的Oracle JDK,因为永久代的大小是有限的,并且JVM 对永久代垃圾回收非常不积极,所以当我们不断添加新类型的时候,永久代出现OutOfMemoryError也非常多见,尤其是在运行时存在大量动态类型生成的场合;类似intern字符串缓存占用太多空间,也会导致OOM的问题。单例的声明周期和应用程序是一样长的,所以单例程序中,如果持有对外部对象的引用的话,那么这个外部对象是不能被回收的,则会导致内存泄漏的产生。

2023-04-04 14:27:11 591

原创 三十一、System gc()的理解

3.JVM实现者可以通过System.gc()调用来决定JVM的GC行为。而一般情况下,垃圾回收应该是自动进行的,无须手动触发,否则就太过于麻烦了。在一些特殊情况下,如我们正在编写一个性能基准,我们可以在运行之间调用System.gc()。1.在默认情况下,通过System.gc或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。2.然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用。

2023-04-04 11:10:15 123

原创 三十、java虚拟机垃圾回收

1.垃圾收集,不是Java语言的半生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。2.关于垃圾收集有三个经典问题。1)哪些内存需要回收?2)什么时候回收?3)如何回收?3.垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即时经过如此长时间的发展,Java的垃圾收集机制任然在不断的演进中,不同大小的设备、不同特征的应用场景,对垃圾收集提出了新的挑战,这当然也是面试的热点。1什么是垃圾呢?

2023-04-03 17:49:13 377

原创 二十九、String的不可变性

1.String:字符串,使用一对“”引起来表示//字面量的定义方式2)String 说 = new String(“hello”)’2.String声明为final的,不可被继承。3.String实现了Serialzable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小。4.String在jdk8及以前内部定义了final char[] vaule用于存储字符串数据。jdk9时改为bytr[]。5.String:代表不可变的字符序列。

2023-03-30 11:15:00 1131

原创 二十八、java虚拟机执行引擎

1.执行引擎是Java虚拟机核心的组成部分之一。2.“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是戒指建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎是由软件自行实现的,因此可以不受物理条件制约定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。

2023-03-22 16:55:59 325

原创 二十七、直接内存

6.由于直接内存在Java堆外,因此它的大小不会直接受限于-Xmx指定的最大堆大小,但是系统内存是有限的,Java堆和直接内存的总和依然受限于操作系统能给出的最大内存。1.不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。2)Java的NIO库允许Java程序使用直接内存,用于数据缓冲区。4.通常,访问直接内存的速度会优于Java堆。1)因此处于性能考虑,读写频繁的场合可能会考虑使用直接内存。2.直接内存时在Java堆外的、直接向系统申请的内存区间。

2023-03-22 11:20:29 67

原创 二十六、对象的实例化内存布局与访问定位

1.判断对象对用的类是否加载、链接、初始化。2.为对象分配内存。3.处理并发安全问题。4.初始化分配到的空间。5.设置对象的对象头。6.执行init方法进行初始化。1.虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析、和初始化。(即判断类元信息是否存在)。如果没有,那么在双亲委派模式下,使用当前类加载器以ClassLoader+包名+类名为key进行查找对应的class文件。

2023-03-22 10:24:08 180

原创 二十五、java虚拟机方法区

java虚拟机方法区

2023-03-20 09:28:13 367

原创 二十四、通过逃逸分析看堆空间的对象分配策略

逃逸分析

2023-03-14 09:56:32 188

原创 二十三、堆空间的常用参数设置

堆空间的常用参数设置

2023-03-09 17:55:56 430

原创 二十二、堆空间为每个线程分配的TLAB

虚拟机堆内存TLAB

2023-03-09 14:46:43 166

原创 二十一、Minior GC、MajorGC与Full GC

Minior GC、Major GC、Full GC

2023-03-07 13:41:39 1055

原创 二十、常用调优工具概述与Jprofiler演示

常用调优工具概述与Jprofiler

2023-03-06 16:29:50 600 1

原创 十九、java虚拟机堆

java虚拟机堆概述

2023-03-06 10:59:13 352

原创 十八、本地方法栈的理解

本地方法栈的理解

2023-03-03 11:40:52 331

原创 十七、本地方法接口的理解

本地方法接口

2023-03-03 10:32:07 301

原创 十六、方法返回地址

方法返回地址

2023-03-02 16:18:49 126

原创 十五、方法重写的本质与虚方法表的使用

方法重写的本质、虚方法表的使用

2023-03-02 15:33:50 93

原创 十四、方法的绑定机制:静态绑定与动态绑定

静态方法和动态方法

2023-03-01 10:44:56 381

原创 十三、动态链接的理解与常量池的作用

动态链接的理解与常量池的作用

2023-02-28 17:00:38 92

原创 十二、栈顶缓存技术

栈顶缓存技术

2023-02-28 14:44:48 185

原创 十一、操作数栈的特点(Operand Sstack)

操作数栈的特点

2023-02-28 11:37:41 341

原创 十、静态变量与局部变量的对比

静态变量与局部变量

2023-02-28 10:06:32 184

原创 九、变量槽slot的理解

变量槽Slot的理解

2023-02-27 17:38:35 320

原创 八、字节码中方法内部结构剖析

字节码中方法内部结构剖析

2023-02-27 16:44:30 98

原创 七、虚拟机栈

虚拟机栈

2023-02-24 17:45:27 246

原创 六、程序计数器(PC寄存器)

java虚拟机程序计数器(PC寄存器)

2023-02-24 15:01:30 815

原创 五、运行时数据区内部结构、JVM中的线程

运行时数据区、JVM中的线程

2023-02-24 10:56:15 256

原创 四、类的主动使用与被动使用等

类的主动使用与被动使用

2023-02-23 14:17:45 556

原创 三、双亲委派机制、沙箱安全机制

java虚拟机双亲委派机制和沙箱安全机制

2023-02-23 12:03:54 206

原创 二、Java虚拟机的基本结构

java虚拟机

2023-02-22 16:28:31 434

原创 python自动化测试selenium浏览器驱动webdriver常见方法

python 设置浏览器缩放大小、浏览器的前进和后退、浏览器的刷新、元素的点击、文本内容的清除、输入、鼠标事件、键盘事件、获取断言信息、设置元素等待、多窗口切换、表单切换、

2022-12-01 17:08:04 8278

原创 python自动化测试selenium浏览器操作

python设置浏览器缩放大小,前进和后退,刷新

2022-11-17 15:28:40 1689

原创 pythonUI自动化测试selenium安装使用

python selenium安装使用

2022-11-17 11:54:31 1516

原创 Python中的多线程

python多线程

2022-11-15 16:31:18 309

空空如也

空空如也

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

TA关注的人

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