2020年10月8日

摘要: Linux 的内核实现原理 半年前,我写了《计算机是如何启动的?》,探讨BIOS和主引导记录的作用。 那篇文章不涉及操作系统,只与主板的板载程序有关。今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。 这个部分比较有意思。因为在BIOS阶段,计算机的行为基本上被写死 阅读全文
posted @ 2020-10-08 23:45 kk20_625 阅读(594) 评论(0) 推荐(0)
 
摘要: 字符编码笔记:ASCII,Unicode 和 UTF-8 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。 这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。我尽量写得通俗易懂,希望能对其他朋友有用。毕竟, 阅读全文
posted @ 2020-10-08 22:56 kk20_625 阅读(118) 评论(0) 推荐(0)
 
摘要: Docker 入门教程 2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。 但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。 一、环境配置的难题 软件开发最大的麻 阅读全文
posted @ 2020-10-08 22:51 kk20_625 阅读(455) 评论(0) 推荐(0)
 
摘要: 编译器的工作过程 源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h> int main(void) { fputs("Hello, world!\n", stdout); return 0; } 要先用编 阅读全文
posted @ 2020-10-08 22:49 kk20_625 阅读(104) 评论(0) 推荐(0)
 
摘要: 汇编语言入门教程 学习编程其实就是学高级语言,即那些为人类设计的计算机语言。 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。 计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行 阅读全文
posted @ 2020-10-08 21:41 kk20_625 阅读(225) 评论(0) 推荐(0)
 
摘要: 什么是守护线程? 参考答案 Java线程分为用户线程和守护线程。 守护线程是程序运行的时候在后台提供一种通用服务的线程。所有用户线程停止,进程会停掉所有守护线程,退出程序。 Java中把线程设置为守护线程的方法:在 start 线程之前调用线程的 setDaemon(true) 方法。 注意: se 阅读全文
posted @ 2020-10-08 20:48 kk20_625 阅读(104) 评论(0) 推荐(0)
 
摘要: OutOfMemoryError的原因有哪些?怎么解决? 参考答案 OutOfMemoryError 分为多种不同的错误: Java heap space 原因:JVM 中 heap 的最大值不满足需要 解决: 调高 heap 的最大值,-Xmx 的值调大 如果程序存在内存泄漏,增加 heap 空间 阅读全文
posted @ 2020-10-08 20:40 kk20_625 阅读(123) 评论(0) 推荐(0)
 
摘要: synchronized四种锁状态的升级 一、背景 在 Java 语言中,使用 Synchronized 是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先加锁。 加锁可以使一段代码在同一时间只有一个线程可以访问,在增加安全性的同时,牺牲掉的是程序的执行性能,所以为了在一定 阅读全文
posted @ 2020-10-08 20:31 kk20_625 阅读(382) 评论(0) 推荐(0)
 
摘要: 三数之和--LeetCode015 我的LeetCode代码集:https://github.com/cnamep001/LeetCode 原题链接:https://leetcode-cn.com/problems/3sum/description/ 题目描述: 知识点:哈希表,对撞双指针 思路一: 阅读全文
posted @ 2020-10-08 13:50 kk20_625 阅读(197) 评论(0) 推荐(0)
 
摘要: JDK 8的HashMap源码解析 感谢Neal Gafter、Arthur van Hoff、Josh Bloch、Doug Lea为我们提供了HashMap这一工具类,方便了诸多Java开发者的开发工作。 看再多的源码解析,自己不亲身去阅读源码,都是徒劳无功。 注释分析 为了我们能轻松地阅读源码 阅读全文
posted @ 2020-10-08 12:57 kk20_625 阅读(287) 评论(0) 推荐(0)