摘要: ReentrantReadWritelock是ReadWrite的一个实现类,与ReentrantLock有着相似的语法。 A)Acquisition Order 该类并不强制读锁或者写锁按照优先级进行获取,但是它提供可供选择的公平策略。 Non-fair mode:默认情况下,采用的是非公平策略, 阅读全文
posted @ 2019-08-29 23:14 charging_for_myself 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 简介: ReentrantLock作为一个可重入互斥锁,具有与Synchronized隐式监视器相同的功能,除此之外,还有更强的扩展性。 如果一个线程调用lock(),如果该锁未被另外一个线程持有,则成功获取锁并返回;如果当前线程已经持有该锁,则直接返回。可以通过isHeldByCurrentThr 阅读全文
posted @ 2019-08-28 00:11 charging_for_myself 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 装饰模式,简单的来说,就是内部你先组装好,最后展示给我的是一个OK的形象。所以组装的过程是比较重要的。 理论上,也可以通过增加子类来实现不同的功能。但是如果,通过增加“职责”来实现别的功能的话,肯定比生成子类灵活一些吧。 如果按照以前的逻辑的话,是以下模式: 人 小明 服装 衬衫、皮鞋、裤子等 不过 阅读全文
posted @ 2017-08-17 19:52 charging_for_myself 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 单一职责:就一个类而言,只有一个引起它发生变化的原因。可以简单的理解为“单一功能”吧。 拿手机来说,尽管手机的额功能比较强大,但是除了打电话是它比较独有的功能外,像其他功能:拍照、摄像等等,肯定没有专门的照相机,DVD的功能更高效。 那么类也是一样的道理,如果一个类中,执行的行为比较多的话,这些行为 阅读全文
posted @ 2017-08-16 17:31 charging_for_myself 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 每天都在慢慢的积累中.... 有小乌龟TortoiseGit,也有SourceTree,本热比较少用命令,因为已经有了比较好用的第三方工具,为何还要浪费时间去敲命令,不过有人确实喜欢敲命令,不排除。因人而异。 拿小乌龟来说吧。 git有分支这样一说,所以在提交代码的时候,需要注意是否在你想提交的分支 阅读全文
posted @ 2017-08-15 17:38 charging_for_myself 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 不积跬步,无以至千里;不积小流,无以成江海。 技术都是慢慢积累起来的,一天一点,慢慢你就会发现,你比别人懂得不是一点了。 idea中对于大小写比较敏感一些,eclipse相对来说比较弱一些。 Alt+Insert Constructor()、get/set()、toString() Ctrl+Shi 阅读全文
posted @ 2017-08-15 17:25 charging_for_myself 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 何为策略模式? 同一件事情,不同的类型,需要不同的策略去处理。就如书中所说的 “商场超市的促销方式”。 实际上,该功能如果用“简单工厂模式”也可以实现,不过有一些缺点。 比如:因为商场超市的促销方式比较多,打折的话,就有“88折、9折、5折”等等;返利的话,就有“满100返20,满300返80等等” 阅读全文
posted @ 2017-08-15 17:08 charging_for_myself 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式:业务逻辑与界面逻辑分开。 这样,当业务逻辑发生改变的时候,只需要改变业务相关的类及其相应的方法,而不需要动整个代码。 书中介绍的一个比较经典的例子就是:四大发明之一 活体印刷。 活体印刷的好处就是: 一、扩展性(在语句中进行增删) 二、复用性(多个语句可以既=多次使用同一个字) 三、可 阅读全文
posted @ 2017-08-14 18:44 charging_for_myself 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 索引的使用与数据库中表的引擎有一定的关联 索引的存储的数据类型分为两种:BTREE/HASH MYISAM/InnoDB 存储类型只支持BTREE MEMORY/HEAP支持两种 一般情况下,有以下几种常用的索引: 普通索引: INDEX CREATE table t1 (...... , INDE 阅读全文
posted @ 2017-07-29 13:50 charging_for_myself 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 首先需要导入两个dom4j用到的jar包:dom4j-1.6.1.jar、jaxen-1.1.1.jar <?xml version="1.0" encoding="UTF-8"?><main> <first> <first1>1</first1> <first2> <first21>2</firs 阅读全文
posted @ 2017-03-19 22:08 charging_for_myself 阅读(107) 评论(0) 推荐(0) 编辑