• ReentrantLock 源码分析

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

    Mar 1, 2023 阅读(431)
    标签: Java
  • Idea 多线程断点调试

    问题引出在我们多线程环境下打断点调试时,发现很奇怪明明打了断点,可实际情况却是只有一个线程执行的时候在断点处被暂停,其他线程都跑完拉。正确的姿势断点打的没问题,就是断点处需要设置 Suspend 对所有线程(即,Suspend : 选择 Thread)。

    Feb 28, 2023 阅读(448)
    标签: 调试技巧
  • List 使用 java.lang.UnsupportedOperationException 异常

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

    Apr 25, 2022 阅读(889)
    标签: Java
  • Spring 5 源码编译 fatal: Not a git repository (or any of the parent directories): .git

    前言为了学习 Spring 源码,想在源码上做注释,因此将源码 clone 下来本地编译。最终编译环境OK拉,就是有报红的错误信息,受不了尝试解决掉。本地环境IDEA 2018.2gradle-5.6spring-framework-5.2.2.RELEASEjdk-11.0.13错误信息如下:fatal: Not a git repository&

    Jan 10, 2022 阅读(1351)
    标签: Spring
  • Java二分查找算法

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

    Dec 27, 2021 阅读(899)
    标签: Java 算法
  • JUnit 单元测试框架简单示例和最佳实践

    什么是 JUnit ?JUnit 是Java 单元测试框架最常用的框架之一。JUnit是一个用于编写和运行测试的框架,简单易学。每个测试都是一个方法,包含特定场景下将执行的部分代码。比较预期输出和实际输出,以实现代码验证。JUnit 简单实例测试类通常包含三个阶段:1. 准备;2. 测试;3. 清理下面列举了一个单元测试的小案例:import org.junit.*; impo

    Dec 26, 2021 阅读(939)
    标签: 测试 JUnit
  • Java 线程之间的通信 —— 等待和通知,生产者消费者示例

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

    Dec 3, 2021 阅读(990)
    标签: Java
  • UML类图几种关系的总结

    在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为 例如:老虎是动物的一种.【箭头指向】:带三角

    Oct 20, 2021 阅读(733)
  • Java Swing 绝对布局

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

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

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

    Sep 6, 2021 阅读(875)
    标签: Java