
计算机基础知识
文章平均质量分 86
阅读计算机网络,操作系统相关书籍;通过翻译英文教材加深理解。
竹天九日
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java日志系列实践1】系统操作日志的标准使用
1 常见日志分类日志一般根据使用场景分为系统日志和操作日志。系统日志:排查定位问题操作日志:记录用户操作,业务数据回溯与统计。2 系统日志格式系统日志主要是为开发排查问题提供依据,日志一般打印在日志文件中,可读性要求没那么高。SpringBoot 默认选择的是 slf4j + logback 的组合,默认会将日志打印到控制台上。日期时间:精确到毫秒。日志级别:打印 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 等级别日志信息。进程 ID:当前项目进程 ID 。原创 2022-04-05 23:16:38 · 2193 阅读 · 0 评论 -
操作系统之进程调度与内存管理
1.进程间的通信与调度1.1进程间的通信(Inter Process Communication)生产者消费者问题数据存到有界缓冲区bounded-buffer中,设置count记录缓冲区的数据量,如果缓冲区满count=size,让生产者睡眠;如果缓冲区为空count=0,让消费者睡眠。解决方法:(1)用信号量(semaphore)需要三个信号量:full记录充满缓冲区数目,empty记录空的缓冲区数目。mutex用来保证任意时刻只有一个进程读写缓冲区变量。(2)用互.原创 2020-06-14 22:47:49 · 1763 阅读 · 0 评论 -
Java性能监控工具Arthas实践
1. 启动Demo在dos窗口输入:curl -O https://alibaba.github.io/arthas/arthas-demo.jarjava -jar arthas-demo.jararthas-demo是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。2. 启动arthas在命令行下面执行(使用和目标进程一致的用户启动,否则可能attach失败):蓝线以左是java开的demo(质数分解),蓝线以右是启动arthas的窗口dashboard原创 2020-05-26 14:53:08 · 636 阅读 · 0 评论 -
二叉树的详细分类与应用场景(Java代码实现)
1.二叉搜索树(Binary Search Tree)leetcode450.删除BST的结点class Solution { public TreeNode deleteNode(TreeNode root, int key) { if (root == null) return null; if (key < root.val) { ...原创 2020-03-27 23:57:16 · 1921 阅读 · 1 评论 -
《Java编程思想第四版》中在算法题中常用的概念总结(持续更新)
总结今年前期在《Java编程思想第四版》中常见的几个问题:1.OOP相关概念向上转型(upcasting)书中那句“新类是现有类的一种类型”的概括很到位,也直接解释了继承的关系。Java编译器支持向上转型,是指子类引用转换成父类引用这一动作,可以理解为继承的实现方式。先用小例子感受一下upcasting://父类:乐器public class Instruments { public void play(Note n){ System.out.println("Ins原创 2020-05-25 20:00:29 · 310 阅读 · 0 评论 -
git常用工具的原理介绍以及项目使用中常见问题(持续更新)
1.工具中的重要原理1.SSH KEy在《GitHub入门与实践》一书中对SSH Key的介绍并不多,只是简短的说了使用。针对不同的git平台,所生产的公开密钥其实是不一样的。重点:id_rsa文件是私有密钥,id_rsa.pub 是公开密钥2. Merge 和Rebase操作的区别在对当前某公共分支中(通常dev线或pro线)操作时,Merge是将公共分支最新版合并到自己的分支中,形成一个新的 commit 提交。而Rebase则像公共分支又重新拉出来这个分支一样。Merge(合并)是最常原创 2020-05-24 22:28:15 · 4020 阅读 · 0 评论 -
关于DeadLock(死锁)的总结及Java代码实现
本篇文章演示死锁的场景,在现实中你可能不会写出这样的代码。但是,在一些更为 复杂的场景中,你可能会遇到这样的问题,比如t1拿到锁之后,因为一些异常情况没有释放锁 (死循环)。又或者是t1拿到一个数据库锁,释放锁的时候抛出了异常,没释放掉。一旦出现死锁,业务是可感知的,因为不能继续提供服务了,那么只能通过dump线程查看 到底是哪个线程出现了问题,以下线程信息告诉我们是DeadLockDemo类的第42行和第31行引 起的死锁1.创建t1和t2两个线程,互相加锁public class NormalLo原创 2020-05-18 16:17:59 · 743 阅读 · 0 评论 -
布隆过滤器的介绍
位数组中的每个元素都只占用 1 bit ,并且每个元素只能是 0 或者 1。这样申请一个 100w 个元素的位数组只占用 1000000Bit / 8 = 125000 Byte = 125000/1024 kb ≈ 122kb 的空间。总结:一个名叫 Bloom 的人提出了一种来检索元素是否在给定大集合中的数据结构,这种数据结构是高效且性能很好的,但缺点是具有一定的错误识别率和删除难度。并且...原创 2020-04-13 23:53:28 · 235 阅读 · 0 评论 -
SSM框架中三层数据传输(VO,DO,AO)
1.接口层VO和逻辑层DO1.xxDO是数据库直接取来或注册进去的数据,基本和xxMapper.java以及xxMapper.xml有关xxVO通常是和H5界面直接相关的数据,两者在代码中相互转换比如 PatientDO patient = convertVO2DO(patientVO);user_client里的vo有3个…VO类,均继承于Serializable接口。 privat...原创 2020-04-01 23:34:04 · 3519 阅读 · 0 评论 -
TCP连接延伸7小问
*1.*Java程序是由Unicode字符集编写成的。Unicode字符集is available to 世界所有语言(不像ASC码只适用于英语)*2.*Java distinguish大小写,but will ignore 空格,跳转(tab),转行(newline)*3.*When you invoke a method, the argument(返回值) 会被赋予method所指定的p...原创 2020-03-05 10:50:28 · 148 阅读 · 0 评论