07 2024 档案

摘要:摘自:《Java 编程的逻辑》 Java 并发包中的提供了显式锁,它可以解决 synchronized 的一些限制。 Java 并发包中的显式锁接口和类位于包 java.util.concurrent.locks 下,主要接口和类有: ❑ 锁接口 Lock,主要实现类是 ReentrantLock; 阅读全文
posted @ 2024-07-13 18:53 Higurashi-kagome 阅读(3) 评论(0) 推荐(0) 编辑
摘要:总结自:最浅显易懂的 KMP 算法讲解 KMP 算法是一个经典的字符串匹配算法。字符串匹配是一个非常基本的操作,也就是在一个字符串中寻找另一个子串。 最容易想到的解法是一种暴力匹配的算法,比如一个字一个字地与子串进行比对,一旦匹配失败,就跳回主串中的下一个字符,重新开始匹配。 这个算法的原理很简单, 阅读全文
posted @ 2024-07-11 14:54 Higurashi-kagome 阅读(2) 评论(0) 推荐(0) 编辑
摘要:基于:Java 线程池七个参数详解 参考:为什么使用线程池,参数解释、《Java 编程的逻辑》- 马俊昌 为什么用线程池 1、降低资源消耗:提高线程利用率,降低创建和销毁线程的消耗; 2、提高响应速度:任务来了,直接有线程可用可执行,而不用先创建线程,再执行; 3、提高线程的可管理性:线程是稀缺资源 阅读全文
posted @ 2024-07-09 15:52 Higurashi-kagome 阅读(1) 评论(0) 推荐(0) 编辑
摘要:原文:使用线程池 简介 Java 语言虽然内置了多线程支持,启动一个新线程非常方便,但是,创建线程需要操作系统资源(线程资源,栈空间等),频繁创建和销毁大量线程需要消耗大量时间。 如果可以复用一组线程: ┌─────┐ execute ┌──────────────────┐ │Task1│──── 阅读全文
posted @ 2024-07-09 15:50 Higurashi-kagome 阅读(1) 评论(0) 推荐(0) 编辑
摘要:原文:Java 字符串拼接原理 我们知道 Java 可以直接使用加号+来拼接字符串。 字符串+拼接的本质是使用StringBuilder.append()(已在Java8测试通过),最终如果要赋值给字符串变量时,会调用toString()。 /** * 字符串追加 */ @Test public v 阅读全文
posted @ 2024-07-08 00:34 Higurashi-kagome 阅读(1) 评论(0) 推荐(0) 编辑
摘要:原文:Java 锁消除和锁粗化 锁粗化 通常情况下,为了保证多线程间的有效并发,会要求每个线程持有锁的时间尽可能短,但是某些情况下,一个程序对同一个锁不间断、高频地请求、同步与释放,会消耗掉一定的系统资源,因为锁的请求、同步与释放本身会带来性能损耗,这样高频的锁请求就反而不利于系统性能的优化了,即使 阅读全文
posted @ 2024-07-01 15:27 Higurashi-kagome 阅读(3) 评论(0) 推荐(0) 编辑