
java
文章平均质量分 85
GzlAndy
秋后的蚂蚱,越蹦越欢~
展开
-
基于JDK17的GC调优策略
参考资料:JDK工具官网文档JDK17 java指令官网文档JDK8java指令官网文档1 JVM有哪些参数可以调1.1 标准参数以开头所有HotSpot都支持使用javahelp或者java查看常用的标准参数listmodules查看当前Java进程中的模块showmoduleresolution查看当前Java进程中各个模块的依赖关系verboseclass显示类加载信息。原创 2025-02-23 19:57:32 · 293 阅读 · 0 评论 -
jdk17新特性
2.4.4 exports和open声明对外的API。2.3 密封类 Sealed Class。2.4 模块化Module System。2.2 隐藏类Hidden Class。module-info.java⽂件。module-info.java⽂件。module-info.java⽂件。不需要依赖jdk也可以执行的可执行。2.4.5 uses服务开放机制。1.2 switch表达式增强。2.4.6 构建模块化jar包。1.4 var局部变量推导。2.1 记录类record。2.4.1 什么是模块化。原创 2025-02-22 15:44:32 · 993 阅读 · 0 评论 -
jdk9新特性
1。原创 2025-02-12 19:00:41 · 605 阅读 · 0 评论 -
jdk8新特性
1 lambda表达式lambda本质上是一段匿名内部类也可以是一段可传递的代码完整的lambda由三部分组成:参数列表,箭头,声明语句完整语法大部分场景下,参数类型可以根据上下文环境推断出来,因此参数类型可以省略当只有一个参数时小括号可以省略当执行语句只有一行代码时,可以省略花括号,return和语句结尾的分号1.1 类型推断根据上下文信息推断出参数类型,而不需要显式声明1.2 局部变量限制lambda表达式执行代码块中可以直接使用外部变量。原创 2025-02-09 19:28:45 · 892 阅读 · 0 评论 -
java常量池
方法时,在字符串常量池分配内存,内存值指向str对象。方法返回字符串常量池引用,与str引用不同。3.1 为什么要设计字符串常量池。方法返回引用和str是同一个引用。方法返回的引用与str引用一致。因为test通过形参传入,会。3.2 创建字符串对象的。3.4 字符串的不可变性。3.3 字符串的+操作。1 Class常量池。原创 2025-01-23 18:21:54 · 536 阅读 · 0 评论 -
jvm调优工具
1。原创 2025-01-16 19:42:01 · 917 阅读 · 0 评论 -
JVM对象内存分配
大小占比幸存区超过50%之后。young gc之后,当。内某一批(gc年龄1~n。,将gc年龄>=n的对象。4 老年代空间担保机制。或者标量替换任何一个。原创 2025-01-01 18:18:58 · 1055 阅读 · 0 评论 -
JVM对象内存结构
jvm中数组长度存储为4字节,则数组最大长度为Integer的最大值。对于不同状态(无锁态,轻量级锁,重量级锁,GC标记,偏向锁)的对象。哈希码(HashCode)、GC分代年龄、锁状态标志。64位操作系统中占8字节,开启指针压缩时占4字节。分析自定义类App对象大小。32位操作系统中占4字节。分析Object对象大小。通过jol计算对象大小。分析int[]对象大小。jvm对象中属性为基础。表明对象属于哪个类型。原创 2025-01-01 12:24:46 · 412 阅读 · 0 评论 -
JVM对象创建过程
划分内存通常有两种方式,指针碰撞和空闲列表。以及每个属性什么类型的数据已经。如何解决内存分配时的并发问题?空间(也是从伊甸区分配),首先通过指令参数从常量池。5 执行init()方法。,有一个指针指向分界线。原创 2024-12-31 21:20:50 · 566 阅读 · 0 评论 -
Java类加载
java类加载器详解以及如何控制扩展类加载器原创 2024-12-29 09:33:15 · 533 阅读 · 0 评论 -
类加载机制
类加载机制1 双亲委派机制机制核心是向上委派加载一个类时,首先会通过类的全限定名判断类是否已经被加载,被加载时,直接返回,未被加载时,委托给父类加载器去加载,重复相同的流程直至启动类加载器,如果父类加载器所负责的加载路径中加载不到该类,则当前类加载器在自己的加载路径找该类。局限性无法做到不委派,或者向下委派打破双亲委派不委派向下委派(SPI机制中的一部分)实现打破双亲委派的方式1)自定义类加载器重写sun.applet.AppletClassLoad原创 2020-12-25 21:14:25 · 184 阅读 · 0 评论 -
类加载器
类加载器1 启动类加载器(BootStrapClassLoader)没有实体,将c++写的一段逻辑定义为启动类加载器加载路径启动类加载器加载路径为:JAVA_HOME\jre\lib*.jar;JAVA_HOME\jre\class*;查看启动类加载器加载路径:#系统属性System.getProperty("sun.boot.class.path");#apiLauncher.getBootstrapClassPath().getURLs();原创 2020-12-25 21:12:37 · 140 阅读 · 0 评论 -
类的生命周期
类的生命周期1 加载加载阶段做的三件事1)通过类的全限定名获取类class文件的二进制流2)解析成运行时数据,即InstanceKlass实例,存放在方法区3)在堆区生成该类的Class对象,即InstanceMirrorKlass实例类的二进制流从哪获取1)classpath参数指定的路径中2)压缩包3)网络jvm加载类时懒加载模式,使用的时候才会加载常用的类会采用预加载模式。预加载的类:包装类、String、Thread2 验证1)文件格式验证验证字节流是否符合Class文件格原创 2020-12-18 21:10:19 · 280 阅读 · 1 评论 -
JAVA8新特性
JAVA8新特性1 函数式接口用@FunctionalInterface修饰的接口叫做函数式接口 ,或者,函数式接口就是一个只具有一个抽象方法的普通接口,@FunctionalInterface可以起到校验的作用,如果加了**@FunctionalInterface**注解的接口有两个或者两个以上的抽象方法,编译时报错。在JDK7中其实就已经有一些函数式接口了,比如Runnable、Call...原创 2020-03-13 16:56:51 · 340 阅读 · 0 评论