摘要: 背景 这部分内容是我学习 数据结构与算法分析 java语言描述的学习笔记,希望对大家有帮助。 数学知识复习 指数相关 XAXB=XA+B \(\frac{X^A}{X^B}\)=XA-B (XA)B​ = XAB XN + XN= 2XN 2N + 2N = 2N+1 对数相关 logA B = \ 阅读全文
posted @ 2020-08-10 11:29 Ging 阅读(289) 评论(1) 推荐(1) 编辑
摘要: 前言 Java多线程部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 面试题-Java多线程基础、实现工具和 阅读全文
posted @ 2020-08-10 09:46 Ging 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 前言 Java多线程部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定的帮助。 系列文章: 面试题-Java基础 面试题-Java集合 Java多线程 多线程基础 何为线程, 阅读全文
posted @ 2020-08-10 09:45 Ging 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 背景 最近公司需要在生产服务器上测试字库,需要非常频繁修改配置文件中的字体相关属性,然后实时调试,所以需要频繁的修改配置文件并手动发布出去。之前需要修改配置文件时,我们需要: 把jar包通过FTP传回本地电脑 把新配置文件,压缩进jar包替换老配置文件 再把jar包通过ftp传回服务器 今天偶然发现 阅读全文
posted @ 2020-08-10 09:44 Ging 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 背景 公司正常的业务流程是生产服务器上部署的一个程序去读取数据库,并获取所有ip信息,启动socket连接,发送相关业务指令。 目前有一个需求,需要单独测试一个ip,这个单独的ip需要使用另外的程序测试,其他的ip使用原始生产程序测试。并且测试完毕,需要恢复这个ip由生产程序接管。 没有自动化运维脚 阅读全文
posted @ 2020-08-10 09:42 Ging 阅读(1482) 评论(0) 推荐(0) 编辑
摘要: 前言 Java集合部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,希望对大家起到一定的帮助。 Java集合 Java集合 说说Arraylist 与 LinkedList 区别? ArrayList的底层数据结构是数组 阅读全文
posted @ 2020-08-10 09:41 Ging 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 全字段排序和rowId排序 建表语句如下: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `add 阅读全文
posted @ 2020-08-10 09:40 Ging 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 前言 Java基础部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,希望对大家起到一定的帮助。 Java基础 什么是面向对象编程? 面向对象编程是指使用类作为代码组织的基本单元,并将封装、继承、多态作为代码设计和实现的基 阅读全文
posted @ 2020-08-10 09:39 Ging 阅读(392) 评论(0) 推荐(0) 编辑
摘要: delete删除数据原理 在InndoDB存储引擎中,delete删除操作是把需要删除的数据或者页标记为已删除,后面如果有需要,直接复用即可。这些被标记为已经删除的数据,看起来就像空洞一样。所以看起来虽然delete了,但是表文件大小并不会改变。 如果想删除这些空洞,达到收缩表空间的目的,可以使用a 阅读全文
posted @ 2020-08-10 09:37 Ging 阅读(1165) 评论(0) 推荐(0) 编辑
摘要: 背景 操作系统切换为Deepin以后,因为没有windows,各家的云笔记产品,几乎对Linux都没有很好的支持。 印象笔记,没有linux版本,web版本不支持markdown 为知笔记,需要收费,60元/一年,linux客户端的markdown支持不算优秀 有道云笔记,deepin应用商店有网页 阅读全文
posted @ 2020-08-10 09:35 Ging 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: MySQL内存结构-缓冲区 MySQL的缓冲区中有数据页,索引页,插入缓冲等等,这个角度是从页的功能来分类的。本小节从另一个视角关注这些页,如果从 是否被修改过(和磁盘不一致) 这个角度来区分这些页,那么页可以被分为干净的页和脏页。 干净页:内存中的数据和磁盘一致 脏页:内存中的数据和磁盘不一致 本 阅读全文
posted @ 2020-08-10 09:33 Ging 阅读(2348) 评论(0) 推荐(1) 编辑
摘要: 前言 在上一讲网络编程-关闭连接(2)-Java的NIO在关闭socket时,究竟用了哪个系统调用函数?中,我们做了个实验,研究了java nio的close函数究竟调用了哪个系统调用,答案是close,但在真实的测试代码中,其实我犯了一个小错误,在close之后并没有return,所以在测试clo 阅读全文
posted @ 2020-08-10 09:31 Ging 阅读(1947) 评论(0) 推荐(0) 编辑
摘要: 背景 许多小伙伴做网络编程时,会自然而然的去做应用层的心跳检测机制,如果问为什么要做心跳检测,大部分人会说保活,及时发现连接失效等等。这篇文章会结合TCP协议原理来分析,使用应用层做心跳检测的原因和必要性。 没有应用层心跳检测时 在没有应用层心跳检测时,我们如何发现对端应用程序崩溃/对端主机崩溃/主 阅读全文
posted @ 2020-08-10 09:30 Ging 阅读(1020) 评论(0) 推荐(0) 编辑
摘要: 背景 在上一讲网络编程-关闭连接-C/C++相关系统调用中,提到过,目前项目使用Netty框架来实现的网络编程,查看netty源码可以得知,netty最终是调用了java Nio的close接口做的关闭操作,那么想研究清楚这个close操作究竟做了什么,可以从两个方向入手,这两个方向也是从下至上的。 阅读全文
posted @ 2020-08-10 09:28 Ging 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 优化器生成最优执行计划需要考虑的因素 MySQL有一个优化器,专门负责生成最优的查询计划,生成最优查询计划可能考虑的因素有: 扫描行数 是否排序 是否需要回表 是否需要临时表 等等 在不同的因素作用下,生成的查询计划可能和我们预想的不同。 具体实例 实验前 先准备好表 CREATE TABLE `t 阅读全文
posted @ 2020-08-10 09:27 Ging 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 背景 在linux网络编程中,经常需要编写关闭socket的代码,比如心跳检测失败需要关闭重连;网络报异常需要关闭重连。但究竟关闭操作做了什么,却不太清楚。目前项目使用Netty框架来实现的网络编程,查看netty源码可以得知,netty最终是调用了java Nio的close接口做的关闭操作,那么 阅读全文
posted @ 2020-08-10 09:25 Ging 阅读(587) 评论(0) 推荐(0) 编辑
摘要: Change Buffer的处理过程 对非唯一的普通索引的新增或更新操作,如果索引B+树的需要新增或更新的数据页不在内存中,则直接更新change buffer,等到后面需要使用这个数据页(真正读到内存中来)的时候,再根据change buffer在内存中做merge合并操作。 Change Buf 阅读全文
posted @ 2020-08-10 09:24 Ging 阅读(1581) 评论(0) 推荐(1) 编辑
摘要: 前言 上一篇文章MySQL-InnoDB行锁中,提到过一致性锁定读和一致性非锁定读,这篇文章会详细分析一下在事务中时,具体是如何实现一致性的。 一致性读原理 start transaction和begin语句,并不是立即开启一个事务,事务是在第一条读语句执行时才建立的。如果需要立即开启事务,可以使用 阅读全文
posted @ 2020-08-10 09:22 Ging 阅读(636) 评论(0) 推荐(0) 编辑
摘要: InnoDB的锁类型 InnoDB存储引擎支持行锁,锁类型有两种: 共享锁(S锁) 排他锁(X锁) S和S不互斥,其他均互斥。 除了这两种锁以外,innodb还支持一种锁,叫做意向锁。 那么什么是意向锁?为什么需要意向锁呢? 考虑这种情况: SessionA:已经持有表t某一行的X锁,需要对行进行更 阅读全文
posted @ 2020-08-10 09:21 Ging 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 前言 在Linux性能分析-平均负载中,提到过一种导致平均负载升高的情况,就是有大量进程或线程等待cpu调度。 为什么大量进程或者线程等待CPU调度会导致负载升高呢? 当大量进程或者线程等待调度时,cpu需要更加频繁的切换任务,在切换任务的过程中,需要保存上一个任务的context到内核中,并且恢复 阅读全文
posted @ 2020-08-10 09:20 Ging 阅读(248) 评论(0) 推荐(0) 编辑