Java
文章平均质量分 84
Java 学习记录与分享
mitre
夜尽天明...
展开
-
volatile 示例分析
我被自己蠢哭了(〒︿〒)…还是要戒骄戒躁, 踏踏实实地学习才行.“一个人知道自己为何而活, 就可以忍受任何生活” - 尼采.1 共享变量的内存可见性问题看这个示例:public class Test1 { private static boolean b = false; public static void main(String[] args) throws InterruptedException { // 假设这个线程叫 T0 new Th原创 2021-11-21 17:11:07 · 714 阅读 · 0 评论 -
原码与补码
转载这篇文章, 很赞, 讲的很详细.原创 2021-11-16 23:03:17 · 253 阅读 · 0 评论 -
ConcurrentHashMap分析(JDK1.8)
ConcurrentHashMap 里有 50+ 个子类, 一共 6k+ 行代码, 对于初学者直接阅读有一些难度. 本文详细介绍 ConcurrentHashMap 中的一些 关键要素(概念/代码), 掌握这些再看这个类的实现细节(代码), 就比较容易看懂.推荐 JDK 使用 liberica-1.8 版本, 这个版本的 JDK 所有源码都有, 方便阅读.Oracle 版本的 JDK 有一些类是没有源码的, 只有 .class 文件(比如 Unsafe 类), .class 反编译出来的代码看起来很难受原创 2021-11-10 00:21:27 · 522 阅读 · 0 评论 -
HashMap 实现细节(JDK1.8)
1 简介Java 8前后 HashMap 的区别:对比项Java 8 之前Java 8 之后(含)节点类型EntryNode/TreeNode存储结构数组+单向链表数组+单向链表/红黑树插入方式头插法尾插法扩容时机先扩容再插入先插入再扩容hash 算法4次位运算+五次异或1次位运算+1次异或插入方式数组+单向链表数组+单向链表/红黑树以下分析均基于 Java 8.1.1 HashMap 的主要成员变量HashMap 中原创 2021-11-08 01:57:19 · 184 阅读 · 0 评论 -
Java中的按位操作符
最近看 JDK 的源码, 看到一些 按位运算(Bitwise Operators), 这里做个总结.1 按位运算符汇总OperatorDescription&Bitwise AND(按位与)|Bitwise OR(按位或)^Bitwise XOR(eXclusive OR, 按位异或)~Bitwise Complement(按位取反)<<Left Shift(左移)>>Signed Right Shift(有符原创 2021-11-07 13:21:45 · 326 阅读 · 0 评论 -
并发编程基础知识
1 什么是并发编程并行: 同一时刻, 多个任务同时执行.(一个 CPU 核 处理一个任务)并发: 一个时间段内, 多个任务都在执行, 并且都没有执行结束. (一个 CPU 核处理多个任务)在多线程编程中, 线程的个数往往多于 CPU 的个数, 所以一般称之为 并发编程.并发编程可以提高系统性能, 提高吞吐量.2 线程安全问题共享资源: 多个线程都可以访问的资源. 或者说, 多个线程共享的资源.线程安全问题是指:当多个线程同时 读写 一个 共享资源 并且没有采取同步措施时, 导致出现 脏数据原创 2021-10-03 00:56:29 · 196 阅读 · 0 评论 -
Java Thread 类学习-1
在上一篇博客中介绍了 由 Object 提供的 线程通知与等待 功能.这篇博客, 探索一下 Thread 提供的控制线程(运行)的方法.1 汇合子线程结果的 join 方法join 翻译为中文是 “结合, 汇合, 连接, 参加…”;Thread 里的 join 的含义就是 汇合 的意思. 主线程 调用了 子线程的 join 方法后, 主线程会阻塞直到 子线程执行完毕; 这可以理解为 主线程要汇合子线程的结果.Thread 类中提供了 3 个 join 方法, 方法签名如下:// 等待 [mill原创 2021-10-02 19:06:46 · 96 阅读 · 0 评论 -
Java 线程通知与等待
Java 中的 java.lang.Object 类是所有类的父类.Java 把所有类都需要的方法放到了 Object 类里面, Object 类里的非private的方法有:getClasshashCodeequalsclonetoStringnotify 系列(包含 notify, notifyAll)wait 系列finalizeJava 线程的 “通知-等待” 就是通过 notify 系列 和 wait 系列 的方法实现的.1 wait 系列方法1.1 wait(long原创 2021-10-02 14:58:25 · 351 阅读 · 0 评论 -
Java集合框架概述
主要参考 Collections Framework Overview 这个文档.翻译水平有限, 如有错误, 恳请指正, 不胜感激????.1 简介集合是一个 表示一组对象 的对象(A collection is an object that represents a group of objects).Java 平台包含一个 集合框架(collections framework).集合框架 是一个 表示和操作集合的 统一体系结构(unified architecture), 使集合能够独立于实现原创 2021-09-28 00:13:06 · 137 阅读 · 0 评论 -
Java WeakReference 弱引用
Java中的引用类型Java中存在四种引用, 它们由强到弱依次是: 强引用, 软引用, 弱引用, 虚引用.除了 强引用 外, 其他3中引用均可在 java.lang.ref 包中找到.强引用(Strong Reference)程序中默认使用的引用类型, 若一个对象通过一系列强引用可到达, 它就是强可达的(strongly reachable), 那么它就不被回收.下面是一个强引用示例:public static void main(String[] args) { StringBuilder原创 2021-08-26 01:34:06 · 244 阅读 · 0 评论 -
Java ThreadLocal
ThreadLocal 用于 线程间数据隔离 , 每个线程都有变量的副本, 每个线程同一时间访问的并不是同一个对象.ThreadLocal的使用场景引用一下 When to use ThreadLocal? 这个篇教程的说法:Consider you are working on a eCommerce application.You have a requirement to generate a unique transaction id for each and every customer原创 2021-08-26 01:28:41 · 74 阅读 · 0 评论