![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
fofabu2
这个作者很懒,什么都没留下…
展开
-
hashmap判断是否存在key时,使用get(key)==null判断还是containsKey?
java中hashmap(key,value)的key和value都可以是null我们看hashmap中get()和containskey()的方法: public V get(Object key) { Node结论如果java程序对 key不存在和key存在但是存的值是null这两种情况处理相同一视同仁,则可以直接使用T t = map.get(key);if(t转载 2018-01-03 18:10:19 · 70503 阅读 · 0 评论 -
Java9中List.of和Arrays.asList区别
Arrays.asList返回可变的list,而List.of返回的是不可变的listList<Integer> list = Arrays.asList(1, 2, null);list.set(1, 10); // OKList<Integer> list = List.of(1, 2, 3);list.set(1, 10); // FailsArrays.asList支持null,而转载 2018-01-03 18:21:20 · 24670 阅读 · 0 评论 -
IDEA提示 'Optional.get()' without 'isPresent()' check错误。
Optional转载 2017-12-30 10:57:37 · 35367 阅读 · 0 评论 -
java中内部锁synchronized和重入锁reentrantlock之间进行选择
重入锁reentrantlock 可以选择 公平锁和非公平锁。 内部锁synchronized 本身是 非公平锁。 从性能的角度上看, 非公平锁性能要远大于公平锁。 至于重入锁中非公平锁的性能和 内部锁synchronized的性能比较并没有谁优谁劣的情况。以下例子是对 三者的性能对比:下面具体的构造一个测试程序来具体考察 ReentrantLock 的性能。构造一个 计数器 C转载 2018-01-05 17:47:11 · 650 阅读 · 0 评论 -
Java中Lock,tryLock,lockInterruptibly区别
lock调用后一直阻塞到获得锁public void lock() 1. 获取锁。 2. 如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1。 3. 如果当前线程已经保持该锁,则将保持计数加 1,并且该方法立即返回。 4. 如果该锁被另一个线程保持,则出于线程调度的目的,禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态,此时锁保持计数被设置为 1。转载 2018-01-05 17:49:02 · 3984 阅读 · 0 评论