02 2018 档案

由CopyOnWriteArrayList类的set方法引发对volatile深入理解
摘要:转载自:http://ifeve.com/copyonwritearraylist-set/ http://ifeve.com/java-memory-model-4/ http://tech.meituan.com... 阅读全文

posted @ 2018-02-28 23:48 silyvin 阅读(604) 评论(0) 推荐(0) 编辑

CopyOnWriteArrayList 的set为什么要复制?扩容为什么一个一个来,而不是1.5倍
摘要:扩容可以理解,set为什么要复制?参考:CopyOnWriteArray的使用ArrayList 的一个线程安全的变体,其中所有可变操作(添加、设置,等等)都是通过对基础数组进行一次新的复制来实现的。 这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时... 阅读全文

posted @ 2018-02-28 23:34 silyvin 阅读(525) 评论(0) 推荐(0) 编辑

copyonwrite arraylist
摘要:(一 mysql mvcc)有点像mysql的mvcc,给你个历史数据,我写的时候加锁,确保最终一致性读-快照读 写-当前读(二 ReadWriteLock)与jdk读写锁有一些区别jdk读写锁 读与写相互阻塞,仅读读不阻塞而这个读不阻塞写,写不阻塞读,仅写写阻塞... 阅读全文

posted @ 2018-02-28 22:53 silyvin 阅读(223) 评论(0) 推荐(0) 编辑

spring boot 定时任务
摘要:https://www.jianshu.com/p/ef18af5a9c1d项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态。一般来说,为了防止... 阅读全文

posted @ 2018-02-27 14:36 silyvin 阅读(178) 评论(0) 推荐(0) 编辑

子线程异常抛出 及 主线程事务回滚
摘要:http://blog.csdn.net/mynameismt/article/details/51363120多线程与事务回滚业务模型期望的结果是这样的,检测子线程的异常情况,如果发生异常,主线程回滚,否则提交大家都知道runnable有以下特点: ... 阅读全文

posted @ 2018-02-26 23:25 silyvin 阅读(4313) 评论(0) 推荐(0) 编辑

一次子线程事务回滚实践笔记-编程式事务
摘要:(一)问题的引出、主要解决手段在线程中使用 batchupdate ,中的每一条记录都会自动的commit(但仍使用一个数据库连接会话,有点像hibernate一级缓存的概念,多个事务,一个会话),如果有异常,则只有异常的数据执行失败,其他数据不会rollback,并... 阅读全文

posted @ 2018-02-26 23:24 silyvin 阅读(3445) 评论(0) 推荐(0) 编辑

mysql 索引优化 实战概述
摘要:https://www.cnblogs.com/hephec/p/4557053.html 曾经偷偷的面试了两个单位,都提到了Mysql的优化问题,所以以后要多多学习数据库的优化知识了。建设数据库的优化大概主要就是索引的优化了吧,因为我们不可能修改数据结构的情况下,提高数据库的查询效率似乎也只能用索 阅读全文

posted @ 2018-02-17 23:48 silyvin 阅读(276) 评论(0) 推荐(0) 编辑

MyISAM和InnoDB的主要区别和应用场景
摘要:http://blog.csdn.net/aaa123524457/article/details/54375341 主要区别: 1).[事务]MyISAM是非事务安全型的,而InnoDB是事务安全型的,默认开启自动提交,宜合并事务,一同提交,减小数据库多次提交导致的开销,大大提高性能。 2).[锁 阅读全文

posted @ 2018-02-17 19:27 silyvin 阅读(324) 评论(0) 推荐(0) 编辑

hibernate & mybatis 比较
摘要:JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结第六方面:总结对于总结,大家可以到各大java论坛去看一看相同点:Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFa... 阅读全文

posted @ 2018-02-17 18:24 silyvin 阅读(156) 评论(0) 推荐(0) 编辑

explain 索引实践
摘要:(一)使用explain查看是否使用索引主要是以下这些列: type: key: extra: 排序时无法使用到索引时 不清楚 表: 以下蓝色为使用索引,红色为未使用索引 主键:user_foot_id type-const key-primary 不加索引: type-all key-null e 阅读全文

posted @ 2018-02-14 16:20 silyvin 阅读(145) 评论(0) 推荐(0) 编辑

join left right inner full 区别
摘要: 阅读全文

