Java基础
文章平均质量分 67
Evan_L
这个作者很懒,什么都没留下…
展开
-
maven仓库-阿里镜像-下载问题
相信大家在使用maven的时候都会配置阿里的镜像,以加速jar包的下载。但是当打开开源的源码时,就会报各种包找不到。这很让人恼火。但是其实这是由于我们配置有问题导致的。原创 2022-09-18 11:59:32 · 1155 阅读 · 0 评论 -
为什么二进制协议更加高效?
在计算机的世界中,所有的东西都是用二进制表示的。那么,人类语言要想在计算机中进行表示,就需要通过编码。例如在ASCII编码中字母a被表示为0x61=97(十进制),使用8bit来表示一个字符。而在UTF-8编码的unicode字符集,是可变长度的,最多可以用4B=32bit来表示一个字符,例如一个中文字符。因此如果直接用于网络传输,那么需要传输的数据量是比较大的。 有没有办法减少传输的数据呢?当然,那就是二进制协议。既然直接表示人类的自然语言比较费劲,那么是不是可以直接把自然语...原创 2022-02-28 11:01:55 · 667 阅读 · 0 评论 -
ConcurrentHashMap并发安全的实现原理~java8
前言上一篇聊到Java7,今天来聊聊Java8是怎么保证并发安全的。ConcurrentHashMap in Java8jdk版本:jdk1.8.0_41构造器 /** * Creates a new, empty map with the default initial table size (16). * 创建一个新的空Map,默认初始hash表大小为16(这里依然是延迟实例化,所以构造器中并没有任何代码) */ public Concurrent原创 2022-02-20 16:40:32 · 3872 阅读 · 1 评论 -
ConcurrentHashMap并发安全的实现原理~java7
前言最近看到一些文章,聊到ConcurrentHashMap的时候,总会说:在jdk8之前,ConcurrentHashMap采用的是分段锁来保证并发安全性。而jdk8放弃了分段锁,通过sycronized关键字+CAS来保证并发安全性。虽然大概是这么个意思,但是感觉不够透彻,所以也想斗胆谈谈我的个人见解。ConcurrentHashMap in Java7先说明,我看的是jdk1.7.0_79版本的。默认构造方法 public ConcurrentHashMap() { this原创 2022-02-19 22:54:49 · 928 阅读 · 0 评论 -
从零开始学Java-你不知道的数组长度的秘密
前言今天在做题目的时候,无意中发现ArrayList(JDK 1.8)中定义了一个最大数组长度的常量: /** * The maximum size of array to allocate. * Some VMs reserve some header words in an array. * Attempts to allocate larger arrays may result in * OutOfMemoryError: Requested arr原创 2021-05-08 22:16:47 · 270 阅读 · 2 评论 -
从零开始学Java-数据结构与算法-Hash算法
前言这几天看到ThreadLocal相关的实现,自己跑去看了下源码,结果发现个很有意思的东西:它的hash值居然是通过AtomicInteger.getAndAdd产生的,步长也很有意思,HASH_INCREMENT = 0x61c88647。于是,问了下度娘。。Hash函数Hash函数又称散列函数,这个东西,说起来跟信息安全竟然能扯上五毛钱关系。数字摘要,通过hash函数将不限长度明文字符“摘要”固定长度的密文,而这密文又称数字指纹。而hash碰撞的概率,就是我们信息安全的保证追求。如果黑客能够很轻转载 2021-05-08 01:31:37 · 275 阅读 · 0 评论 -
复习-基本数据类型与高阶特性
前言今天的LeetCode是一道困难级别的题目(1473 粉刷房子 III ),虽然是以往训练的动态规划。在看了题解之后,理解了思路,但是看代码,选择放弃。。。用一个三维数组来处理的。。所以选择把基础打牢基本数据类型基本数据类型存储在栈中,而封装数据类型存储在堆中。数值类型byte 1字节 Byteshort 2字节 Shortint 4字节 Integerlong 8字节 Long浮点型float 4字节 Floatdouble 8字节 Double字符类型char原创 2021-05-05 00:59:11 · 121 阅读 · 0 评论