JAVA 线程安全 非线程安全

本文主要介绍了Java中的线程安全与非线程安全概念,包括线程安全与非线程安全的定义和示例。文章讨论了collection的知识点,如ArrayList、LinkedList、Vector的区别,以及HashSet、LinkedHashSet、TreeSet的异同。同时,解释了单例模式的不同实现,如饿汉式、静态内部类和枚举。文章还探讨了Spring中bean默认的单例设计及其优缺点,以及线程安全的单例模式实现,如双重检查锁定。最后提到了StringBuilder和StringBuffer的线程安全性差异。
摘要由CSDN通过智能技术生成

前段时间写了一个多线程,具体的功能的就是同一个请求对象去做远程调用获取数据,单线程顺序执行没有任何问题,在多线程状况下,直接执行报错,然后想到了前辈说的由于框架中使用的单例比较多,是非线程安全的 -- (当时就有一个疑问,单例模式不是线程安全的么???),使用单例的好处也是显而易见的。在此整理下那些事线程安全的,那些是非线程安全的

 为初学者而著!

Java基础是初学者的起点,是帮助你从小白入门到精通必学基础课程!

B站最新录制Java300集>>>   适合准备入行开发的零基础员学习Java,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。

配套学习:​2022年Java300集最新录制课程上线了>>>​ 

线程安全 非线程安全

非线程安全是指多线程操作同一个对象时,可能会出现某些异常问题;而线程安全时多个线程操作同一个对象不会出现问题。

非线程安全 =!不安全,只要在多线程情况下,不操作同一个对象,使用非线程安全是不会出现问题的。

线程安全的与非线程安全的整理汇总

collection 知识点

collection 的类继承

Arraylist 、linkedList 和 vector 区别

Arraylist 是动态数组,是Array的复杂版本,当更多元素加入到ArrayList中时,会动态增长,扩容的倍数为原来的1.5倍本质是一个数组。

LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比。它还实现了 Queue 接口,该接口比List提供了更多的方法,包括 offer(),peek(),poll()等

Vector 和ArrayList类似, 区别在于Vector是同步类(synchronized).因此,开销就比ArrayList要大。

HashSet 、LinkedHashSet 和 treeSet 异同

HashSet继承AbstractSet类,实现Set、Cloneable、Seriali

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值