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