posted @ 2018-02-14 15:34 silyvin 阅读(127) 评论(0) 推荐(0) 编辑

索引基本功 聚簇索引与非聚簇索引区别,各种索引的区别
摘要:和刚入门的菜鸟们聊聊--什么是聚簇索引与非聚簇索引 https://www.cnblogs.com/auxg/p/Cluster-and-NonCluster-index.html 今天我们来聊一聊关于 聚簇索引和非聚簇索引的问题; 刚开始学数据库SQL的时候,就知道有主键啊(Primary-key 阅读全文

posted @ 2018-02-14 14:19 silyvin 阅读(2042) 评论(0) 推荐(0) 编辑

left join 要点
摘要:总的来说,left join的性能优化(尤其还涉及到排序)是个比较复杂、系统的问题,涉及到 驱动表 索引 的内在实现,仅能在以下三的有所关注: 1. 连接字段编码一致 悲剧:https://www.cnblogs.com/jarjune/articles/7912722.html 2. 认清主表作相 阅读全文

posted @ 2018-02-13 17:02 silyvin 阅读(776) 评论(0) 推荐(0) 编辑

会话和事务的区别
摘要:http://blog.csdn.net/jiankunking/article/details/23818743 一个会话可以启动多个事务,会话是session,指一次连接。 事务是指一个操作单元,要么成功,要么失败,没有中间状态。 ... 阅读全文

posted @ 2018-02-13 16:36 silyvin 阅读(1026) 评论(0) 推荐(0) 编辑

springboot 获取hibernate 的 SessionFactory
摘要:注入beanpackage cn.xiaojf;import cn.xiaojf.today.data.rdb.repository.RdbCommonRepositoryImpl;import org.springframework.boot.SpringAppli... 阅读全文

posted @ 2018-02-13 15:13 silyvin 阅读(3703) 评论(0) 推荐(0) 编辑

