摘要:
CAS的全称是CompareAndSwap,比较并交换,是Java保证原子性的一种重要方法,也是一种乐观锁的实现方式。 它需要先提前一步获取旧值,然后进入此方法比较当下的值是否与旧值相同,如果相同,则更新数据,否则退出方法,重复一遍刚才的动作。由此可见,CAS方法是非堵塞的。CAS方法需要三个参数, 阅读全文
摘要:
(1)调用System.gc时,系统建议执行Full GC,但是不必然执行 (2)老年代空间不足——————比如连续大对象直接进入老年代 (3)方法区空间不足 (4) CMS GC时出现promotion failed和concurrent mode failure (5)在执行minor gc的时 阅读全文
摘要:
什么是事务? 事务是一个或一组数据库操作的集合。 事务的ACID 原子性:事务要么都做,要么都不做。如果有一个操作执行失败,其余操作必须取消执行。 一致性:事务必须从一个一致性状态变到另一个一致性状态,它和原子性是密不可分的。如果一个事务是将A的值转移到B,那么B增加的同时A必须得减少一致的数量 隔 阅读全文
摘要:
上午在实验室看书,师弟让我帮忙解决个项目上的问题,问题不难,于是我教他抓包解决,让他电脑下了fiddler不过却显示不出来请求,我尝试了一下也是如此,过滤器也没开,突然意识到可能是360的问题,因为fiddler是通过http代理的方式,360很可能阻止第三方软件对浏览器代理,于是关掉360,重启浏 阅读全文
摘要:
题目:如何实现一个栈,既存在基本的push pop操作,又可以有getMin操作,注:元素均是int型 原始方法:维持一个变量,使之保存入栈的最小值,当第一个最小值出去后,遍历剩下的栈元素并更新最小值变量,这种算法pop的时间复杂度是O(n),其他操作的时间复杂度都是O(1),空间复杂度是O(1); 阅读全文
摘要:
对象由多部分构成的,对象头,属性字段、补齐区域等。所谓补齐区域是指如果对象总大小不是4字节的整数倍,会填充上一段内存地址使之成为整数倍。 后面两个很好理解,今天我主要想总结一下对象头: 对象头这部分在对象的最前端,包含两部分或者三部分:Mark Words、Klass Words,如果对象是一个数组 阅读全文
摘要:
一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表t_mobilesms_11(表记录数为6万条): 我们为userId, mobile, billMonth三个字段添加上联合索引! 然后使用 explain 查看执行计划来观察索引利用情况: 1.查询条件为 userid 可以通过ke 阅读全文
摘要:
1、InnoDB支持事务,MyISAM不支持,也就是说MyISAM不支持事务回滚操作,这个功能可能是致命的 2、InnoDB支持行锁,MyISAM只支持表锁,不过InnoDB的行锁是建立在索引之上的,也就是说如果索引未命中,那么此次操作还是会降级到表锁。如uid为索引 update t_user s 阅读全文
摘要:
上面这段话是AQS源码的一段注解,意思是使用AQS实现一个同步器的话需要覆盖实现上面li标签中的这些方法,并且使用getState、setState、compareAndSetState这几个方法来对状态进行操作。 如果你对JDK源码较为熟悉的话,你会发现AQS(AbstractQueuedSync 阅读全文