-
ReentrantLock 源码分析
我们知道 ReentrantLock 分为公平锁和非公平锁,源码上是怎么实现公平和非公平?我们在使用 ReentrantLock 一般的使用方式:package threads.demo01; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import&nb
Mar 1, 2023 阅读(604)标签: Java -
List 使用 java.lang.UnsupportedOperationException 异常
最近使用 List 时抛 UnsupportedOperationException 异常,大致的代码如下:public void test(){ List<String> list = Arrays.asList("JAVA", "MySQL&q
Apr 25, 2022 阅读(1084)标签: Java -
Java二分查找算法
简介 二分查找又叫折半查找,是一种简单又快速的查找算法;它对要查找的序列有两个要求,一是该序列必须是有序的(即该序列中的所有元素都是按照大小关系排好序的,升序和降序都可以),二是该序列必须是顺序存储的。 二分查找示例等值二分查找@Test public void testEqBinarySearch() { int[]&
Dec 27, 2021 阅读(1064) -
Java 线程之间的通信 —— 等待和通知,生产者消费者示例
wait(), notify() 与 notifyAll() 是 Object 定义的方法, 可以通过这3个方法控制线程是否对象的锁定,或者通知线程参与锁定竞争。线程进入 synchronized 范围前,要先取得指定对象的锁定。执行 synchronized 范围的程序代码期间,若调用锁定对象的 wait() 方法,线程会释对象放锁,并进入对象等待集合而处于阻断状态,其他线程可以竞争对象锁定,取
Dec 3, 2021 阅读(1202)标签: Java -
Java Swing 绝对布局
package swing.chapter02; import swing.util.SwingConsle; import javax.swing.*; import java.awt.*; /** * 绝对定位 */ public class NullLayout extends&nb
Sep 6, 2021 阅读(1025)标签: Java -
Java Swing 组件更新线程冲突问题
先看一下以下更新组件的代码:import javax.swing.*; import java.util.concurrent.TimeUnit; public class HelloLabel { public static void main(String[]&n
Sep 6, 2021 阅读(994)标签: Java -
Java Lambda 表达式
简介Lambda 表达式,也可称为闭包,Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。 Lambda 语法格式(parameters) -> expression 或 (parameters) ->{
Mar 11, 2021 阅读(1086)标签: Java -
Java 集合类型转换
Map 转 List/** * Map 转 List */ @Test public void testMap2List(){ Map<Integer, String> rankMap = new HashMap()
Jan 8, 2021 阅读(969)标签: Java -
Exception in monitor thread while connecting to server localhost:27017
项目没有使用 MongoDB 却每次启动时会出现如下异常信息:10:41:41.288 [main] INFO o.m.d.cluster - Cluster created with settings {hosts=[localhost:27017], mode=SINGLE,&nbs
Oct 22, 2019 阅读(4106)标签: Java -
MongoDB ObjectId 隐藏了那些重要信息
描述ObjectId(<hexadecimal>) 参数选填,24位16进制的数字。返回一个新的 ObjectId 值,其中12字节ObjectId 由以下部分组成:4个字节时间戳(24位中的前8位16进制的数字)。5个字节的随机数(3字节机器码+2字节进程id)。3个字节的基于随机数的计数器。ObjectId 实际上它是由一组十六进制的字符构成,每个字节两位的十六进制数字,总共用了12字
Sep 6, 2019 阅读(2576)