- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 mysql 可重复读。
一、可重复读我们先看看现象,再分析原理。我的mysql版本是5.5。下面是一张表,只有一条数据,并且我开启了事物此时,另一个事物将record加1,因此我在开启一个命令行客户端,执行下面的命令:成功加1之后,实际上,数据库中record肯定是2。然后回到之前的客户端,再查一次:没毛病,record还是1,果然是可重复读。有些人以为mysql的可重复读是通过行锁实...
2018-07-26 15:19:41 4164
原创 看看java源码中那些引人深思的写法_no.1
案例一:在jdk Hashmap的源码中,有一段如下:相信看过Hashmap源码的人都知道,table其实就是hash桶数组,然后每一个桶后面是链表,对于jdk8,过长的情况下为红黑树。但是我们今天关注的重点是transient这个关键字,As you know,被transient修饰的字段不能被序列化。为什么不能被序列化,这个问题跟hashcode有关系。在回答这个问题之前...
2018-07-26 00:10:44 372
原创 记一次sql删除重复数据的经历
来看看问题,表结构如下:可能是前台的代码有问题,表单重复提交,导致同一个用户(user_account)对同一个商品(sku_id)多次提交了重复的内容(content)。现在需要对重复的内容去重,即每一个用户,每一个商品只保留一条不同的内容。条件是: 给定指定的sku_id,(10063,10061,10064)。 保留主键id最大的一条。...
2018-07-24 10:17:28 265
原创 如何写好一个线程池(java)
在应用中,一个线程池工具类,需要些什么单例,而且是线程安全的单例线程异常处理,当线程在实际执行过程中,如果出现异常,起码得记个log吧线程池的设置,核心线程大小,阻塞队列,最大线程大小/** * 线程池工具类 */public class ThreadPoolUtils { //核心线程数 private static final int CORE_POOL_...
2018-07-30 18:58:52 1160
原创 算法-LeetCode-整数的二进制表示中1的个数
题目输入一个,输出该数二进制表示中1的个数。 其中负数用补码表示。 说明:对于负数的二进制码,比如-1(由于java中int 为4个直接,总共32位,这里方便表示只取8位) 原码:-1=1000 0001 (最高位为符号位,负数用1表示) 反码:-1=1111 1110 (除了最高位的符号位,其余的全部取反) 补码:-1=1111 1111 (把反码加一,则为补码) ...
2018-07-30 16:03:29 2214
原创 算法-LeetCode-跳台阶
题目一一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果) 解法:这题的解法,主要思路是递归,首先假设第一次跳1级,那么剩下的n-1级的跳法是多少种? 不知道,但是我们假设是x种跳法,如果第一次跳2级,我们同样假设剩下的n-2中跳法有y种。x+y就是总数。那么现在的问题就变成了, 求该青蛙跳上一个n-1级的台阶总共有多少...
2018-07-30 15:09:21 2312
原创 使用git bash管理你的代码
之前在一家创业公司工作,由于my head一直用git bash来管理代码,而不喜欢用图形化的工具,受之影响,所以一直以来都习惯了敲命令来解决。这里就由浅入深的讲讲使用命令在玩git。git clone 毫无疑问,第一步肯定是下载代码(git config自己的email和username就不讲了)github上面有很多的开源项目,这里找的是java算法实现的一个开源项目。地...
2018-07-23 21:16:20 1035
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人