- 博客(5)
- 收藏
- 关注
原创 Spring的单例模式和设计模式的单例模式
其实还有一种方法,就是将这个变量设为枚举的方式,他是一种极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且。由此可见 前两次获取获取到的是同一个对象,但是后面一次获取获取到的是另一个对象,所以对于同一个id来说,获取到的是同一个对象,但是不同Id获取到的是不同对象,这就是基于id的单例模式。方法,在反序列化时被反射调用,如果定义了这个方法,就返回这个方法的值,如果没有定义,则返回新new出来的对象。
2024-04-01 11:50:34
786
原创 JVM-运行时数据区-概述-程序计数器(pc寄存器)
程序计数器其实就是存储这个线程将要执行的下一个指令的,执行引擎从程序计数器中读取指令,然后执行我们的Java程序。
2024-02-01 22:29:03
842
原创 字符串常量池
String在jdk8及以前内部定义了final char[] value用于存储字符串数据。JDK9时改为byte[]为什么JDK9上会修改这个数据结构,官方说明是:大多数字符串对象只包含Latin-1(ISO-8859-1)的字符。这些字符只需要一个字节的存储空间,因此这些字符串对象的内部字符数组中有一半的空间没有被使用。我们建议将String类的内部表示方法从UTF-16字符数组改为字节数组加编码标志域。新的String类(JDK9及其以后)将根据字符串的内容,
2024-02-01 17:41:21
842
1
原创 JVM-类加载相关
加载阶段-->链接阶段(包含验证、准备、解析三个小阶段)-->初始化阶段类加载器子系统负责从文件系统或者网络中加载Class文件,任何语言只要生成的class文件符合规范,都可以在Java虚拟机上执行,加载的类信息会存放进方法区注意:ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine(执行引擎)决定Java中类加载是使用双亲委派机制进行加载的,我们也可以自定义自己的类加载器,但是一般不会打破双亲委派机制JVM支持两种类型的类加载器。分别为。
2024-02-01 17:40:52
846
1
原创 JVM整体结构
JVM(Java Virtual Machine)即Java虚拟机,是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成,JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回器,以及可靠的即时编译器。
2024-01-24 14:27:58
326
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人