随笔分类 -  java基础

摘要:摘抄自:https://www.zhihu.com/question/20400700/answer/117464182 阅读全文
posted @ 2022-07-05 13:56 开顺 阅读(32) 评论(0) 推荐(0) 编辑
摘要:用户空间和内核空间用户程序有用户态和内核态两种状态。用户态就是执行在用户空间中,不能直接执行系统调用。必须先切换到内核态,也就是系统调用的相关数据信息必须存储在内核空间中,然后执行系统调用。 操作硬盘等资源属于敏感操作,为了内核安全,用户线程不能直接调用。而是采用了操作系统内核提供了系统调用接口,用 阅读全文
posted @ 2022-05-18 16:59 开顺 阅读(1957) 评论(0) 推荐(0) 编辑
摘要:private int hash(K key) { // 为啥要把hash值和0x7FFFFFFF做一次按位与操作呢, // 主要是为了保证得到的index的第一位为0,也就是为了得到一个正数。 // 因为有符号数第一位0代表正数,1代表负数。 return (key.hashCode() & 0x 阅读全文
posted @ 2021-02-04 10:56 开顺 阅读(445) 评论(0) 推荐(0) 编辑
摘要:摘抄自:https://blog.csdn.net/suifeng629/article/details/81567777 阅读全文
posted @ 2020-12-25 16:51 开顺 阅读(101) 评论(0) 推荐(0) 编辑
摘要:摘抄自:https://blog.csdn.net/mu_wind/article/details/103167595 Java各种同步锁详解 1 锁分类概述 1.1 乐观锁 & 悲观锁 1.2 自旋锁 & 适应性自旋锁 1.3 公平锁 & 非公平锁 1.4 可重入锁 & 不可重入锁 1.5 共享锁 阅读全文
posted @ 2020-11-10 11:19 开顺 阅读(126) 评论(0) 推荐(0) 编辑
摘要:单例模式的五种实现方式 1、饿汉式(线程安全,调用效率高,但是不能延时加载): 1 2 3 4 5 6 7 public class ImageLoader{ private static ImageLoader instance = new ImageLoader; private ImageLo 阅读全文
posted @ 2020-06-14 22:23 开顺 阅读(1368) 评论(0) 推荐(2) 编辑
摘要:摘抄自:https://www.cnblogs.com/gocode/p/analysis-source-code-of-ConcurrentHashMap.html 1.引子 并发编程中使用HashMap可能导致程序死循环。因为多线程会put方法添加键值对时将导致HashMap的Entry链表形成 阅读全文
posted @ 2020-03-11 13:38 开顺 阅读(603) 评论(0) 推荐(0) 编辑
摘要:static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >>> 16; return (n < 0) ? 1 : 阅读全文
posted @ 2020-03-11 10:24 开顺 阅读(2914) 评论(8) 推荐(1) 编辑
摘要:内部类什么是内部类?在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是内部类。内部类本身就是类的一个属性,与其他属性定义方式一致。 内部类的分类有哪些内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。 静态内部类定义在类内部的静态类,就是静态内部类。 public c 阅读全文
posted @ 2020-03-06 15:30 开顺 阅读(122) 评论(0) 推荐(0) 编辑
摘要:switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 阅读全文
posted @ 2020-03-06 14:51 开顺 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-03-06 14:49 开顺 阅读(91) 评论(0) 推荐(0) 编辑
摘要:为什么要讲容量设置为2的N次放 1 h&(length-1)=h%length length必须为2的N次方 2 位运算符耗时:2640ms 取模运算:25157 (取模运算太耗费时间) 3 数组扩容,大量rehash(取模) 阅读全文
posted @ 2020-03-05 21:12 开顺 阅读(115) 评论(0) 推荐(0) 编辑
摘要:ArrayList : 默认大小: private static final int DEFAULT_CAPACITY = 10; 扩容后数量:int newCapacity = oldCapacity + (oldCapacity >> 1); 加上原来的一半HashMap:默认大小:static 阅读全文
posted @ 2020-03-05 17:21 开顺 阅读(304) 评论(0) 推荐(0) 编辑
摘要:大家都知道(jdk1.8)HashMap中计算数组下标是HashMap的核心算法。小编今天在看HashMap源码中看到了hash(Object key)方法百思不得其解。小编问百度,查找相关博客,甚至连HashMap的关于hash(Object key)英文解释都看了。但是都只是说了为了尽量均匀,没 阅读全文
posted @ 2020-02-24 15:39 开顺 阅读(2618) 评论(2) 推荐(0) 编辑
摘要:https://blog.csdn.net/soonfly/article/details/70147205 在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。其实要搞明白String.intern(),我总结了下面几条规则:一、new Strin 阅读全文
posted @ 2020-02-19 23:04 开顺 阅读(130) 评论(0) 推荐(0) 编辑
摘要:摘抄自:https://blog.csdn.net/lipr86/article/details/78674572 1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕 阅读全文
posted @ 2020-01-17 17:33 开顺 阅读(263) 评论(0) 推荐(0) 编辑
摘要:你知道 hash 的实现吗?为什么要这样实现? 在 JDK 1.8 的实现中,是通过 hashCode() 的高16位异或低16位实现的:(h = k.hashCode()) ^ (h >>> 16)。 主要是从速度、功效、质量 来考虑的,这么做可以在桶的 n 比较小的时候,保证高低 bit 都参与 阅读全文
posted @ 2019-07-02 17:08 开顺 阅读(405) 评论(0) 推荐(0) 编辑
摘要:首先,capacity 为 2的整数次幂的话,计算桶的位置 h&(length-1) 就相当于对 length 取模,提升了计算效率; 其次,capacity 为 2 的整数次幂的话,为偶数,这样 capacity-1 为奇数,奇数的最后一位是 1,这样便保证了 h&(capacity-1) 的最后 阅读全文
posted @ 2019-07-02 17:02 开顺 阅读(917) 评论(0) 推荐(1) 编辑
摘要:IO操作概念在Unix系统中,一切都是文件。文件就是流的概念,在进行信息的交流过程中,对这些流进行数据的收发操作就是IO操作 我们都知道unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。 阅读全文
posted @ 2019-06-30 19:23 开顺 阅读(167) 评论(0) 推荐(0) 编辑
摘要:五种线程池的分类和作用 (转载自:http://www.cnblogs.com/vince66/p/9325638.html) 1、newCachedThreadPool 作用:创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们,并在需要时使用提供的 ThreadFactor 阅读全文
posted @ 2019-01-05 15:10 开顺 阅读(2108) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示