- 博客(14)
- 收藏
- 关注
原创 Array、ArrayList、LinkList有什么区别
数组长度大小固定,内存连续,需要在使用的时候初始化容量大小,超出容量会报错:访问速度快,查找效率高:尾部以外删除添加元素开销较大,需要移动后面的元素:适合已知初始容量大小、高频访问、对性能要求较高场景。
2025-03-19 14:50:24
287
原创 java的四种引用,强软弱虚
最弱的一种引用,无法通过虚引用获取对象实例,需要配合ReferenceQueue使用,在垃圾回收后才会放入ReferenceQueue。:需要垃圾回收的清理工作,通过ReferenceQueue可以得知何时某个对象被回收。只要垃圾回收器发现就会回收,只存活到下一次垃圾回收,无论jvm内存是否充足。强引用就是我们最常用的引用方法,即使发生oom也不会被垃圾回收。:用于一些临时不必要的数据,如临时数据,监听列表等。:适用于缓存数据,如图片缓存,大型对象等。在jvm内存不足的时候才会被垃圾回收。
2025-03-03 09:51:55
258
原创 HashMap的底层实现原理是什么?JDK 1.8之后有什么优化?
其核心思想是:当多个键(Key)经过哈希函数计算后得到相同的哈希值(即落在同一个“桶”中)时,将这些键值对以链表形式存储在同一个桶内。:当链表长度超过阈值(默认 8)且数组长度 ≥ 64 时,链表转换为红黑树,以降低查询时间复杂度(从 O(n) 优化为 O(log n))哈希冲突时,会将冲突的key-value放入一个桶内,同一桶内元素以链表形式存在(拉链法)判断元素是否需要移动到新位置(原索引 + oldCap),避免重新计算哈希值。:数组大小翻倍(2^n),并重新计算所有元素的位置(rehash)。
2025-03-02 17:25:46
291
原创 String、StringBuilder、StringBuffer的区别
所以无需修改的字符串使用String,需要频繁修改的时候使用StringBuilder,要保证线程安全使用StringBuffer,StringBuilder效率高于StringBuffer,所以不需要线程安全时候推荐使用StringBuilder。:使用普通字符数组无final修饰,可以直接修改对象,无需创建新对象,不过线程不安全。:底层使用final修饰,定义后就无法修改,每次修改都会新建一个对象。:同StringBuilder,额外加入了同步锁保证了线程安全。
2025-03-02 17:24:07
119
原创 设计模式-单例模式
单例模式保证某个类在程序中只存在一份实例,而不会创建多个,这样可以提高效率等。在单例模式中一般只提供一个getInstance()方法来获取实例对象,不提供setInstance方法,避免再实例化出其他对象
2024-09-12 11:18:59
413
原创 Spring框架--- 容器补充、注解开发定义bean
BeanFactor实时Ioc容器的顶层接口(最早的接口,现在已被淘汰)初始化BeanFactor对象的时候延迟加载(不会立即加载类)ApplicationContext接口时是Spring容器的核心接口,初始化时bean立即被加载,会直接调用无参构造方法ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能(查看继承接口快捷键ctrl+h)ApplicationContext接口常用初始化类ClassPathXmlApplicationContext
2022-05-27 22:55:38
125
原创 Spring框架---数据源对象管理 及加载properties文件
为什么需要使用连接池: Java程序操作数据库,必须获得一个连接Connection实际操作中,我们要先获得连接,使用完 成后还有关闭连接。这两个操作都比较耗时 思考:那有没有什么比较方便不耗时的方法呢?当我们要用的时候只需要调用一下就ok,用完了 再还回去。这样岂不是免去了【获得、关闭连接】节省了很多时间?那应该怎么实现呢? 答疑:连接池,就是用于解决这一问题而被需要的。连接池,将我们所需要的连接,放入池子 里,形成公共连接。且该池子中...
2022-05-22 23:08:24
262
原创 Spring框架--- di注入带参数
1.setter注入2.构造器注入3.自动装配4.集合注入1.setter注入设置静态变量通过setter注入通过value传入参数2.构造器注入方法一:方法二:通过配置type属性来String int等来匹配一个构造器中的形参,因此当存在多个相同类型比如两个String时就会错误方法三:通过配置index 来将特定的value值按照顺序传给构造器中的形参3.自动装配4.集合注入(setter方法)..
2022-05-22 22:47:37
191
原创 Spring框架---bean生命周期
生命周期:从创建到消亡的完整过程bean生命周期:bean从创建到销毁的整体过程bean生命周期控制:在bean创建后到销毁做的一些事情在BookDaoImpl中写入以下函数配置文件中配置init-method 和destroy-method使用接口来实现初始化和销毁...
2022-05-20 23:36:32
167
原创 spring框架---第一节Ioc和DI(注入)
1.Spring简介 1.1Spring是什么 Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IoC(InverseOfControl:反转 控制)和AOP(AspectOriented Programming:面向切面编程)为内核。提供了展现 层SpringMVC和持久层SpringJDBCTemplate以及业务层事务管理等众多的企业级应用技 术,还能整合开源世界众多著名的第三方框架和类库,逐...
2022-05-20 23:21:39
174
原创 JavaScript学习之路------第二节:js初试及变量的介绍
js的hello world打印和js变量的介绍2.document.write(内容);这句代码可以帮助我们把"内容"显示在页面文档内!除此之外我们在内容内写入完整的标签,也是可以在页面上展示效果的。注意:1)document.write("<br/>"); 会在页面文档上显示换行效果!2)var num = 3; docume..
2022-02-22 21:23:10
428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人