lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  corejava-基础

1 2 3 4 5 ··· 10 下一页

摘要:介绍 TreeMap 是 Java 集合框架中的一个类,它实现了 SortedMap 接口,可以存储键值对,并按照键的自然顺序或者指定的比较器进行排序。TreeMap 的底层是一棵红黑树,这是一种自平衡的二叉搜索树,可以保证在插入,删除,查找等操作中的时间复杂度为 O(log n)。 使用 要使用 阅读全文
posted @ 2023-07-12 20:25 白露~ 阅读(1501) 评论(0) 推荐(0) 编辑

摘要:JAVA 语言中有八种基本的数字类型,分别是 byte、short、int、long、float、double、char 和 boolean。这些类型的区别在于它们所占用的内存空间和表示的范围不同。在使用和选择数字类型时,需要考虑以下几个因素: 数字的大小:如果数字很小,可以使用 byte 或 sh 阅读全文
posted @ 2023-07-12 19:30 白露~ 阅读(87) 评论(0) 推荐(0) 编辑

摘要:Java中实现字符串逆序有以下几种常见的方法: 方法一:使用StringBuffer或StringBuilder的reverse()方法。这是最简单和最直接的方法,只需要将String对象转换为StringBuffer或StringBuilder对象,然后调用它们的reverse()方法,就可以得到 阅读全文
posted @ 2023-07-12 18:06 白露~ 阅读(2618) 评论(0) 推荐(1) 编辑

摘要:Java中如何操作不确定大小的数组 1. 前言 1.1 什么是数组 数组是一种存储多个相同类型数据的有序集合,它可以通过索引来访问每个元素。数组是一种引用类型的变量,它在内存中占用一块连续的空间。 1.2 数组的特点 数组有以下几个特点: - 数组的长度是确定的,一旦创建就不能改变。- 数组的元素必 阅读全文
posted @ 2023-07-12 17:45 白露~ 阅读(1821) 评论(0) 推荐(0) 编辑

摘要:一、wait()和notify()含义 二、标准代码示例 创建两个线程Thread0和Thread1。 代码实现: 运行流程详解 三、什么时候释放锁—wait()、notify() 四、用生活故事讲懂线程的等待唤醒 1.老王和老李(专家程序员): 2.王哥和李哥(普通程序员): 3.小王和小李(新手 阅读全文
posted @ 2023-04-01 18:00 白露~ 阅读(141) 评论(0) 推荐(0) 编辑

摘要:红黑树在Java中的应用 红黑树在Java中有很多应用。例如, Java 8中的HashMap容器和TreeMap容器都有红黑树的具体应用。HashMap在插入和查找时都需要对键进行哈希,而TreeMap则是按照键的自然顺序进行排序。 因此,当需要对键进行排序时,可以使用TreeMap; 当不需要排 阅读全文
posted @ 2023-04-01 16:28 白露~ 阅读(79) 评论(0) 推荐(0) 编辑

摘要:Java Stream 是 Java 8 中的一个新特性,它是对集合(Collection)对象功能的增强,专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出 阅读全文
posted @ 2023-03-28 18:27 白露~ 阅读(71) 评论(0) 推荐(0) 编辑

摘要:为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1, 明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。 测试代码如下: public class 阅读全文
posted @ 2022-12-26 01:13 白露~ 阅读(155) 评论(0) 推荐(0) 编辑

摘要:一. 性能对比 阿里开发手册推荐jdk8使用LongAdder替代AtomicLong 示例代码 题目:热点商品点赞计算器,点赞数加加统计,不要求实时精确。50个线程,每个线程100W次,统计总点赞数 比较synchronized、AtomicInteger、AtomicLong、LongAdder 阅读全文
posted @ 2022-12-25 22:56 白露~ 阅读(34) 评论(0) 推荐(0) 编辑

摘要:一、原子累加器我们都知道,原子整型可以在线程安全的前提下做到累加功能,而今天介绍的LongAdder具有更好的性能 我们先来看原子累加器和原子整型做累加的对比使用: private static <T> void demo(Supplier<T> supplier, Consumer<T> acti 阅读全文
posted @ 2022-12-25 22:41 白露~ 阅读(486) 评论(0) 推荐(0) 编辑

摘要:面试官:今天我们来聊聊CAS吧?你对CAS了解多少? 候选者:好,CAS的全称为compare and swap,比较并交换 候选者:虽然翻译过来是「比较并交换」,但它是一个原子性的操作,对应到CPU指令为cmpxchg 面试官:好家伙,CPU指令你都知道? 候选者:这没什么,都是背的。 面试官:… 阅读全文
posted @ 2022-12-25 22:12 白露~ 阅读(95) 评论(0) 推荐(0) 编辑

摘要:UncaughtExceptionHandler在 Thread API 中提供了 UncaughtExceptionHandler ,它能检测出某个线程由于未捕获的异常而终结的情况,能有效地防止线程泄漏问题当一个线程由于未捕获异常而退出时, JVM 会把这个事件报告给应用程序提供的 Uncaugh 阅读全文
posted @ 2022-12-25 15:08 白露~ 阅读(152) 评论(0) 推荐(0) 编辑

摘要:i++和++i单独存在时,产生的效果都是一样的,都是i的值+1 int i=3; i++; //i=3+1=4 System.out.println(i); //输出i的值为4 ++i; //i=4+1=5 System.out.println(i); //输出i的值为5 i++和++i参与运算时产 阅读全文
posted @ 2022-12-21 16:19 白露~ 阅读(218) 评论(0) 推荐(0) 编辑

摘要:本文主要分两部分: 手动实现数组拷贝功能 使用并分析System类中的数组拷贝方法 1.手动实现数组拷贝功能 首先来看看我们的需求:有两个已知数组如上图,从src数组中拷贝3,4,5,6元素到dest数组中,需求这么简单?还么完呢铁子,将元素拷到dest数组中下标从5开始的地方(也就是3拷贝到des 阅读全文
posted @ 2022-12-21 15:57 白露~ 阅读(437) 评论(0) 推荐(0) 编辑

摘要:本文约7300字,完整阅读大概会花费你「15分钟」左右的时间 什么是 JMM? JMM 就是 Java 内存模型(java memory model)。 JMM 是一个抽象的概念,并不像 JVM 内存结构一样真实存在。它描述的是和多线程相关的一组规范,需要各个 JVM 的实现来遵守 JMM 规范,以 阅读全文
posted @ 2022-09-29 15:48 白露~ 阅读(3219) 评论(1) 推荐(1) 编辑

摘要:happens-before是JMM最核心的概念。对应Java程序员来说,理解happens-before是理解JMM的关键。 学习了 Java并发机制底层实现的三个关键要素:volatile、synchronized、原子性操作。以及Java内存模型是为了解决在并发环境下由于 CPU缓存、编译器和 阅读全文
posted @ 2022-09-23 17:17 白露~ 阅读(108) 评论(0) 推荐(0) 编辑

摘要:happens-before 规则含义: happens-before原则是JMM最核心的概念,理解happens-before是理解JMM的关键。 JMM为了使编译器和处理器的约束尽可能少,它遵循的原则是:只要不改变程序的执行结果,编译器和处理器想怎么优化就怎么优化。 happens-before 阅读全文
posted @ 2022-09-23 17:14 白露~ 阅读(186) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 10 下一页