Java
文章平均质量分 64
一条游向寒江的鱼
这个作者很懒,什么都没留下…
展开
-
JUC学习(二)
目录Doug Lea — JUC并发包的作者锁框架Lock和Condition接口可重入锁公平锁与非公平锁读写锁锁降级和锁升级队列同步器AQS底层实现公平锁一定公平吗?Condition实现原理———————————————————————————————在前面,我们了解了多线程的底层运作机制,我们终于知道,原来多线程环境下存在着如此之多的问题。在JDK5之前,我们只能选择synchronized关键字来实现锁,而JDK5之后,由于volatile关键字得到了升级(具体功能就是上一章所描述的),原创 2023-06-04 21:02:09 · 770 阅读 · 1 评论 -
JUC学习(一)
首先我们来分析,由于是同一个线程,并且B是一个赋值操作且读取了A,那么按照程序次序规则,A happens-before B,接着在B之后,马上执行了C,按照线程启动规则,在新的线程启动之前,当前线程之前的所有操作对新的线程是可见的,所以 B happens-before C,最后根据传递性规则,由于A happens-before B,B happens-before C,所以A happens-before C,因此在新的线程中会输出a修改后的结果10。那么它是怎么解决的重排序问题呢?原创 2023-05-22 09:07:41 · 690 阅读 · 2 评论 -
线程池小结
线程池小结原创 2023-02-09 22:42:17 · 363 阅读 · 0 评论 -
JDBC学习
JDBC就是使用Java语言操作关系数据库的一套API全程:Java DataBase Connectivity Java数据库连接原创 2022-08-25 15:50:24 · 773 阅读 · 1 评论 -
java中string为什么不可变
一 什么是不可变对象?不可变对象指对象一旦被创建,状态就不能再改变,任何修改都会创建一个新的对象。二 不可变的原因1.String的主要成员变量char value[]是private final类型的;String被声明为final class,是典型的Immutable类;源码如下public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {...原创 2022-04-30 16:43:05 · 2251 阅读 · 2 评论 -
ArrayList和LinkedList、Vector的区别
ArrayList,LinkedList和Vector都继承自List接口。ArrayList和Vector的底层是动态数组,LinkedList的底层是双向链表.ArrayList和Vector的区别就是ArrayList是线程不安全的,Vector是线程安全的,Vector中的方法都是同步方法(synchronized),所以ArrayList的执行效率要高于Vector,它也是用的最广泛的一种集合,Vector可以设置增长因子,而ArrayList不可以。ArrayList有三个构造方法,Vect原创 2022-03-31 21:26:56 · 1956 阅读 · 4 评论