- 博客(16)
- 收藏
- 关注
原创 ConcurrentHashMap - 常用的get与put方法
简介说明 在日常使用中,ConcurrentHashMap 被使用频率最高的应该就是 get 和 put 方法了,本章我们将要来详细解读它的 get、put 方法,探究 ConcurrentHashMap 在并发情况下如何保证存取数据的安全 。说明:该源码来自于jdk_1.8.0_162get 方法public V get(Object key) { Node...
2019-06-02 17:38:59 4316 1
原创 Integer源码解析
简介 Integer类主要的作用就是对基本类型int进行封装,提供了一些处理int类型的方法,比如int到String类型的转换方法或String类型到int类型的转换方法,当然也包含与其他类型之间的转换方法。除此之外还有一些位相关的操作 。说明:该源码来自于 jdk_1.8.0_162 版本。结构及常用方法IntegerCache 内部类说明:Intege...
2019-05-13 17:16:45 1748
原创 ThreadLocal解析
整体结构结构介绍:由上图可知,一条线程 Thread 包含一个 ThreadLocalMap,这个Map里面包含许多这条线程存储的局部变量值,而获取这些线程局部变量的 key 就是众多的自定义 ThreadLocal 对象的弱引用。简单概括,ThreadLocalMap 是存储在线程 Thread 里面的一个成员属性,ThreadLocal 中的内部类ThreadLocalMap则拥有...
2019-05-11 19:03:39 409
原创 Enum枚举类
介绍 关于枚举类是什么我在这里就不重复做介绍了,本文的内容是剥开枚举表面的面纱,还原一个最真实最原始的枚举类 。正文首先我们来看一个最简单的枚举类的写法:public enum EnumSingleton { INSTANCE}说明:上面不仅是一个枚举类,还是一个单例的写法 。整个代码看起相当简洁,但就因为它的简洁,我们可能会好奇,这个枚举结构和我们的一...
2019-05-11 16:47:38 224
原创 ConcurrentHashMap1.8 - 结构组成与经典二进制方法
简介说明 ConcurrentHashMap 是 J.U.C ( java.util.concurrent包 ) 的重要成员,它是HashMap的一个线程安全的、支持高效并发的版本。在默认理想状态下,ConcurrentHashMap可以支持多线程执行并发写操作及读操作。相比于 JDK1.7 的版本,JDK1.8 上的 ConcurrentHashMap 实现已经抛弃了 Segmen...
2019-05-11 00:52:32 1369 3
原创 ConcurrentHashMap1.8 - 扩容详解
简介 ConcurrenHashMap 在扩容过程中主要使用 sizeCtl 和 transferIndex 这两个属性来协调多线程之间的并发操作,并且在扩容过程中大部分数据依旧可以做到访问不阻塞,具体是如何实现的,请继续 。说明:该源码来自于 jdk_1.8.0_162 版本 。特别说明:不想看源码可直接跳到后面直接看图解 。一、sizeCtl 属性...
2019-05-10 09:54:11 35568 57
原创 Lucene全文检索初探
1、理解全文检索(数据来源:数据库方式)(1)全文检索是什么:先建立索引,再对索引进行搜索的过程。(2)为什么需要全文检索:在网页搜索时,如果没有全文检索,每一次检索数据都会对数据库进行查询,当数据库的数据量非常大时,搜索起来非常耗时以及耗费资源,所以我们可以先将数据库的数据采集出来,提前对这些数据进行整理,建立索引,将这些索引文件存储到服务器的硬盘上,当用户进行数据搜索时,直接从我们建立好的索引库
2017-10-24 16:38:28 439
原创 Git日常操作总结
1. 安装 GitDebian系列:sudo apt install gitRedHat系列:sudo yum install gitArch系列:sudo pacman install gitWindows系列:略2.配置git账户信息(需要先注册Git账号)git config --global user.name "ZOKEKAI"git config -...
2017-07-07 17:13:40 796
原创 Ubuntu16.04安装后常用配置
1.删掉基本不用的自带软件sudo apt-get remove libreoffice-common unity-webapps-common rhythmbox thunderbird totem simple-scan gnome-mahjongg aisleriot gnome-mines cheese transmission-common gnome-orca webbrowser-a
2017-07-07 17:13:15 2167
原创 Tar命令备份还原Linux系统
《 系统备份部分 》# 打开终端,切换到root状态sudo su# 进入系统"/"目录cd /# 执行打包命令(exclude=/ 后面填写的是备份时想要排除的文件夹)tar cvpzf Deepinbackup.tgz --exclude=/proc --exclude=/mnt --exclude=/lost+found --exclude=/sys --exclude=/media --
2017-07-07 17:13:13 1601
原创 Linux下Apktool本地安装及使用教程
1.Download Linux wrapper script (apktool文本链接; 复制链接页面的所有内容,粘贴进文本,并另存为:apktool)2.Download apktool-2 (apktool-2下载链接)3.Make sure you have the 32bit libraries (ia32-libs) downloaded and installed by your
2017-07-07 17:13:10 2925
原创 Manjaro17.0.1(KDE)安装后配置笔记
1.切换中国源sudo gedit /etc/pacman-mirrors.conf如果提示没有gedit , 则执行命令 : sudo pacman -S gedit修改如下地方为中国:OnlyCountry = China2.增加archlinuxcn软件仓库以及各种开发工具源sudo gedit /etc/pacman.conf添加以下内容:[archlinuxcn]SigLevel = O
2017-07-07 17:13:07 16557 2
原创 Deepin15.4安装后配置小记
1.Deepin以管理员身份打开资源管理器sudo dde-file-manager2.Deepin安装fastboot和adb工具sudo apt-get install android-tools-adb android-tools-fastboot3.清除所有已删除包的残馀配置文件dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P4.
2017-07-07 17:13:04 1199
原创 Emacs基本操作及应用
一、Emacs最基本操作Ctrl-f 右移一个字符 Ctrl-b 左移一个字符Alt-f 右移一个词 Alt-b 左移一个词Ctrl-n 移到下一行 Ctrl-p 移到上一行Ctrl-g 取消操作指令 Ctrl-x Ctrl-f 找到并打开多个文件Ctrl-x Ctrl-b 列出缓冲
2017-07-07 17:13:01 858
原创 Ubuntu 16.04环境SudaMod2.0编译笔记
编译环境:Ubuntu 16.04 (64位)Ubuntu安装方法自行百度谷歌1.安装OpenJDK(最新的Ubuntu16.04上不能直接安装OpenJDK7,先添加ppa)sudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-7-jdk2.安装libwxgtk-dev(
2017-07-07 17:12:58 530
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人