加载中...
DestiNation的小木屋
Java对象的大小计算 Java对象的大小计算
Java对象布局一个 Java 对象在内存中存储为三部分:对象头(Header)、实例数据(Instance Data)和对齐填充 (Padding)。可以用下图来清晰表示: 1、对象头 Mark Word: 用于存储对象自身的运行时数据
2021-11-08
闭包 闭包
Function ValueGo语言中函数是头等对象,可以作为参数传递,可以作为返回值,也可以绑定到变量。Go中称这样的参数,返回值或者变量为function value。 function value本质是上一个指针,但是并不直接指向函
2021-10-31
Golang的slice Golang的slice
概述Slice(切片)代表变长的序列,序列中每个元素都有相同的类型。其实 slice 也就相当于动态数组,长度并不固定,可以用append追加元素,并且slice会在容量不足时自动扩容。 在go语言中文文档中,对于slice有这样的描述:
2021-10-31
函数调用栈的传参与返回值 函数调用栈的传参与返回值
一个例子我们知道,由于Go语言是值传递,如果在被调用函数内部交换两个数的值,调用者内部对应的实参是不会发生变化的,就如下所示: 但这个现象的原因从函数调用栈来说具体的机理是什么呢?我们通过函数调用栈看看问题到底出在哪 由于函数调用没有返
2021-10-30
函数调用栈分析 函数调用栈分析
函数基本结构G语言中函数的声明的基本形式如下: func name(parameter-list) (result-list) { body } 其中函数的类型被称为函数的签名。如果两个函数形式参数列表和返回值
2021-10-30
kill的执行过程 kill的执行过程
当执行kill -9 PID时系统发生了什么最近在逛牛客的时候,突然看到一个面试题,说kill的执行过程是怎么样的?还别说,平常就只是知道用kill杀死进程,具体的原理确实不咋知道(也有可能因为底层是c没深入去学哈哈😂),这次就引用别人的
2021-10-06
雪花算法 雪花算法
概述分布式系统中,有一些需要使用全局唯一 ID的场景,这种时候为了防止 ID冲突可以使用 UUID,但是 UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的,这使得采用 UUID进行范围查询等需求的性能并不会很好。 Twitte
2021-09-29
Next-Key Lock Next-Key Lock
前置知识==行锁(Record Lock)==:把某一行的记录给锁住 ==间隙锁(Gap Lock)==:把两个已存在的行记录之间的空间隙锁住,不允许其他事务对该区间内进行数据插入等操作 ==Next-Key Lock = 行锁 + 间隙锁
2021-08-25
JavaLearn JavaLearn
Java NIO一、简介Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于
2021-08-06
SpringBoot启动过程 SpringBoot启动过程
前言前几天看着源码与网上的博客自己也理解并写了以下关于SpringBoot的自动装配原理的文章,今天突然想到,既然都看了自动装配了,那SpringBoot的启动流程又是什么样的?平时写代码都是有一个main函数,但是SpringBoot只有
2021-07-15
SpringBoot的自动装配 SpringBoot的自动装配
环境说明本文是基于SpringBoot 2.5.2版本 从入口说起@SpringBootApplication public class StaffingSystemApplication { public static vo
2021-07-12
MySQL的MRR优化 MySQL的MRR优化
概念定义MRR,英文全名为Multi-Range Read Optimization,看这个名字,就可以联想到,这个优化是针对多个范围查询的读优化。该优化时MySQL5.6版本新增的特性,MySQL官网上的说明为: ‎在二级索引上使用范围
2021-06-14
3 / 4