- 博客(37)
- 问答 (2)
- 收藏
- 关注
原创 MyBatis源码学习笔记(一)——核心组件
MyBatis一. demo环境使用Maven搭建的项目,MyBatis版本为3.4.6,使用从 XML 中构建 SqlSessionFactory的方式来使用MyBatis,具体可以参考https://github.com/BrightLoong/mylab/tree/master/mybatis-learn,单元测试代码如下:pack...
2019-02-18 21:04:00 208
原创 记一次MySQL死锁排查
MySQL一. 环境1. 表结构涉及到以下两张表:BIND_RECORDCREATE TABLE `BIND_RECORD` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `bind_uid` bigint(20) NOT NULL COMMENT '被绑uid', `bind_...
2019-02-13 17:40:00 520
原创 Spring中的循环依赖
circle阅读原文请访问我的博客BrightLoong's Blog什么是循环依赖循环依赖就是循环引用,在spring中,就是两个或者多个bean相互之间持有对方。如下图,ClassA引用ClassB,ClassB引用ClassC,ClassC又引用ClassA,最终它们形成了一个环,这就是循环依赖。circleSprin...
2018-09-16 17:50:00 1526
原创 设计模式——迭代器模式
Iterator.jpg阅读原文请访问我的博客BrightLoong's Blog一. 概述迭代器模式(Iterator),提供一种方法书序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。迭代器模式为遍历不同的聚集结构提供如开始、下一个、是否结束、当前拿一项等统一的接口。迭代器模式是最为常用的设计模式之一,在Java中已经把这...
2018-09-02 18:29:00 183
原创 设计模式——外观模式
facde阅读原文请访问我的博客BrightLoong's Blog一. 概述外观模式(Facade),为系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过向现有的系统添加一个接口,来隐藏系统的复杂性,用一个一致的界面来面向客户端。外观模式是结构型设计模式。其实外观模式...
2018-08-26 21:15:00 135
原创 设计模式——桥接模式
[图片bridge.jpg阅读原文请访问我的博客BrightLoong's Blog一. 概述桥接模式(Bridge ),将抽象部分与它的实现部分分离,使它们都可以独立变化;桥接是用于把抽象化与实现化解耦,使得二者可以独立变化。如何理解“将抽象部分与它的实现部分分离”这句话呢,抽象部分和实现部分不是我们通常认为的父类和子类,接口和实现类...
2018-08-12 22:51:00 155
原创 设计模式——原型模式
Prototype.jpg阅读原文请访问我的博客BrightLoong's Blog一. 概述原型模式(Prototype) ,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。相信大家都都听过Java中的克隆(clone()),所谓的原...
2018-07-08 18:49:00 168
原创 ThreadPoolExecutor源码解析
ThreadPoolExecutor阅读原文请访问我的博客BrightLoong's Blog一. 线程池概述在介绍线程池之前,先说一下为什么在开发中要使用线程池,个人认为主要有一下的原因:开发中使用线程的时候,大部分线程执行的时间很短,频繁的创建、启动、销毁线程带来不必要的资源消耗。线程的创建、挂起、唤醒等操作都需要依靠CPU调度...
2018-06-24 18:19:00 178
原创 Java同步器——AQS学习
AQS阅读原文请访问我的博客BrightLoong's Blog一. 概述AQS(AbstractQueuedSynchronizer),队列同步器,Java中很多同步类都是基于AQS实现的,比如:ReentrantLock、Semaphore、CountDownLatch等。AQS提供了一个实现阻塞锁和相关同步组件的框架,这个框架实现...
2018-06-21 17:19:00 308
原创 自旋锁&CLH锁&MCS锁学习记录
lock阅读原文请访问我的博客BrightLoong's Blog本篇文章主要记录自旋锁、CLH锁、MCS锁的学习所得。关于自旋锁和CLH锁、MCS锁,网上已经有很多内容,而且很类似;学习就是学习前人经验,理解、总结,化为己用,因此,虽然网上有很多相关的内容,我也是参考了这些内容,我依然选择记录下了自己的理解,方便自己查阅。一. 自旋锁...
2018-06-17 19:27:00 398
原创 设计模式——享元模式
FlyWeight阅读原文请访问我的博客BrightLoong's Blog一.概述享元模式(Flyweight Pattern) ,运用共享技术有效的支持大量的细粒度对象。换句话说,使用享元模式对相同或者类似的对象进行复用,以此来减少少相同或者类似的对象的创建数量,从而减少内存占用,提高性能。享元模式属于结构型模式。在具体了解前...
2018-06-11 20:47:00 274
原创 Java中CAS学习记录
CAS阅读原文请访问我的博客BrightLoong's BlogCAS在网上已经有数不清的文章,这里只是自己在学习过程中的一个记录,方便以后查阅。一. 概述Java中CAS全称Compare and Swap,也就是比较交换。在Java同步工具中,经常可以看到CAS的身影。在Doug Lea大神提供的J.U.C并发包中,可以说CAS是实...
2018-06-10 23:53:00 203
原创 设计模式——适配器模式
adapter阅读原文请访问我的博客BrightLoong's Blog一. 概述适配器模式(Adapter) ,将一个类的接口转换为客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那个类可以一起工作。关于适配器,现实生活中也有很多例子,比如电源适配器,中国家庭供电为220V,而手机一般需求是在5V,这里220V就...
2018-06-06 22:48:00 157
原创 ThreadLocal源码分析
threadLocal阅读原文请访问我的博客BrightLoong's Blog一. 简介提醒篇幅较大需耐心。简介来自ThreadLocal类注释ThreadLocal类提供了线程局部 (thread-local) 变量。这些变量与普通变量不同,每个线程都可以通过其 get 或 set方法来访问自己的独立初始化的变量副本。Thread...
2018-05-28 22:28:00 141
原创 设计模式——观察者者模式
builder阅读原文请访问我的博客BrightLoong's Blog一. 概述观察者模式(Observer) ,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式,不论实现方式如何,需要具备最基本的Subject(被观察的主题)、...
2018-05-27 21:34:00 188
原创 关于Java中的WeakReference
WeakReference阅读原文请访问我的博客BrightLoong's Blog一. 简介在看ThreadLocal源码的时候,其中嵌套类ThreadLocalMap中的Entry继承了WeakReferenc,为了能搞清楚ThreadLocal,只能先了解下了WeakReferenc(是的,很多时候为了搞清楚一个东西,不得不往上追好...
2018-05-27 11:28:00 1274
原创 设计模式——建造者模式
builder阅读原文请访问我的博客BrightLoong's Blog一. 概述建造者模式(Builder),又叫生成器模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,使用建造者模式,用户就只需指定需要建造的类型就可以得到它们,二具体建造的过...
2018-05-24 22:25:00 147 2
原创 设计模式——职责链模式
chain阅读原文请访问我的博客BrightLoong's Blog一. 概述一. 概述职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止(个人认为并不一定非要满足这种情况,也可以是每...
2018-05-17 22:35:00 216
原创 设计模式——策略模式
strategy阅读原文请访问我的博客BrightLoong's Blog一. 概述考虑如下情景,超市搞打折活动,对于消费额度不同提供不同的折扣,比如:满200打9折,满400打8折之类的;或者旅行出游的情景,可以考虑骑自行车,坐汽车、火车、飞机等等。如何实现上面描述的情景,当然最直接想到的是使用if...else进行判断,执行不同的操...
2018-05-06 21:18:00 152
原创 设计模式——工厂模式
factory阅读原文请访问我的博客BrightLoong's Blog一.概述工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,其通过提供对象创建工厂,将创建对象的具体过程屏蔽起来,使调用的客户端不用关心具体的对象创建过程,提高了灵活性。工厂模式属于创建型模式。工厂模式根据抽象层的不用,可以分为以下...
2018-05-05 21:47:00 134
原创 设计模式——装饰器模式
decorator阅读原文请访问我的博客BrightLoong's Blog一. 概述装饰器模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰器模式比生成子类更为灵活;它允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式属于结构型模式。二. UML类图解析装饰器模式的UML类图如下...
2018-04-22 19:34:00 252
原创 设计模式——单例模式
Singleton阅读原文请访问我的博客BrightLoong's Blog单例模式属于创建模型。单例模式,是设计模式中比较简单而又最常用的模式之一。通过单例模式可以保证系统中,应用该模式的类只有一个类实例。例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计...
2018-04-15 21:59:00 182 2
原创 设计模式——模板方法模式
template模板方法属于行为型模式一. 简介模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽...
2018-01-10 10:29:00 134
原创 设计模式——命令模式
command阅读原文请访问我的博客BrightLoong's Blog一. 简介命令模式 ,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持撤销的操作。命令模式的特点是对命令进行了封装,将请求的具体操作封装成命令对象,用户无需知道具体需要执行什么样的操作逻辑,只用调用对应的命令即可,...
2018-01-10 10:28:00 268
原创 简介UML类图
title阅读原文请访问我的博客BrightLoong's BlogUML全称**Unified Modeling Language **又称统一建模语言或标准建模语言。我们再学习各种框架或者设计模式之类的时候经常会看到UML类图,这里将UML类图一些基本点做一个记录。在文章中所涉及到的UML类图是使用starUML工具创建,使用其他工...
2017-10-18 17:10:00 462
原创 使用树形结构保存实体
tree阅读原文请访问我的博客BrightLoong's Blog之前在项目需要实现一个功能——将xml文件映射成实体,然后对映射的实体进行逻辑处理,最后保存到数据库中;由于xml结构的数据是结构化的数据,所以需要保证保存的数据具有正确的主外键关联。如下所示,是一个需要保存到数据库的xml文件。当映射成对应的实体school和student...
2017-10-09 12:17:00 1270
原创 Apache Commons FileUpload
文件上传Apache Commons FileUpload是用于解析上传文件的包。这里将其一些简单的特性和使用进行一个大概的介绍。一.简介用于解析上传的文件,"Form-based File Upload in HTML"。也就是说,如果使用POST方法提交HTTP请求,并且使用内容类型“multipart / form-data”,则FileUpload可以解析该请求。二.简单使用1.
2017-07-26 10:18:15 442
原创 Java实现一个简单的缓存
cache阅读原文请访问我的博客BrightLoong's Blog 缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率。下面我实现了一个简单的缓存,步骤如下。创建缓存对象EntityCache.javapublic class EntityCache { /** *
2017-07-26 10:18:13 40670 8
原创 Java静态代理&动态代理笔记
阅读原文请访问我的博客BrightLoong's Blogjava代理 最近在学习Java反射的一些知识,看到了一些有关代理的例子,好记性不如烂笔头,所以这里将它记录下来。接下来话不多说,直接进入主题。代理:为其他对象提供一个代理以控制对某个对象的访问。静态代理接口public interface IDoSomething { public int doSometing(
2017-07-26 10:18:10 245
原创 Java Web之限制用户多处登录
阅读原文请访问BrightLoong's Blog用户登录 最近在项目中遇到一个需求,要求限制单个用户在多个终端登录(比如用户在A处登录,然后又在B处登录,此时A处就应该被挤下线)。最开始我是想使用spring的security直接通过配置实现,简单又方便。不过很可惜的是,我所做的项目使用的是公司封装的框架,依然在使用sprign2.X。好吧,既然这个方法行不通,那我自己老老实实写代码实现吧
2017-07-26 10:18:07 6294 28
原创 SSM整合&单元测试集成备忘
ssm整合 阅读原文请访问我的博客brightloong's blog SSM框架,既是Sping + Spring MVC + Mybatis,本篇博文主要是作为本人的备忘,记录如何整合SSM框架,以及如何集成单元测试,关于每一个配置的作用大都加上了注释,至于如何搭建项目这里不在赘述(我使用的是web项目),可以自己查找相关资料。我使用的Spring版本是4.1.3.RELE
2017-07-26 10:18:04 1364
原创 Java类的初始化顺序
title picture 最近在看回顾Java基础的时候,发现看似很简单的类初始化的顺序却并不是那么简单(往往越是简单的东西反而越容易出错呢),所以我觉得还是把它写下来,作为自己的备忘录比较好。既然都记录了我觉得我还是记录得比较全面的较好,所以显得有点啰嗦。普通类的初始化(不存在继承,内部类的时候) 为了更详细的验证类的初始化顺序,首先我创建了一个被另一个类使用的类B.javapub
2017-07-26 10:18:01 272
原创 Hexo+Github搭建个人博客(三)——百度分享集成
title picture 在上一篇博客Hexo+Github搭建个人博客(二)——配置&主题中我还留下了一个有关百度分享的东西没有说明。我之前也说这是我在搭建博客中遇到的最大的坑(没有之一)。在这篇博客中叫我将说一说我遇到了什么坑,以及怎么从坑里面爬出来的。当然怎么解决百度分享在https中的使用的具体方法并不是我搞出来的,首先要感谢hrwhisper在他的博文百度分享不支持https的解决
2017-07-26 10:17:58 2998 1
原创 Hexo+Github搭建个人博客(二)——配置&主题
title-picture 在上一篇博客Hexo+Github搭建个人博客(一)——开始搭建中介绍了如何安装git、hexo以及将文件推送到github上,相信看到这篇博客的时候你已经有了一个漂亮的博客。这篇博客主要介绍如何发布文章、在站点配置文件中配置一些个性化的信息,以及更换主题(我现在使用的是Next主题,所以关于主题配置以及之后的集成第三方工具等都是基于Next主题来说的),更换主题后
2017-07-26 10:17:56 2594
原创 Hexo+Github搭建个人博客(一)——开始搭建
title-picture 前段时间本人利用业余时间,在网上查询各种资料,使用Hexo+Github的方式搭建起了我个人的博客——BrightLoong。相信网上已经有无数前辈写了类似的文章来记录如何搭建博客的过程和步骤,我也不哗众取宠或者班门弄斧了,把我在搭建博客中使用 资料做一个收集,同时也将我在搭建博客过程中遇到的坑列举出来,以及对应的解决方法,也是对搭建博客过程的一个记录,毕竟好记性不
2017-07-26 10:17:53 1977
原创 开始Blog之旅
title-picture 终于在2017年,也是我大学毕业的第二个年头,抽业余时间,搭建起了属于自己的博客网BrightLoong,说实话,感觉有点迟。但是不管怎么样,至少是开始了,就如那一句话“最困难的是下定决心去做,剩下的只是坚持而已”,我下定决心去做了,并实现了第一步,但是或许最困难的其实是那后面的“坚持而已”。 不知在何时何地何处,在何人的博客上曾看到过,大概的意思是有输入也要有输
2017-07-26 10:17:50 298
原创 关于jeecms日期控件格式显示问题
最近在做jeecms的一个项目时候遇到个问题,自定义一个日期字段,要求显示格式为“yyyy-MM-dd HH:mm"这种格式,然而系统默认的显示为下面这种“yyyy-MM-dd HH:mm:ss"的形式, 自定义的显示为“yyyy-M
2016-06-03 10:56:27 1442
空空如也
socket设置setsotimeout后为什么没有作用?
2015-05-07
android程序运行后长按不弹出菜单,找不到原因。
2015-04-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人