
小李飞刀
士不可不弘毅,任重而道远
现在是一头扎进操作系统里面,浩瀚的各种新老知识,一望无垠的学习内容,只能一个一个堡垒攻下来了。目前看到linux中加载tr和ldt寄存器时候的计算方法,一开始有点懵,貌似理解,又貌似不理解,琢磨了一段时间现在理解了,所以记录一下.
今天看了两段有关指针的代码,有点疑惑,就想到汇编是怎么实现的,这样就可以清楚本质了,所以反汇编了一下,看了下结果。先看这段比较简单的 int i = 0x11223344; int* p1 = &i; int c = *(p1 + 1);代码很简单,给i赋值一个地址,然后用
最近准备写点底层的东西,正好遇到大端模式和小端模式,在实际的开发中,尤其是C系语言的开发中用得到,所以就记录一下。先说一下概念,一般我们现在所用的操作系统,大多数都是小端模式的,小端模式就对于一个数字来说,低位的数字保存在低地址的内存中,高位的数字保存在高地址的内存中,大端模式则相反。下面看下例子。
今天遇到一个以0开头的int数字,比如int a = 012,打印了下是10,于是自己有想看下08是多少,想不到报错了,查了一下,java中0开头的代表的是8进制数,就好像0x是16进制一样,由于八进制数在开发中倒是从来没遇到过,这个知识点算是一个盲点,特此记录一下.
今天遇到了二维数组扩容的问题,用到了2个不同的api,特地记录一下一.比如我们原来有个arr数组,现在要往这个数组里面在添加一个res,可以用下面这样写法。 int[][] arr = new int[][]{{1,2}}; int[] res = new int[]{3
之前说了单例模式,本文深入研究下单例的破坏,分别从序列化和反射两个角度对单例破坏进行说明。序列化破坏单例前面说过好几种单例模式,现在以饿汉模式来说明,序列化是如果破坏单例的。首先把之前的HungrySingleton实现Serializable接口,然后我们通过以下代码调用HungrySinglet
单例模式是最为人熟知的一种设计模式,看似是最简单一种设计模式,其实一点不简单,光单例模式就不光一种,而且期间还会引出一些其他方面的问题,我们下面就来看一下。public class HungrySingleton { private final static HungrySingleton h
IDEA在IntelliJ的构建系统默认下,引入kotlin协程的记录
kotlin的协程之前一直是在android项目中用,在idea中也没用过,今天特地在idea中跑了一下kotlin协程,发现在默认的构建系统中不知道怎么引入协程,通过查找了下资料终于可以了,在此记录一下.首先,如果你是gradle或者maven作为构建系统的话,应该就在配置文件中写入impleme