hibernate 一级缓存实践
摘要:@Transactional public Tao testHibernateCache() { Tao tao = taoDao.findOne(1); tao.setCol2("new"); tao = ta... 阅读全文

posted @ 2018-02-13 14:06 silyvin 阅读(179) 评论(0) 推荐(0) 编辑

三次请求(读-改-读)引出nibernate 一级缓存
摘要:http://blog.csdn.net/an_2016/article/details/52088712Hibernate之缓存详解Hibernate中提供了两级缓存,一级缓存是Session级别的缓存,它属于事务范围的缓存,该级缓存由hibernate管理,应用程... 阅读全文

posted @ 2018-02-13 11:23 silyvin 阅读(168) 评论(0) 推荐(0) 编辑

rc级别 避免脏读的实现(LBCC & MVCC)
摘要:两种方式: LBCC和MVCC 先看LBCC: 从此隔离级别效果入手:事务只能读其他事务已提交的的记录。数据库事务隔离级别的实现,InnoDB 支持行级锁,写时加的是行级排他锁(X lock),那么当其他事务访问另一个事务正在update (除select操作外其他操作本质上都是写操作)的同一条记录 阅读全文

posted @ 2018-02-13 11:13 silyvin 阅读(1592) 评论(0) 推荐(0) 编辑

乐观锁和 MVCC 的区别?
摘要:个人以为MVCC也是乐观锁的一种形式https://www.zhihu.com/question/27876575 阅读全文

posted @ 2018-02-13 11:07 silyvin 阅读(167) 评论(0) 推荐(0) 编辑

read-uncommited 下脏读的实现
摘要:mysql(InnoDB)事务隔离级别(READ UNCOMMITTED) 与 锁 https://segmentfault.com/a/1190000012654564 相同类型的还有 看到了吧读取UNCOMMITTED事务也不被排他锁(排他锁将阻止当前事务读取已被修改但未被其他事务提交的行)阻止 阅读全文

posted @ 2018-02-13 11:05 silyvin 阅读(221) 评论(0) 推荐(0) 编辑

MySQL 加锁处理分析【重点】
摘要:http://hedengcheng.com/?p=771 类似的文章:https://www.cnblogs.com/yelbosh/p/5813865.html 1.解释了为什么update insert delete 也属于当前读 2.分9种情况解释了rc rr级别下,当前读在mysql中是如 阅读全文

posted @ 2018-02-12 15:52 silyvin 阅读(202) 评论(0) 推荐(0) 编辑

Next-key locking是如何解决幻读(当前读)问题的
摘要:http://blog.51cto.com/74567456/1887690 类似的文章:https://www.cnblogs.com/zhoujinyi/p/3435982.html 总结: 1. 通过实践阐述了gap lock 的开启与关闭: A. 将事务隔离级别设置为RC B. 将参数inn 阅读全文

posted @ 2018-02-12 12:58 silyvin 阅读(3924) 评论(0) 推荐(1) 编辑

spring ioc
摘要:假定:实例化一个对象应当是严谨、有性能开销,应该尽可能不要new所以,我们把实例化对象的控制权交给了spring ,spring读取配置文件,通过反射来创建对象,注入依赖,这就是控制反转的哲学及ioc的原理参考书:spring in actionhttps://www... 阅读全文

posted @ 2018-02-10 21:28 silyvin 阅读(141) 评论(0) 推荐(0) 编辑

讨论 update A set number=number+ ? where id=?的原子性 (含数据库原理)
摘要:结论:1. 本句本身具有原子性2. 当前读(包含update等写入操作)锁定数据,直到事务提交https://www.zhihu.com/question/46733729/answer/128582074阿里的mysql大咖给出了肯定的答案比如,表名A,字段名为 n... 阅读全文

posted @ 2018-02-08 23:37 silyvin 阅读(1127) 评论(0) 推荐(0) 编辑

PESSIMISTIC_READ & PESSIMISTIC_WRITE 与 共享锁 & 排它锁
摘要:http://suene.iteye.com/blog/1756295可以使用 @Lock , 里面填入的是 JPA 的 LockModeType * Java代码 @Lock(LockModeType.PESSIMISTIC_READ) public List ... 阅读全文

posted @ 2018-02-07 16:42 silyvin 阅读(3812) 评论(0) 推荐(0) 编辑

innodb当前读 与 快照读 and rr级别是否真正避免了幻读
摘要:当前读和快照读 好的学习链接:http://blog.csdn.net/taylor_tao/article/details/7063639 快照读历史数据-mvcc innodb的默认事务隔离级别是rr(可重复读)。它的实现技术是mvcc。基于版本的控制协议。该技术不仅可以保证innodb的可重复 阅读全文

posted @ 2018-02-07 15:51 silyvin 阅读(1932) 评论(1) 推荐(1) 编辑

java finalize及实践
摘要:https://www.cnblogs.com/Smina/p/7189427.html 1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的 阅读全文

posted @ 2018-02-06 11:32 silyvin 阅读(219) 评论(0) 推荐(0) 编辑

【死磕Java并发】-----Java内存模型之happens-before
摘要:【死磕Java并发】-----Java内存模型之happens-before在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)在上篇博客(死磕Java并发:深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重... 阅读全文

posted @ 2018-02-06 10:44 silyvin 阅读(196) 评论(0) 推荐(0) 编辑

Java并发编程:volatile关键字解析[volatile最好的文章]
摘要:https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247484857&idx=1&sn=80086fcbf00cb847f152d533d654b46f&chksm=ebd63a95dca1b383fbb3a... 阅读全文

posted @ 2018-02-05 22:59 silyvin 阅读(214) 评论(0) 推荐(0) 编辑

【框架】[MyBatis]DAO层只写接口,不用写实现类
摘要:http://blog.csdn.net/qq_26525215/article/details/52648042一句话总结:mybatis通过JDK的动态代理方式,在启动加载配置文件时,根据配置mapper的xml去生成Dao的实现。团队开发一个项目,由老大架了一个... 阅读全文

posted @ 2018-02-05 17:22 silyvin 阅读(271) 评论(0) 推荐(0) 编辑

MyBatis结果集处理,中resultType和resultMap的区别
摘要:http://blog.csdn.net/leo3070/article/details/77899574使用resultType这些情况下,MyBatis 会在幕后自动创建一个 ResultMap(其实MyBatis的每一个查询映射的返回类型都是ResultMap)... 阅读全文

posted @ 2018-02-05 17:09 silyvin 阅读(2244) 评论(1) 推荐(0) 编辑

浅谈 Mybatis中的 ${ } 和 #{ }的区别
摘要:https://www.cnblogs.com/dato/p/7027949.html动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个... 阅读全文

posted @ 2018-02-05 16:37 silyvin 阅读(137) 评论(0) 推荐(0) 编辑

Spring中初始化bean和销毁bean的时候执行某个方法的详解
摘要:http://blog.csdn.net/ilovesmj/article/details/51261033关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种:第一种:通过注解@PostConstruct 和 @PreDestroy 方法 实... 阅读全文

posted @ 2018-02-05 16:12 silyvin 阅读(436) 评论(0) 推荐(0) 编辑

notify 和 notifyAll 的区别
摘要:(一)先看一个 notify发生死锁的例子: http://blog.csdn.net/tayanxunhua/article/details/20998449 (本文虽是转载,不过也加入了一些个人观点) JVM多个线程间的通信是通过 线程的锁、条件语句、以及wait()、notify()/noti 阅读全文

posted @ 2018-02-05 15:39 silyvin 阅读(1116) 评论(0) 推荐(0) 编辑

轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理
摘要:http://blog.csdn.net/yanyan19880509/article/details/52435135前言前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进一步,学习非常有用的读写锁。鉴于读写锁比其他的锁要复杂,不想堆一大波的文字,本篇会试图... 阅读全文

posted @ 2018-02-05 14:56 silyvin 阅读(156) 评论(0) 推荐(0) 编辑

深入理解Java中的IO
摘要:http://blog.csdn.net/qq_25184739/article/details/51205186深入理解Java中的IO引言: 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 本文的目录视图如下:Java IO概... 阅读全文

posted @ 2018-02-05 10:19 silyvin 阅读(368) 评论(0) 推荐(0) 编辑

for 与 foreach区别
摘要:关于java中for和foreach循环for循环中的循环条件中的变量只求一次值!具体看最后的图片foreach语句是java5新增,在遍历数组、集合的时候,foreach拥有不错的性能。foreach是for语句的简化,但是foreach并不能替代for循环。可以这... 阅读全文

posted @ 2018-02-02 10:53 silyvin 阅读(635) 评论(0) 推荐(0) 编辑

java foreach
摘要:Java 8 forEach简单例子1. forEach and Map1.1 通常这样遍历一个MapMap items = new HashMap();items.put("A", 10);items.put("B", 20);items.put("C", 30);... 阅读全文

posted @ 2018-02-02 10:45 silyvin 阅读(194) 评论(0) 推荐(0) 编辑

countDownLatch和CyclicBarrier应用区别
摘要:讨论 在同时开始 和 等待结束一起 两者的实现区别countDown:http://blog.csdn.net/gaolu/article/details/46224821这个例子非常好[java] view plain copyclass SubRunn... 阅读全文

posted @ 2018-02-02 10:14 silyvin 阅读(308) 评论(0) 推荐(0) 编辑

【重要】4线程汇总-线程间通信方式
摘要:1 callable和future http://blog.csdn.net/zy_281870667/article/details/72047325 一般情况,我们实现多线程都是Thread或者Runnable(后者比较多),但是,这两种都是没返回值的,所以我们需要使用callable(有返回值 阅读全文

posted @ 2018-02-02 08:59 silyvin 阅读(498) 评论(0) 推荐(0) 编辑

[专项]40个Java多线程问题总结 (yet)
摘要:https://www.cnblogs.com/xrq730/p/5060921.html 40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知 阅读全文

posted @ 2018-02-02 08:42 silyvin 阅读(243) 评论(0) 推荐(0) 编辑

java字节流与字符流的区别
摘要:https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247484777&idx=1&sn=a18c01bc4de826464fe8337e7ff6f87a&scene=19#wechat_redirect字节流... 阅读全文

posted @ 2018-02-01 23:08 silyvin 阅读(213) 评论(0) 推荐(0) 编辑

HttpURLConnection 请求腾讯sms 字符流io典型应用
摘要:public static void sendMsg(String nationCode, String phoneNumber, String content) throws IOException, JSONException, NoSuchAlgorit... 阅读全文

posted @ 2018-02-01 22:59 silyvin 阅读(190) 评论(0) 推荐(0) 编辑

java io 下载文件 字节流io典型应用
摘要:public String downLoadFromUrl(String urlStr) { try { String fileName = getRandomString(20)+".jpg"; St... 阅读全文

posted @ 2018-02-01 22:22 silyvin 阅读(436) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示