- 博客(10)
- 收藏
- 关注
原创 Java单例对象设计模式的四种实现方式
以上是四种实现单例设计模式的方式,但是请注意这四种方式他们并不能够防止反射,通过反射加载他们的类信息,然后通过类信息拿到私有的构造函数,再将私有构造函数访问权限设置为公开同样能够通过构造函数去创建新的实例对象。//私有化构造函数//静态内部类//在使用静态内部类的时候,静态内部类才会被加载//好处:节省性能开销//在静态内部类中创建对象实例//同样在静态内部类被加载的时候才会调用//获取实例的公共方法//获取Singleton类的信息//获取它的无参构造函数。
2025-08-14 13:08:58
357
原创 Spring Bean 生命周期详解:从创建到销毁的完整旅程
Spring容器在进行初始化时,会将xml配置的的信息封装成一个BeanDefinition对象,所有的 BeanDefinition存储到一个名为beanDefinitionMap的Map集合中去,Spring框架在对该Map进行遍 历,使用反射创建Bean实例对象,创建好的Bean对象存储在一个名为singletonObjects的Map集合中,当调用 getBean方法 时则最终从该Map集合中取出Bean实例对象返回。比如我有一个Person类,属性有一个name,然后我在xml中注册该对象。
2025-08-06 22:58:39
1249
4
原创 MyBatis的运行原理
实际上是先创建一个叫StatementHandler的对象,这个对象是负责创建PrepareStatement对象,然后StatementHandler对象的增删改查的操作用的都是PrepareStatement对象的增删改查。编写对应的实体类,在上面<select>标签中的resultType属性的值就是实体类的类型,也就是MyBatis给我们进行自动映射的类型。那因为我们用的时候只需要去开启会话然后执行我们想要执行的方法,也就是具体的sql语句,那在底层就做了这一套逻辑。比如事务管理等等信息。
2025-07-26 16:24:45
989
3
原创 MyBatis的使用方法
/获取到映射器接口的代理对象//调用接口中的差全表的方法//这个方法实际上执行的就是xml文件中的select标签下的那条sql语句//将查询到的结果返回到List<People>集合中//打印出来//结束之后记得关闭资源。
2025-07-26 08:32:32
579
原创 什么是JDBC
JDBC(Java Database Connectivity)是一种用于执行 SQL 语句的 Java API,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种标准的方法,使 Java 程序能够与各种不同的数据库进行通信,从而实现数据库的连接、查询、更新等操作。
2025-07-25 22:23:50
391
1
原创 StringBuilder类的数据结构和扩容方式解读
而AbstractStringBuilder的数据结构是一个没有被final关键字所定义的char类型的数组,被final关键字定义的引用类型不允许重新分配内存空间,但是这里没有被final所定义,因此是可以重新分配内存空间的,也就是在原来的字符串内容上进行修改,不会像String那样一个方法返回一个新的对象。总结一下扩容的过程,首先判断原本的容量是否足够容纳新添加的内容的容量,如果不够进行扩容,新扩容的容量为原本容量的2倍+2,如果这个容量任然小于需求容量,那么将直接扩容至需求的容量。
2025-03-02 21:44:40
480
原创 关于toString()方法的重写
而在java中,所有的类默认继承自Object类,因此所有的类都具有toString()方法,只不过这个toString()方法返回的就是【类名+@+16进制的哈希值】,那在我们了解了java的继承关系方面的知识之后,我们就可以知道,可以看到,当我们传入一个对象时,这个对象首先发生向上转型,不管你是什么类型的,先用Object类型的引用去指向这个对象,之后通过String.valueOf()方法,将该对象变成字符串,再看一眼valueOf()方法的源码。那么这样就可以打印出我们想要的水果属性的全部信息了。
2025-02-28 12:13:56
234
原创 关于Java中String为什么是不可变的
在Java中我们知道,所有的基本类型都是在栈内存中存放,而所有的引用类型都是在堆内存中存放,而所有的引用类型其实本质上都是一个类,而String是引用类型,因此它本质上来说也是一个类,所有当我们阅读String类定义的源码的时候,我们就能看到,字符串类型的数据结构在本质上其实就是在字符数组中存放的一个一个字符,而且这个数组又是被final关键字定义的,final关键字是用来定义常量的,也就是不可以变的值,因此从本质上来说String是不可变的。
2025-01-26 20:02:10
631
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人