ReZero's Utopia.

ReZero's Utopia.

Everything is permitted.

Leet-Code
1234567891011121314151617181920212223242526272829303132333435363738//Given a 2D binary matrix filled with 0's and 1's, find the largest square cont//aining only 1's and return its area. //// Example: //// //Input: ////1 0 1 0 0//1 0 1 1 1//1 1 1 1 1//1 0 0 1 0////Output: 4// Related Topics Dynami...
Algo tips
Binary Search123456789101112131415int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { int mid = left + (right - left) / 2; if(nums[mid] == target) return mid; else if (num...
TCP
TCP/IP网络连接 注意网络状态的变化 12syn_sent -> established -> fin_wait1 -> fin_wait2 -> time_wait > closedlisten -> syn_rcvd -> established -> closed_wait -> last_ack =======> closed 三次握手 SYN 失败 RTO变化:2**(cat /proc/sys/net/ipv4/tcp_syn_retries[即重传次数上限]) SYN-ACK 失...
Java HashMap & Concurrent Hash Map
为啥拉链用尾插不用头插? jdk 1.7 用的头插,但头插的问题就是resize:因为hash取值后放置是从后往前(头插,逆序链表方向)的,但是在resize时会重计算hash,此时是顺序遍历方向,那么就可能出现一开始A头插在B前,rehash时B后进行rehash导致B头插在A前。这样AB的顺序resize后就不同了。这样就会使得多线程时对引用的指向调整有问题,有可能造成循环链表了。尾插法的顺序和rehash时遍历的顺序一致自然就不会有这个问题。 Collections.synchronizedMap 内部维护了一个 map 用来引用需要改造的map,通过加 mutex 排他...
Mysql InnoDB
Mysql InnoDB InnoDB In-Memory Structures1、Buffer Pool: 未落盘前数据的缓存位置 - LRU,链表 Change Buffer: 要修改数据不在内存中时对应页修改的记录位置 记录到 Change Buffer时,同时记录 redo log,然后再慢慢把数据 load 到内存,load 过来后,再把 Change Buffer 里记录的修改,应用到内存(BufferPool)中,这个动作叫做 merge;而把内存数据刷到磁盘的动作,叫 purge: change buffer 只应用于二级索引(辅助索引),因为聚簇索引是唯一的,即每...
(转) JVM
本文内容笔记主要来自 mashibing: http://www.mashibing.com/ 以及深入理解JVM虚拟机 以及深入拆解Java虚拟机(郑雨迪)极客时间 https://time.geekbang.org/column/article/41245 编译在 HotSpot 里面,上述翻译过程有两种形式: 第一种是解释执行,即逐条将字节码翻译成机器码并执行; 第二种是即时编译(Just-In-Time compilation,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行。 Java 字节码基本类型在 Java 中,正无穷和负无穷是有确切的值,在内存中分别等同...
(转) Mysql 索引
索引为什么采用 B+ tree Hash不支持范围查询 二叉树树高很高,只有B树跟B+有的一比。 B树一个节点可以存储多个元素,相对于完全平衡二叉树整体的树高降低了,磁盘IO效率提高了。 而B+树是B树的升级版,只是把非叶子节点冗余一下,这么做的好处是为了提高范围查找的效率。提高了的原因也无非是会有指针指向下一个节点的叶子节点。 explain索引命中id is null 和 id = 1 都能命中索引 (除此之外的大多都不能命中索引,比如 负向 != 比较 > < 范围 between 等) 但是 id is null or id = 1 还是触发 全表扫描(ty...
(转)Mysql Transaction
MySql Transaction事务如何保证 原子性: undo log binlog记载的是update/delete/insert这样的SQL语句,而redo log记载的是物理修改的内容(xxxx页修改了xxx)。即redo log 记录的是数据的物理变化,binlog 记录的是数据的逻辑变化。 binlog的作用是复制和恢复而生的。 主从服务器需要保持数据的一致性,通过binlog来同步数据。 如果整个数据库的数据都被删除了,binlog存储着所有的数据变更情况,那么可以通过binlog来对数据进行恢复。而redo log 存储的是物理数据的变更,如果我们内存的数据已经...
(转) Redis 基础知识笔记记录
文章笔记参考链接来自作者 敖丙 开源项目:https://github.com/AobingJava/JavaFamily 以及 Redis 设计与实现 以及 钱大的 Redis 深度历险 Redis 常见应用 记录帖子的点赞数、评论数和点击数 (hash)。 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。 记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。 记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。 记录帖子的相关...
avatar
ReZero
大屁水饺的理想国.