• ReentrantLock 源码分析

    我们知道 ReentrantLock 分为公平锁和非公平锁,源码上是怎么实现公平和非公平?我们在使用 ReentrantLock 一般的使用方式:package threads.demo01; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import&nb

    Mar 1, 2023 阅读(350)
    标签: Java
  • List 使用 java.lang.UnsupportedOperationException 异常

    最近使用 List 时抛 UnsupportedOperationException 异常,大致的代码如下:public void test(){     List<String> list = Arrays.asList("JAVA", "MySQL&q

    Apr 25, 2022 阅读(801)
    标签: Java
  • Java二分查找算法

    简介 二分查找又叫折半查找,是一种简单又快速的查找算法;它对要查找的序列有两个要求,一是该序列必须是有序的(即该序列中的所有元素都是按照大小关系排好序的,升序和降序都可以),二是该序列必须是顺序存储的。 二分查找示例等值二分查找@Test public void testEqBinarySearch() {     int[]&

    Dec 27, 2021 阅读(819)
    标签: Java 算法
  • Java 线程之间的通信 —— 等待和通知,生产者消费者示例

    wait(), notify() 与 notifyAll() 是 Object 定义的方法, 可以通过这3个方法控制线程是否对象的锁定,或者通知线程参与锁定竞争。线程进入 synchronized 范围前,要先取得指定对象的锁定。执行 synchronized 范围的程序代码期间,若调用锁定对象的 wait() 方法,线程会释对象放锁,并进入对象等待集合而处于阻断状态,其他线程可以竞争对象锁定,取

    Dec 3, 2021 阅读(899)
    标签: Java
  • Java Swing 绝对布局

    package swing.chapter02; import swing.util.SwingConsle; import javax.swing.*; import java.awt.*; /**  * 绝对定位  */ public class NullLayout extends&nb

    Sep 6, 2021 阅读(838)
    标签: Java
  • Java Swing 组件更新线程冲突问题

    先看一下以下更新组件的代码:import javax.swing.*; import java.util.concurrent.TimeUnit; public class HelloLabel {     public static void main(String[]&n

    Sep 6, 2021 阅读(825)
    标签: Java
  • Java Lambda 表达式

    简介Lambda 表达式,也可称为闭包,Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。 Lambda 语法格式(parameters) -> expression  或  (parameters) ->{ 

    Mar 11, 2021 阅读(919)
    标签: Java
  • Java 集合类型转换

    Map 转 List/**  * Map 转 List  */ @Test public void testMap2List(){     Map<Integer, String> rankMap = new HashMap()

    Jan 8, 2021 阅读(854)
    标签: 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 阅读(3799)
    标签: Java
  • MongoDB ObjectId 隐藏了那些重要信息

    描述ObjectId(<hexadecimal>) 参数选填,24位16进制的数字。返回一个新的 ObjectId 值,其中12字节ObjectId 由以下部分组成:4个字节时间戳(24位中的前8位16进制的数字)。5个字节的随机数(3字节机器码+2字节进程id)。3个字节的基于随机数的计数器。ObjectId 实际上它是由一组十六进制的字符构成,每个字节两位的十六进制数字,总共用了12字

    Sep 6, 2019 阅读(2379)
    标签: MongoDB Java