底层原理
文章平均质量分 83
Coding宇航员
资深Java攻城狮,阿里D11守卫者。将我踩过的坑,化为你飞行的推进器。
也喜欢折腾 Python、C++、Js 等等,欢迎指教。
展开
-
图形式理解myisam和innodb索引区别
mysql两大主要引擎为myisam和innodb,那这两个引擎有什么区别呢?我们先新建两个除了引擎不同其他完全相同的表。磁盘文件:MyIsam表的磁盘文件有三个,(以表名为 table_myisam 为例)table_myisam.frm (保存表结构: FoRM) table_myisam.MYI (保存索引 MYisam Index) table...原创 2018-11-07 11:38:46 · 767 阅读 · 1 评论 -
ConcurrentHashMap源码分析,轻取面试Offer(三)
没看过前面的推荐先看前面,ConcurrentHashMap源码分析,轻取面试Offer(一)ConcurrentHashMap源码分析,轻取面试Offer(二)上一篇我们引出了addCount这个函数,简单分析了它做的事情,但还有很多事情我们不知道呢,下面继续讲解先来看一下注释过的函数/** * Adds to count, and if table is too...原创 2018-12-01 20:26:59 · 281 阅读 · 0 评论 -
ConcurrentHashMap源码分析,轻取面试Offer(二)
上篇ConcurrentHashMap源码分析,轻取面试Offer(一)中降到了看源码的方法,下面接上篇继续分析源码先来上篇注释过的代码段和遗留的问题。final V putVal(K key, V value, boolean onlyIfAbsent) { //ConcurrentHashMap中key和value都不允许为空 if (key =...原创 2018-12-01 17:53:09 · 512 阅读 · 0 评论 -
ConcurrentHashMap源码分析,轻取面试Offer(一)
ConcurrentHashMap这里主要分析的 jdk1.8中的ConcurrentHashMap,他是java之父Doug Lea之作,很多优秀的开源框架如tomcat、spring、中都大量用到了该类。【基础好的同学往下走~】====================首先,看jdk的源码不仅需要了解map是什么,为了更好的理解它到底怎么做到的无锁化还是线程安全的,最好对以下有所了解...原创 2018-12-01 15:08:03 · 291 阅读 · 1 评论 -
String拼接字符串底层原理
JDK版本:1.8先上结果:原理:jdk1.8之后字符串拼接底层就是创建了一个StringBuilder,然后调用append方法,最后调用toString转化成String结论:java9之前,StringBuilder的append方法效率永远大于用+拼接,且拼接次数越多,差距越大!(9之后呢?https://blog.csdn.net/qq_35425070/article/...原创 2018-11-19 15:05:58 · 8664 阅读 · 2 评论 -
java字节码指令大全
看到一篇字节码指令的解释比较全,收藏一下https://www.cnblogs.com/longjee/p/8675771.html转载 2018-11-19 14:29:34 · 550 阅读 · 0 评论 -
Java垃圾回收 面试调优必知
本文大部分来源网络,本人进行总结整理,主要是面试中垃圾回收相关频率较高的问题以及解答.常用的垃圾收集算法标记-清除算法 标记-清除算法采用从根集合(GC Roots)进行扫描,对存活的对象进行标记,标记完毕后,再扫描整个空间中未被标记的对象,进行回收,如下图所示。标记-清除算法不需要进行对象的移动,只需对不存活的对象进行处理,在存活对象比较多的情况下极为高效,但由于标记-清除算法直接...转载 2018-11-22 00:24:38 · 239 阅读 · 0 评论 -
B+ Tree、LSM、Fractal tree index比较
B+ Tree、LSM、Fractal tree index 读写放大分析最近刚看完一个还不错的基于B+ Tree实现的kv引擎,借着这股劲儿刚好补充了一下相关理论知识,对比着看其他资料(资料1、资料2、资料3、资料4)看了下《A Comparison of Fractal Trees to Log-Structured Merge (LSM) Trees》论文,我比较愿意扣细节,所以看得那叫...转载 2018-11-21 14:38:48 · 1924 阅读 · 0 评论 -
i++和++i的区别
首先:无论 i++ 还是 ++i,这两个都不是原子操作,详情看这里 i++为什么不是原子操作i++ : 先取i的值作为表达式的值,然后执行 i = i + 1 ++i : 先执行 i = i + 1,再取运算完之后的值作为表达式的值举例和解释:先来个热身的简单例子 public static void main(String[] args) { int i = 0;...原创 2018-11-08 18:53:54 · 378 阅读 · 0 评论 -
理解C语言指针
C语言指针理解本人在初学的时候认为c语言中指针很好理解,但身边好多同学一直在说老师讲的指针太抽象了,看不到,摸不着,非常难理解,甚至学了4年计算机,毕业了,不少同学还说不清楚指针是什么,遇到指针的问题必定出错,这里简单介绍一下。引言c语言中有很多抽象的东西,而指针就是其中一个,学好 c 语言就要学会计算机的思维:透过表面看本质。比如下面一行代码中 两个 ! 运算符int x = 0;i...原创 2019-03-25 14:40:45 · 5693 阅读 · 3 评论