- 博客(135)
- 资源 (6)
- 收藏
- 关注
原创 问题摘录
1. 一致性hash一致性hash算法分布式系统常用的宕机移除和新机器加入的算法把每个节点计算的hash值mod 2^31 - 1, 加入一个hash环为防止数据倾斜等问题,加入虚拟节点的概念, 每次都对新加入的节点虚拟化,使其尽可能均匀的分布在环上当有一个输入进来, 使用treemap找到下一个节点2. java有了基本类型的包装类为什么还要有基本类型我们都知道在Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如.
2020-12-24 23:45:06 181
原创 算法 - 常用技巧
动态维护区间352. 将数据流变为多个不相交区间https://leetcode-cn.com/problems/data-stream-as-disjoint-intervals/
2020-08-23 21:04:23 227
原创 生产者 - 消费者模型
1. 使用syncronize实现 static Object[] items = new Object[100]; static int takePoint = 0, putPoint = 0; static AtomicInteger cnt = new AtomicInteger(0); public synchronized static void produce(Object o) throws InterruptedException { w
2021-05-27 15:14:09 284 2
原创 Java应用JVM内存使用情况分析方法
方法一 通过JVM提供的内存分析命令具体步骤如下:①使用ps -ef命令查看java应用的进程pid。②输入命名查看JVM内存使用情况jmap:用来输出所有内存中对象的工具,常用用法:jmap -heap <pid> (打印heap的概要信息,GC使用的算法,heap的配置及JVM堆的使用情况)jmap -histo[:live] <pid> (打印每个class的实例数目,内存占用,类全名信息,live子参数加上只统计活的对象数量)jinfo:用来查看ja.
2021-05-25 17:36:47 1007
原创 Spring整合Mybatis Mapper接口
编程式给Spring注入Bean方法一,通过BeanDefinition来定义package com;import com.config.AppConfig;import com.model.User;import org.springframework.beans.factory.support.AbstractBeanDefinition;import org.springframework.beans.factory.support.BeanDefinitionB...
2021-04-13 08:55:34 220
原创 Bean生命周期
1. 生成BeanDefinition2. 合并BeanDefinition3. 加载类4. 实例化前5. 推断构造方法6. 实例化7. BeanDefinition的后置处理8. 填充属性9. 执行Aware -BeanNameAware - BeanClassLoaderAware - BeanFactoryAware10. 初始化前 a. ApplicationContextAwareProcessor...
2021-04-12 11:25:22 87
原创 TCP TIME_WAIT端口重用
端口重用 由于TCP客户端通讯结束后,主动发起关闭连接,会进入到TIME_WAIT状态。如果不进行回收,端口会占用60秒或更久,而动态端口数量有限(最多60000多个),耗尽后发起连接会报Cannot assign Requested Address。echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.confecho "net.ipv4.tcp_timestamp = 1" >> /etc/sysctl.co...
2021-04-02 08:55:13 815
原创 LeetCode 229场周赛 - 区间DP + 最长公共子序列
1770.Maximum Score from Performing Multiplication OperationsYou are given two integer arraysnumsandmultipliersof sizenandmrespectively, wheren >= m. The arrays are1-indexed.You begin with a score of0. You want to performexactlymoperat...
2021-02-27 21:48:22 215
原创 基于Wireshark HTTPS POST请求报文
本文基于Wireshark抓取https报文, 分析POST报文首先,抓取报文前,需要对Wireshark配置TLS通讯密钥,否则抓取不到,因为信息加密了,具体步骤可参考:https://blog.csdn.net/Enderman_xiaohei/article/details/99441895Wireshark抓包结果如下Frame 是wireshark自己定义的Ethernet II, 数据链路层, 以太网Internet Protocol, 网络层, IP层T
2021-02-21 22:20:52 4887
原创 DFS - 开数组记录路径 - Tree of Coprimes(hard) - Biweekly Contest 46
There is a tree (i.e.,a connected, undirected graph that has no cycles) consisting ofnnodes numbered from0ton - 1and exactlyn - 1edges. Each node has a value associated with it, and therootof the tree is node0.To represent this tree, you are ...
2021-02-21 10:23:34 194
原创 [算法] leetcode-228周赛 - 困难题 - 建图技巧
1761. 一个图中连通三元组的最小度数难度困难8收藏分享切换为英文接收动态反馈给你一个无向图,整数n表示图中节点的数目,edges数组表示图中的边,其中edges[i] = [ui, vi],表示ui和vi之间有一条无向边。一个连通三元组指的是三个节点组成的集合且这三个点之间两两有边。连通三元组的度数是所有满足此条件的边的数目:一个顶点在这个三元组内,而另一个顶点不在这个三元组内。请你返回所有连通三元组中度数的最小值,如果图中没有连通三元组,那么返回...
2021-02-20 21:28:59 174
原创 内部网关RIP协议和OSPF, 外部网关协议BGP
1. 路由表 在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。 查找路由表,根据目的网络地址就能确定下一跳路由器,这样做的结果是:IP数据报最终一定可以找到目的主机所在的网路...
2021-01-25 22:13:18 2902 1
原创 算法 - 数学 - 组合数 - 隔板法求组合数
一、求组合数二、隔板法 隔板法是組合數學的方法,用來處理n個無差別的球放進k個不同的盒子的問題。可一般化為求不定方程的解數,並利用母函數解決問題。 隔板法與插空法的原理一樣。 应用隔板法必须满足3个条件: 这n个元素必须互不相异; 所分成的每一组至少分得1个元素; 分成的组别彼此相异。基本例子 把10个相同的小球放入3个不同的箱子,每个箱子至少一个,问有几种情况? 分析: 10个相同的小球, 中间有9个空格可以插入板,...
2021-01-24 17:02:41 896
原创 java jar解压,替换.class,重新打包
#!/bin/shcd /APP/APPecho "当前工作目录"cp APP.jar APP.back.jarecho "备份APP.jar 到 APP.back.jar"pwdmkdir tempecho "创建临时文件夹"cp APP.jar tempecho "拷贝jar包到temp"cd tempjar -xvf APP.jarrm -f APP.jarmv ../APPlcgc/APPlcgc.class ./BOOT-INF/classes/com/APP/il...
2021-01-20 15:25:43 789 1
原创 JDK8_HashMap PUT和RESIZE操作
1. put操作源码 /** * Implements Map.put and related methods. * * @param hash hash for key * @param key the key * @param value the value to put * @param onlyIfAbsent if true, don't change existing value * @param evict.
2021-01-16 12:42:58 324
原创 HTTPS TLS 握手
整体原理:通讯双方在身份验证的基础上,协商出一次性的、随机的秘钥身份验证: PKI公钥基础设施协商、随机: TLS中间件生成一次性的、随机的秘钥,DH系列协议基于非对称加密技术协商出密钥使用分组对称加密算法,基于有限长度的秘钥将任意长度的明文加密传输AES算法, 密钥位数:16字节,24字节,32字节分组工作模式PKI身份验证证书签发过程服务方S向第三方机构CA提供其自己生成的公钥,用户信息给认证机构 CA机构对用户信息取hash值, 然后用自己的私钥对..
2021-01-04 20:22:03 122
原创 最长公共子序列转化为最长上升子序列
leetcodehttps://leetcode.com/problems/minimum-operations-to-make-a-subsequence/1713.Minimum Operations to Make a SubsequenceYou are given an arraytargetthat consists ofdistinctintegers and another integer arrayarrthatcanhave duplicates.In o...
2021-01-03 21:05:56 286 1
原创 注解式开发 - ConstraintValidator,框架级字段校验
例子: 如果存在某个字段为中文,框架直接返回报错annotation注解:import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.*;/** * validator 注解, 判断是否有中文 * 属性 allowBlank :是否允许为空。 * allowBlank为true时,空字符串会通过校验,反之,allowBlank为false时,不会通过校验
2020-11-20 10:15:04 788 3
原创 【操作系统】 - Operation System 总结
cpu组成: 运算器, 寄存器, 控制器, 缓存(Cache), 内存管理单元(MMU)连续内存分配:分区的动态分配 当一个程序准许运行在内存中时,分配一个连续的区间 分配一个连续的内存区间给运行的程序以访问数据 分区的动态分配策略首次适配 内容:现在想分配n字节,从低地址开始找,碰到的第一个空间比n大的空闲块就使用它。 要想实现首次分配,需要满足以下条件: 1.需要存在一个按地址排序的空闲块列表 2....
2020-11-03 14:37:20 761
原创 【操作系统】 - Operation System 第十二章 文件系统
12.1基本概念不同的操作系统,有不同的文件系统,还可能有多个文件系统一、文件系统与文件文件系统:一种用于持久性存储的系统抽象需要注意:一首音乐和一张图片都是一个文件,都是以文件的形式存放在硬盘上的,但是和桌面级不一样,但是读写命名创建的形式都是一样的。文件:文件系统中一个单元的相关数据在操作系统中的抽象二、文件系统的功能1、分配文件磁盘空间1)管理文件夹(那一块属于哪一个文件)2)管理空闲空间(哪一块是空闲的)3)分配算法(策略)2、管理文件集合1)定位文件及其内容用户如
2020-11-02 16:25:10 201
原创 【操作系统】 - Operation System 第十一章 死锁与进程通信
11.1死锁问题1、死锁现象出现的原因:进程并发运行11.2系统模型1、资源概念资源一旦是被使用状态,则其他的进程就不应该运用这个资源,有互斥性,如果没有互斥性,就不会产生死锁。 进程使用资源的有限的,资源恢复到空闲的情况。2、可重复使用的资源1)在一个时间只能一个进程使用且不能删除2)进程获得资源,后来释放有其他进程重用3)处理器,io通道,主和副存储器,设备和数据结构,如文件,数据库和信号量都可以看作是资源的一种形式4)如果每个进程拥有一个资源并且请求其他资源,死锁可能发生
2020-11-02 16:23:10 281 1
转载 【操作系统】 - Operation System 第十一章 - 死锁
来自:https://www.bilibili.com/video/BV1js411b7vg?p=782 系统模型 进程对资源的争夺才会产生死锁, 资源可以是CPU、内存、I/O等等。 当一个资源状态是free时,可以被一个进程get(获取), 资源就变成use/hold 状态,进程使用完资源后,需要release资源, 资源变回free状态。 资源状态如此往复循环,重复被其他进程使用。 资源状态: 死锁产生的情况: 资源分配图,用有向图...
2020-10-26 22:12:07 460
转载 基础技术 - 如果这篇文章说不清epoll的本质,那就过来掐死我吧!
本文主体转自https://zhuanlan.zhihu.com/p/63179839,加上了自己的理解和批注 从事服务端开发,少不了要接触网络编程。epoll作为linux下高性能网络服务器的必备技术至关重要,nginx、redis、skynet和大部分游戏服务器都使用到这一多路复用技术。 epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系...
2020-10-22 17:38:41 220
转载 基础技术 - 零拷贝技术
谈谈Linux的几种零拷贝技术和适用的场景 本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入:引文 在写一个服务端程序时(Web Server或者文件服务器),文件下载是一个基本功能。这时候服务端的任务是:将服务端主机磁盘中的文件不做修改地从已连接的socket发出去,我们通常用下面的代码完成:while((n=read(diskfd,buf,BUF_SIZE))>0)write(...
2020-10-22 16:44:23 218
原创 基础算法 - 树的直径
题目地址:https://leetcode-cn.com/problems/tree-diameter/1245. 树的直径难度中等48收藏分享切换为英文接收动态反馈给你这棵「无向树」,请你测算并返回它的「直径」:这棵树上最长简单路径的边数。我们用一个由所有「边」组成的数组edges来表示一棵无向树,其中edges[i] = [u, v]表示节点u和v之间的双向边。树上的节点都已经用{0, 1, ..., edges.length}中的数做了标记,每个节点上的标记都...
2020-10-15 16:54:10 797
原创 【操作系统】 - Operation System 第十章 信号量和管程
以下内容全部是B站 的陈老师视频的课程总结,https://www.bilibili.com/video/av6538245?p=73,感谢UP主感谢陈老师10.1 信号量和管程10.1.1 为什么需要信号量 回顾一下lock能解决并发问题中竞争条件(竞态条件)对资源的争夺 但是lock不能解决同步问题,需要更高级的方式实现同步(包括多线程共享公共数据的协调执行;互斥与条件同步的实现(互斥是指同一时间只能有一个线程可以执行临界区)) 同步的实现需要高层次的编程抽象(例如锁)...
2020-09-30 14:54:12 422 1
原创 【操作系统】 - Operation System 第九章 同步
9.1 同步注意事项:无论多个线程的指令序列怎样交替执行,程序都必须正常工作->多线程程序具有不确定性和不可重现的特点->不经过专门设计,调试难度很高不确定性要求并行程序的正确性->先思考清楚问题,把程序的行为设计清楚->切忌急于着手编写代码,碰到问题再调试9.2 一些概念(1)竞态条件Race condition系统缺陷:结果依赖于并发执行或事件的顺序:不确定性,不可重现避免竞态:让指令不被打断9.3 一些概念待补充完整参考资料https:
2020-09-30 14:46:48 445 1
原创 【操作系统】 - Operation System 第八章 CPU调度
8.1 背景 CPU调度8.1.1 上下文切换:切换CPU的当前任务,从一个进程/线程转换到另一个进程/线程; 但是切换之前要保护现场,保存当前进程/线程在PCB/TCP中的执行上下文(也就是CPU的状态); 切换任务,当然要读取下一个进程/线程的上下文。8.1.2 CPU调度:从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个进程/线程; 需要调度程序(挑选进程/线程的内核函数); 需要考虑的问题是 调度的时机。8.1.3 在进程/线程生命周期的什么时候进行调度? ..
2020-09-30 14:44:52 421
原创 【操作系统】 - Operation System 第七章 进程和线程
7.1 进程的定义 进程(process)描述 进程状态(state) 线程(thread) 进程间通信(inter-process communication) 进程互斥与同步 死锁(deadlock)(1)进程的定义 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。7.2 进程的组成(1)一个进程应该包括 程序的代码 程序处理的数据 程序计数器的值,指示下一条将运行的指令 一组通用的寄存器的当前值,堆,栈...
2020-09-30 14:25:46 259
原创 【操作系统】 - Operation System 第六章 页面置换算法
6.1 最优页面置换算法 目录(1)功能目标 功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。 目标:尽可能减少页面的换入换出次数(即缺页中断的次数)。把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理的指导下依据过去的统计数据来进行预测。 页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键(time-critical)的应用进程。实现方法是,在页表中添加锁定标志位(lock...
2020-09-30 14:15:01 183
原创 【操作系统】 - Operation System 第五章 虚拟内存
5.1 虚拟内存的起因(1)目录 起因 覆盖技术(早期)/交换技术(早期)/虚存技术 虚拟内存技术:目标/程序局部性原理/基本概念/基本特征/虚拟页式内存管理(2)起因 经常出现内存不够了。程序规模的增长大于存储器容量的增长。 理想的存储器:更大,更快,更便宜,非易失性存储。 实际的存储器: 把硬盘的空间也用上(扮演内存的作用) 不常用的放在硬盘上,常用的放在内存上。(3)在计算机系统中,尤其是在多道程序运行的环境中,可能会出现内存不够...
2020-09-30 11:36:42 155
原创 【操作系统】 - Operation System 第四章 非连续式内存分配
4.1 非连续内存分配:分段 (1)非连续内存分配的原因 连续内存分配(上一节内容)的缺点: 分配给一个程序的物理内存是连续的 内存利用率低 有外碎片/内碎片问题 非连续内存分配的优点 分配给一个程序的物理内存是非连续的 更好的内存利用和管理 允许共享代码和数据(共享库等) 支持动态加载和动态链接 非连续内存分配的缺点 如何建立虚拟地址和物理地址之间的转换 软件方案(开销大) 硬件方案 两种硬件方案...
2020-09-29 16:41:56 236
原创 【操作系统】 - Operation System 第三章 连续式内存分配
3.1 计算机体系结构及内存分层体系 (1)计算机体系结构CPU 内存 I/O (2)操作系统在内存管理要完成的目标 抽象:逻辑地址空间 保护:独立地址空间 共享:访问相同内存 虚拟化:更多的地址空间 (3)操作系统实现内存管理目标的手段 程序重定位 分段 分页 虚拟内存 按需分页虚拟内存3.2 地址空间与地址生成 (1)地址空间的定义 物理地址空间:硬件支持的地址空间 逻辑地址空间:一个运行的程序...
2020-09-29 15:47:54 199
原创 mysql 计数器设计, update 锁表情况测试
测试环境数据库的隔离级别为 rc(READ COMMITTED) 设置数据库隔离级别show variables like '%isolation';SET session TRANSACTION ISOLATION LEVEL READ COMMITTED;SET session TRANSACTION ISOLATION LEVEL REPEATABLE READ;set global transaction isolation level REPEATABLE REA...
2020-09-10 17:30:28 261
原创 数据库 - 普通索引\唯一索引 和 change buffered\redo log
假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证不会写入两个重复的身份证号。如果市民系统需要按照身份号查询信息,就会执行类似这样的SQL语句:select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz'; 所以,你一定会考虑在id_card字段上建索引。 由于身份证号字段比较大,我不建议吧身份证号当做主键,那么现在有两个选择,要么给id_card字段创建索引,要么创建一个普通索引。如果...
2020-09-01 10:30:36 157
原创 JAVA - 线程池问题汇总
1. JAVA线程是内核级线程,还是用户级线程 "内核控制线程"是对java线程的描述。 在windows操作系统下, 启动java线程池, 资源监控是能感知到线程的创建的, 所以java线程不是纯用户级线程。 证明java线程不是纯粹用户级线程:java中有个fork join框架,这个框架是利用多处理技术进行maprudce的工作,也就证明了内核是可以感知到用户线程的存在,因此才会将多个线程调度到多个处理器中。还有,java应用程序中的某个线程阻塞,是不会引起整个进程的...
2020-08-14 17:29:58 176
SecureCRT8.0破解版(含注册机+64位+32位).rar
2017-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人