随笔分类 -  2018~2022归档

学生时代
摘要:开不了口 对业务一无所知的时候,最忌讳的大概就是闷头自己啃代码了。 一段匪夷所思的代码,从Java底层到框架API全都研究透了,可能还是不知道它是干嘛的,不如问问作者,两分钟搞懂,不必去纠结他的实现细节。 尴尬的是,有时候作者也不知道这是干嘛的,时间久远,文档不全... 最要命的是作者已经离职了.. 阅读全文
posted @ 2021-04-06 20:26 CofJus 阅读(58) 评论(0) 推荐(0)
摘要:初来乍到 入职第一天,领了本破烂ThinkPad(和自己的同模具..),战战兢兢,对着新人文档从jdk1.8开始配置环境。 打开项目满目飘红,依赖下不来,找公司的老同志要了份公司内部的maven配置文件,解决。 花了一会儿功夫理解了DEV、QA和PRD的区别,被告知可以在DEV随便乱搞(bushi) 阅读全文
posted @ 2021-03-30 15:00 CofJus 阅读(59) 评论(0) 推荐(0)
摘要:1 Lambda表达式 Java8 新特性 1.1 从匿名内部类到Lambda **匿名内部类的作用:**当一个内部类只需为其创建一次对象,且以后也不会再被用到,就可以使用匿名内部类简化代码编写。 **例子:**创建线程。 new Thread(new Runnable() { @Override 阅读全文
posted @ 2021-01-28 16:42 CofJus 阅读(194) 评论(0) 推荐(0)
摘要:套接字类型与协议设置 创建套接字 #include <sys/socket.h> /* 成功时返回文件描述符,失败时返回-1 */ int socket(int domain, int type, int protocol); 协议族(Protocol Family) **PF_INET:**IPV 阅读全文
posted @ 2020-12-02 13:28 CofJus 阅读(75) 评论(0) 推荐(0)
摘要:协议的内容 消息的类型 请求消息 响应消息 消息的语法/格式 消息中有哪些字段 字段如何描述 字段的语义 规则 进程应该什么时候,怎样发送消息 HTTP连接的两种类型 非持久性连接 HTTP 1.0 持久性连接 HTTP 1.1 无流水:客户端收到前一个响应之后才发送新的请求,每个对象使用1RTT 阅读全文
posted @ 2020-11-22 17:00 CofJus 阅读(87) 评论(0) 推荐(0)
摘要:MySQL - B-Tree索引 InnoDB使用B+Tree实现其索引。 关于B-Tree 1B-Tree索引 数据库中B+Tree的高度一般在2-4之间,即查找某一键值的行记录时最多进行2-4次IO。 InnoDB存储引擎中页的大小为16KB,一般表的主键类型为INT(占用4个字节)或BIGIN 阅读全文
posted @ 2020-10-31 21:28 CofJus 阅读(277) 评论(0) 推荐(0)
摘要:1多路平衡查找 1.1分级存储 计算机的二级存储系统:内存和外存 内存容量小速度快,外存容量大速度慢。 减少I/O:内存与外存的访问速度相差悬殊,故应该尽可能地减少不同存储级别之间地数据传输。 外存的特性:读取物理地址连续的一千个字节,与读取单个字节花费的时间几乎没有区别。 所以,系统从磁盘读取数据 阅读全文
posted @ 2020-10-18 20:59 CofJus 阅读(366) 评论(0) 推荐(0)
摘要:1MySQL架构与历史 1.1MySQL逻辑架构 1.1.1连接管理与安全性 **每个客户端连接都会在服务器进程中拥有一个线程。**这个连接的查询只会在这个单独的线程中执行。 服务器会负责缓存线程,因此不需要为每个新建的连接创建或销毁线程。 **线程池(Thread-Pooling):**可使用池中 阅读全文
posted @ 2020-10-18 09:24 CofJus 阅读(106) 评论(0) 推荐(0)
摘要:回溯算法的定义: 在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在 阅读全文
posted @ 2020-09-15 22:31 CofJus 阅读(1363) 评论(0) 推荐(0)
摘要:1.结构 单链表和向量实现难度低,维护容易却查找效率低,AVL树、红黑树等高级数据结构效率高但较为复杂,难以维护。 SkipList的实现较红黑树简单得多,而且同时保证了查询和维护等操作平均仅需O(logn)时间。 不难看出,跳表的结构大致可以被描述为:带索引的有序的链表 底层的链表存储了所有数据, 阅读全文
posted @ 2020-09-02 23:10 CofJus 阅读(452) 评论(0) 推荐(0)
摘要:• 根节点枚举 ○ 为保证一致性,所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的。 ○ 现在可达性分析算法耗时最长的查找引用链的过程已经可以做到与用户线程一起并发,但根节点枚举始终还是必须在一个能保障一致性的快照中才得以进行。 ○ 虚拟机直接得到哪些地方存在着对象:使用一组称为OopMap的 阅读全文
posted @ 2020-08-17 15:42 CofJus 阅读(205) 评论(0) 推荐(0)
摘要:• 引用计数法:在Java领域,至少主流的Java虚拟机里面都没有选用引用计数算法来管理内存,主要原因是,这个看似简单的算法有很多例外情况要考虑,必须要配合大量额外处理才能保证正确地工作,譬如单纯的引用计数就很难解决对象之间相互循环引用的问题。 • 可达性分析 ○ 通过一系列称为“GCRoots”的 阅读全文
posted @ 2020-08-03 15:03 CofJus 阅读(182) 评论(0) 推荐(0)
摘要:• 运行时数据区 • 程序计数器 ○ 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 ○ 为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们称这类 阅读全文
posted @ 2020-08-02 08:29 CofJus 阅读(87) 评论(0) 推荐(0)
摘要:剑指Offer中的动态规划除了一题hard(正则表达式匹配)都比较简单,要是面试只考到这种程度就好了... 连续子数组的最大和 这道题可以作为线性dp的模板。 用dp[i]表示以元素nums[i]为结尾的连续子数组最大和。 当以nums[i-1]为结尾的数组和(dp[i-1])大于0,对于以nums 阅读全文
posted @ 2020-07-31 21:35 CofJus 阅读(205) 评论(0) 推荐(0)
摘要:题目链接 1.并查集 赤裸裸的并查集,做这道题就是冲着并查集去的。 按秩求并+路径压缩,维护一个count表示不相交集合森林里树的棵数 class Solution { public: int *pre; int findCircleNum(vector<vector<int>>&M) { int 阅读全文
posted @ 2020-07-05 09:57 CofJus 阅读(216) 评论(0) 推荐(0)
摘要:1470. 重新排列数组 时间O(N) 空间O(N) class Solution { public: vector<int> shuffle(vector<int>& nums, int n) { vector<int> res; int i=0; int j=n; for(i=0;i<n;++i 阅读全文
posted @ 2020-06-08 15:21 CofJus 阅读(129) 评论(0) 推荐(0)
摘要:并查集(Disjoint Sets),直译即不相交集。 等价关系 离散数学中对等价关系的定义:满足自反性、对称性和传递性的关系。 集合A,∀(a,b),a,b∈A,满足aRb,则称R为A上的关系,若R满足以上三种性质,则为等价关系。 数学上的定义不必过多解释,只需知道,等价关系是用来对集合中的元素分 阅读全文
posted @ 2020-06-01 20:06 CofJus 阅读(1152) 评论(0) 推荐(1)
摘要:5424. 数组中两元素的最大乘积 理解错误,无脑暴力了一发居然过了 class Solution { public: int maxProduct(vector<int>& nums) { int res=0; for(int i=0;i<nums.size()-1;++i) { for(int 阅读全文
posted @ 2020-05-31 17:24 CofJus 阅读(142) 评论(0) 推荐(0)
摘要:LeetCode 1137 第 N 个泰波那契数 递归tag,类似斐波那契,递归解法很简洁 1 class Solution { 2 public: 3 int tribonacci(int n) { 4 if(0==n) 5 return 0; 6 else if(1==n) 7 return 1 阅读全文
posted @ 2020-05-24 22:48 CofJus 阅读(146) 评论(0) 推荐(0)
摘要:控制反转(Ioc) Ioc不是一种实实在在的技术,只是一种设计思想。 面向对象编程中,对象之间不可避免且必要地存在着耦合,但过度耦合会导致代码难以维护。 一般来说,当一个对象需要获取另一个对象,他就需要在自身的代码中显式地实例化一个该对象,比如 Object object = new Object( 阅读全文
posted @ 2020-05-14 17:02 CofJus 阅读(211) 评论(0) 推荐(0)