
每日总结
文章平均质量分 90
每天会针对一个小的的知识点进行整理总结,坚持就是胜利✌️
努力前行的小蜗牛
这个作者很懒,什么都没留下…
展开
-
git 恢复未add文件 执行了reset --hard
如果使用Jetbrains系列产品,那恭喜你,可以恢复,步骤:1. 项目右击,选择local history -> show history2. 选择恢复的时间点,右键,revert即可。如果你只依赖git,是无法恢复的,只能哭了......原创 2019-12-19 12:25:40 · 3155 阅读 · 3 评论 -
HashMap中容量为什么用2的幂次方,不用素数
众所周知,很多结构如Hashtable初始容量都用是11,用的素数,为了后期存数据的时候能后分布更均匀如果用合数,重新rehash后,之前在一组的数又会重新在一起,所以不分散,所以不采用HashMap为什么要求容量是2的幂次方呢?对,就用是之前在一组的数字,rehash之后会重新在一起。定义数字为n,容量为cap,cap为2的幂次方则一般取模运算为: n&(cap-1)举例...原创 2019-10-30 18:43:47 · 826 阅读 · 0 评论 -
找出int数字最高位的1对应的2幂次方
文章目录分析例子源码中的应用分析方法一:从左向右依次取该位bit,找到最高位1。复杂度是O(n), n为该数组的bit位方法二:将该数字的末尾全部置1,然后i - (i >>> 1)即可,复杂度O(1)数字1后面的值都设置为1算法: i |= (i >> 1); i |= (i >> 2); i ...原创 2019-10-29 15:58:41 · 994 阅读 · 0 评论 -
10G整数文件找出中位数或者第K大数
将10G整数分成2G读5次,读入内存中,每个数组归入对应的桶中:1)将int分为4Byte,取最高8位,分成256个桶(0-255)2)获取每个整数的高8位,归入对应的桶中3)读完2G,将255个桶数据放入磁盘中4)依次读完10G整数文件针对0-255个桶,从0开始累加桶中数据size,找出中位数所处的桶计为k1桶将k1桶中整数,按照次高位放入0-255个桶【1)-4)】,找到对应...原创 2019-10-28 15:34:55 · 936 阅读 · 0 评论 -
PriorityQueue源码分析
优先队列内部实现是是堆,结构是数组,使用堆排序初始化容量11,如果拆入数的时候,大于当前队列数组容量,则扩容扩容方案:如果当前数组小于64,则扩容一倍,如果大于,则扩容50%, 这用Arrays.copyOf将原有数组放到另一块新的空间内部实现堆排序主要靠两个函数:堆排序,父节点:i,两个儿子节点:2i+1、2i+2最大堆为例(可以comparator来自定义优先级):sift...原创 2019-10-28 12:07:52 · 180 阅读 · 0 评论 -
【leetcode】378. Kth Smallest Element in a Sorted Matrix
378. Kth Smallest Element in a Sorted Matrix378. Kth Smallest Element in a Sorted Matrix题目思路代码)378. Kth Smallest Element in a Sorted Matrix题目题目链接: https://leetcode.com/problems/kth-smallest-eleme...原创 2019-10-22 19:23:08 · 223 阅读 · 0 评论 -
Java Object.hashCode()源码分析
文章目录hashcode介绍hashCode源码分析参考hashcode介绍hashcode是Object中的函数,所有类都拥有的一个函数,主要返回每个对象的hash值,主要用于哈希表中,如HashMap、HashTable、HashSet。哈希码的通用约定如下:在java程序执行过程中,在一个对象没有被改变的前提下,无论这个对象被调用多少次,hashCode方法都会返回相同的整数...原创 2019-08-23 18:25:18 · 14187 阅读 · 0 评论 -
git 迁移代码库,将源代码库中代码迁移到一个新库中
适用于迁移一个库的某一分支到一个新库把一个库的某个分支迁移到一个新库的同一分支其实上述两个同理先行提示在迁移库时可以使用一下命令查看当前库的远程库连接情况:git remote -v如果只是将源本地库中的某一个分支迁移到目的库中,则需要将源本地库中的除了要迁移的分支保留,其他分支均删除这样只会迁移一个分支,不然本地库中的所有分支都会被迁移到目的库步骤进入源库目...原创 2019-08-21 17:45:20 · 1266 阅读 · 0 评论 -
[LeetCode] 1008. Construct Binary Search Tree from Preorder Traversal (java)
文章目录题目翻译思路代码题目Return the root node of a binary search tree that matches the given preorder traversal.(Recall that a binary search tree is a binary tree where for every node, any descendant of node....原创 2019-08-13 19:41:31 · 369 阅读 · 0 评论 -
linux下source sh ./ 执行脚本区别
命令执行用途文件要求执行过程sourcesource a.sh通常针对配置文件,执行source使生效,如.bashrc中export变量,则source .bashrc之后,当前terminal中可以使用该变量针对 a.sh, 当前用户不需要执行权限在当前shell内执行,使用变量与当前terminal一致,a.sh中对变量的修改,影响当前terminal中变...原创 2019-08-12 20:58:47 · 225 阅读 · 0 评论 -
select ... for update
Mysql InnoDB 排他锁用法: select … for update;例如:select * from goods where id = 1 for update;排他锁的申请前提:没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞。for update仅适用于InnoDB,且必须在事务块(BEGIN/COMMIT)中才能生效。在进行事务操作时,通过“for up...转载 2019-10-09 15:18:40 · 502 阅读 · 0 评论 -
Mock InjectMocks ( @Mock 和 @InjectMocks )区别
@Mock: 创建一个Mock.@InjectMocks: 创建一个实例,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。SomeHandler类中@Autowire了OneDependency类的对象,在写SomeHandler的test用例的时候要用到OneDependency对象,则需要将OneDependency Mock到SomeHandler中,注入到Some...原创 2019-08-26 17:07:58 · 745 阅读 · 0 评论 -
java Integer.bitCount源码分析
算法:统计整数的二进制表达式中的bit位为1的位数普通算法public int bitCount(int num) { int count = 0; do { if ((num & 1) == 1) { count++; } num>>=1; } while (num &g...转载 2019-09-06 11:04:29 · 260 阅读 · 0 评论 -
data.username must not be null pycharm 远程调试
因为重启pycharm远程调试配置丢失,用户名密码重新配置一下就可以了Preferences – Build, Execution, Deployment – Deployment发现用户名密码没了,所以重新写入即可...原创 2019-09-12 12:09:03 · 2886 阅读 · 0 评论 -
Java Object.getClass()源码分析
栈:Person对象引用堆:person实例对象,Person.class信息person实例对象:1)mark word:对象头,存放实例摘要信息,比如该对象的锁信息、hash值、线程信息等;2)kclass元数据类型指针,指向Person类型元数据的指针3)实例数据:对象的各种成员变量值Person.class信息Person.class类的信息老生代:Person类型元数...转载 2019-09-26 15:47:55 · 827 阅读 · 0 评论 -
位运算实现加减乘除四则运算
要用位运算来实现四则运算,不仅仅要知道&,|,~,^,<<,>>怎么做,还需要先掌握位运算的几个运算规律:1:~n=-(n+1),比如:~3=-42:获取整数n的二进制串中最后一个1:-n&n=~(n-1)&n3:去掉整数n的二进制串中最后一个1:n&(n-1)然后,我们就可以使用常规位运算并结合上面的运算规律来实现四则运算了。加法...转载 2019-10-09 10:48:51 · 414 阅读 · 0 评论 -
【leetcode】180. Consecutive Numbers
答案select Num as ConsecutiveNums from (select T.Num, max(T.Count) as Count from (select Num, (case when @pre <> (@pre := Num) then @i := 1 else @i := @i + 1 end) as Count from Logs, (select @i:=...原创 2019-10-11 19:38:05 · 189 阅读 · 0 评论 -
【leetcode】 178. Rank Scores
参考https://www.cnblogs.com/rever/p/7149995.html练习做完原创 2019-10-11 19:36:49 · 216 阅读 · 0 评论 -
【leetcode】1179. Reformat Department Table
文章目录答案case有input_expression没有input_expression组函数group bymysql总结讲解参考答案select id, max(case when month = 'Jan' then revenue end) as Jan_Revenue,max(case when month = 'Feb' then revenue end) as Feb_Rev...原创 2019-10-10 17:26:27 · 515 阅读 · 0 评论 -
linux crontab运行原理
工作流程主进程fork个子进程cron (A) 为守护进程,每分钟读取一下crontab中的配置,是否有要调度的进程,如果有,则放入任务队列中;执行该调度任务命令:A 先fork一个子进程 (B) 整体管理整个命令的执行,B 进程fork一个子进程 (C) 运行cron命令,如果该任务有输入,则 B 进程fork一个子进程 (D),D 进程将任务输入输出给 C 进程。D 进程不是必须的...原创 2019-10-10 11:09:43 · 1271 阅读 · 0 评论