自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 [读书笔记][Java并发编程实战]第二章 线程安全性

                                          第二章 线程安全性1-什么是线程安全的类?当多个线程访问某一个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的 2-如何保证线程安全?不在线程之间共享该状态变量 将状态变量修改为不...

2018-10-15 13:40:56 197

原创 偶翻照片有感

落霞若残血,孤鹜恋江鱼怒目指远方,我自划水凉 戊戌年六月初二日,与友六人北游张家口,离案牍劳形之京,不见键盘鼠标凡三日,甚为放松,友中有善摄影者,得佳片数余,甚喜之!今又翻此,偶有所得,分享之!...

2018-08-23 11:12:50 323 1

原创 MySQL查询中的各种join

MySQL查询中的各种join1- 定义两个表来介绍下SQL查询中的各种join,建表语句如下table-a:CREATE TABLE `table_a` ( `id` bigint(12) NOT NULL, `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `age` int(6) DEFAULT NULL, `g...

2018-04-22 19:36:26 827 2

原创 浅谈SimpleDateFormat的线程安全问题

浅谈SimpleDateFormat的线程安全问题在实际项目中,我们经常需要将日期在String和Date之间做转化,此时需要使用SimpleDateFormat类。使用SimpleDateFormat类的parse方法,可以将满足格式要求的字符串转换成Date对象,使用SimpleDateFormat类的format方法,可以将Date类型的对象转换成一定格式的字符串!但是有一点需要特别注意,S...

2018-04-14 17:07:46 26102 3

原创 浅谈CountDownLatch类

浅谈CountDownLatch类CountDownLatch是JDK1.5引入的解决并发问题的新类,在java.util.coucurrent包下,下面先结合JDK中的注释介绍这个类以及类中常用的方法!1-类的注释提取JDK中类的注释如下:A synchronization aid that allows one ormore threads to wait until a set of ope...

2018-04-01 13:03:11 505 2

原创 设计模式——命令模式

设计模式——命令模式1-  命令模式的定义命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。No BB,Show Code!2-  命令模式实现代码创建Command接口:package designPattern.test.comma...

2018-03-31 23:21:58 115

原创 浅谈Java中死锁问题

浅谈Java中死锁问题1-  Java中死锁定义在Java中synchronized关键字修饰的方法或者其他通过Lock加锁方式修饰方法、代码块可以防止别的任务在还没有释放锁的时候就访问这个对象!如果一个任务在等待另一个任务持有的锁,而后者又去等待其他任务持有的锁,这样一直下去,直到这个任务等待第一个任务持有的锁,这样就形成一个任务之间相互等待的连续循环,没有哪个任务能够继续执行,此时所有任务停止...

2018-03-31 17:11:37 1806 1

原创 浅谈ThreadLocal类

浅谈ThreadLocal类1-  ThreadLocal类ThreadLocal是在java.lang包下的类,可见这是一个非常重要的类!这个类有什么作用呢?什么情况下需要使用这个类呢?首先看看jdk中的关于这个类的注释:以下截取了部分ThreadLocal类的注释:这个类(ThreadLocal)提供了线程局部变量。线程局部变量与普通变量的不同之处在于线程局部变量是每一个线程都维护了一份副本的...

2018-03-24 01:05:08 1553 2

原创 设计模式——备忘录模式

设计模式——备忘录模式1-  备忘录模式定义备忘录模式:备忘录模式(Memento Pattern)就是在不破坏封装性的前提下,捕获一个对象的内部状态,并在这个对象之外保存这个对象,以便在适当的时候恢复这个对象。备忘录模式最为典型的应用就是各种应用软件的撤销操作,比如在编辑Word文档时,每过一段时候或者进行保存操作,文档就被保存一次,后面如果需要恢复就可以进行撤销操作使文档打到之前保存的某一个状...

2018-03-21 00:27:38 155

原创 浅谈Java中强软弱虚引用

浅谈Java中强软弱虚引用什么是强软弱虚引用?为什么要搞出来这四种引用?什么情况下可以用到这四种引用呢?本文主要探讨这三个问题!1基本概念强引用:在Java程序中通过调用构造器方法或者反射的方式创建出来的对象后通过一个引用指向它,并且在程序运行的过程中,可以通过引用链可以获取到这个对象,那么就可以说此处有一个强引用!比如如下两种情况:1)通过构造器创建对象后,有一个引用指向它//调用构造器创建对象...

2018-03-14 00:32:53 1066

原创 浅谈Java中的浅复制和深复制

浅谈Java中的浅克隆和深克隆1-clone、Cloneable和Serialiable什么是浅复制?什么是深复制?两者有何区别?要弄清楚这些问题,一切都要从Object的一个方法clone方法和两个标记接口Cloneable和Serializable谈起!首先来看看clone方法,clone方法是Java中根父类Object的一个方法,定义如下:protected native Object c...

2018-03-10 11:49:26 4832 8

原创 设计模式——外观模式

设计模式——外观模式1外观模式的定义外观模式:外观模式(Façade Pattern)为一个子系统或者子模块提供一个统一的与其通信交互的入口即外观类,外观类将访问者和子系统或子模块的内部复杂性分隔开,使得子系统的访问者只需要与外观类打交道,而不需要与子系统内的很多对象打交道。可以说外观模式是系统级别的封装了!No BB,Show Code!2外观模式的实例代码下面通过一个简单的demo来介绍外观模...

2018-03-10 00:34:28 129

原创 设计模式——享元模式

设计模式——享元模式1-  享元模式的定义享元模式:享元模式(FlyweightPattern)即共享对象的模式。在实际业务场景中,经常出现这样的一种情况——一个对象的属性值从对象被创建出来后基本就是不变的,并且在很多地方都需要使用到这个对象,此时就可以考虑使用享元模式了!享元模式主要解决的就是减少相同对象的创建,以便节省内存空间,从而提高系统的性能。使用享元模式时,如果需要某一个对象,那么就会尝...

2018-03-05 00:22:08 435

原创 设计模式——桥接模式

设计模式——桥接模式1桥接模式的定义桥接模式:桥接模式(Bridge Pattern)是将类的功能层次结构与类的实现层次结构独立,是两者互不影响独立的变化,从而实现了解耦,提高了扩展性。也可以表述为将类的抽象化和实现化独立,使得两者可以独立变化。独立后,还需要提供抽象化和实现化之间的桥接结构,使得两者联系起来,从而降低类之间的耦合度。下面通过具体的代码来介绍桥接模式!No BB,Show Code...

2018-03-02 00:09:23 178

原创 设计模式——迭代器模式

设计模式——迭代器模式1迭代器模式的定义迭代器模式:迭代器模式(Iterator Pattern)提供了一种顺序访问集合对象的方式而不需要知道对象的底层表示,一句话一种就是顺序的访问集合中所有对象的方式。No BB,Show Code!2迭代器模式的代码实现2-1定义被顺序访问的对象在本例中定义Book对象作为被顺序访问的对象:package designPattern.test.iterator...

2018-03-02 00:05:42 146

原创 设计模式——访问者模式

设计模式——访问者模式1-  访问者模式的定义访问者模式:也称为Visitor模式,访问者模式将数据结构和数据处理分离开,相同的数据对象接受不同的访问者时进行不同的处理。此时,如果需要增加新的处理方式时,只需要编写新的处理方式即访问者,然后让数据对象接受即可,从而做到了对修改关闭,对扩展开放,符合迪米特法则。下面具体介绍下这种设计模式:No BB,Show Code!2-  访问者模式具体代码2-...

2018-03-01 00:21:41 245

原创 设计模式——原型模式

设计模式——原型模式1原型模式的定义原型模式:原型模式(Prototype Pattern)就是根据现有的实例生成新的实例的一种模式。在实际应用中可能对象的生成很复杂,可能对象中包含的对象太多,总之对象的生成比较复杂,此时就可以根据原型模式通过克隆的方式生成新的对象。No BB,Show Code!2原型模式的代码实现2-1定义接口定义一个继承了Cloneable的产品接口Product,在此接口...

2018-03-01 00:17:22 144

原创 设计模式——观察者模式

设计模式——观察者模式1观察者模式的定义观察者模式:多个对象会随着一个对象的改变来同时发生变化,这种设计模式就是观察者模式,这种模式也称为发布-订阅模式,实际项目中常用的MQ就是属于这种模式的典型应用!No BB,Show Code!2实现代码2-1定义通知者接口定义通知者接口:package designPattern.test.observer;/** * ...

2018-02-25 10:39:19 157

原创 设计模式——中介者模式

设计模式——中介者模式1、中介者模式的定义中介者模式:在实际应用中可能会遇到这样的问题,有多个对象且对象彼此相互影响,它们的关系是网状的,如果按照一般的处理方式来处理的话就会很麻烦且不易扩展。此时就需要使用一个相当于仲裁者的对象来处理对象之间的关系,即对象之和仲裁者发生关系而彼此之间不再发生关系,这样就将原本的网状关系解耦成松散的中心状关系,这样就会提高扩展性且对象之间的关系更加清晰,使用这种方式...

2018-02-25 10:33:29 135

原创 设计模式——组合模式

设计模式——组合模式1-  组合模式定义组合模式:组合模式又称为部分整体模式,此模式中把一组相似的对象当做一个单一的对象,一般情况下组合模式依据树形结构来组合对象,用来表示部分以及整体的层次关系。组合模式属于结构性模式,创建了对象组的树形结构。通过以上描述可知,组合模式最为典型的应用就是系统文件以及文件夹的管理,树形菜单的管理!下面将以树形菜单为例具体介绍组合模式!No BB,Show Code!...

2018-02-16 22:51:49 142

原创 设计模式——状态模式

设计模式——状态模式1-  状态模式的定义在状态模式中,类的行为是基于它的状态而改变的,这种类型的设计模式就是状态模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的Context对象。在实际开发中,我们经常会遇到这样的一种情况:一个对象有一个表示状态的属性,一般会定义成一个枚举表示这个状态,在数据库中存储成tinyint类型的值,在业务代码中定义一个枚举表示各个值表示...

2018-02-15 10:10:54 137

原创 设计模式——建造者模式

设计模式——建造者模式1-  建造者模式的定义建造者模式:使用多个简单的对象一步一步构建成一个复杂的对象,将复杂对象的构建与表示相分离,使得同样的构建过程可以创建不同的表示。No BB,Show Code! 2-  建造者模式的具体代码实现2-1复杂对象为了更好的了解建造者模式,假设有一个复杂的对象Rocket,代码如下package designPattern.test.builder.vo;...

2018-02-11 22:33:43 116

原创 设计模式——代理模式

设计模式——代理模式1-  代理模式的定义代理模式:使用一个对象表示另外一个对象的功能,在代理模式中,我们可以创建持有现有对象的对象,以便向外界提供功能接口!No BB,Show Code! 2-  代理模式的具体实现代码2-1使用JDK自带的InvocationHandler接口实现代理功能使用JDK中java.lang.reflect包下的InvocationHandler接口实现代理功能,代...

2018-02-11 22:28:40 169

原创 Guava新集合使用

Guava新集合使用1-  guava是什么guava是Google开源的一个针对Java语言的工具库,其中包含了null的处理,简化Throwable异常,集合,缓存,函数式编程,并发,I/O,字符串处理,区间,事件总线,原生类型,数学运算,反射等相关的封装处理。本文主要介绍Guava引入的新的集合类型,侧重点在新集合的使用方法上,帮助开发人员尽快使用Guava进行开发,提高工作效率。No BB...

2018-02-11 21:41:18 389 1

原创 设计模式——装饰器模式

设计模式——装饰器模式1-装饰器模式的定义装饰器模式定义:动态的为一个对象增加新的功能,用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。当需要给一个已有的类的功能上新增功能时,装饰器模式提供了一个很好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它需要装饰的对象,因此,当需要执行特殊行为时,客户代码...

2018-02-10 18:31:13 163 1

原创 设计模式——适配器模式

设计模式——适配器模式1-  适配器模式的定义适配器模式的定义:将一个类的接口转换成客户需要的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作,它结合了两个独立接口的功能。No BB,Show Code! 2-  适配器模式具体实现代码2-1定义需要适配的接口及实现适配器模式的出现都是因为接口或者类与现在的实际系统不匹配造成的!定义一个老接口,即需要适配的接口pa...

2018-02-10 18:25:40 92 1

原创 设计模式——责任链模式

设计模式——责任链模式1-  责任链模式定义责任链模式:假设一个请求需要处理,但是请求处理对象有很多,此时就可以吧多个处理对象组成一个职责链,然后在这个职责链上一个一个地找出到底哪一个应该处理这个请求,直至执行链的最后一个处理对象。使用这种设计模式可以将请求和处理请求进行解耦,则需求发生变化时只是需要改动配置文件即可,可以说做到了插拔式的处理配置。No BB,Show Code! 

2018-02-07 01:16:43 195 2

原创 设计模式——策略模式

设计模式——策略模式1-  策略模式的定义策略模式:定义了一个算法家族,分别封装起来,让算法可以相互替换,从而不会影响到使用算法的用户。从概念上看,定义的所有的算法都只是完成相同的工作,只是实现不同,在具体使用时可以用相同的方式调用所有的算法,将算法类与使用算法的逻辑类解耦。废话不多说,Show Code! 2-  策略模式实现代码2-0准备工作为了更好的介绍策略模式,

2018-02-04 22:12:04 143

原创 设计模式——模板模式

设计模式——模板模式1-  模板模式定义模板模式:所谓模板模式就是定义一个操作中的算法骨架,将多个实现类中相同的业务处理逻辑提取出来放在父类中,而将各个实现类中不同于其他实现类所独特的业务逻辑放在具体的实现类中。模板方法可以使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。废话不多说,Show Code!请引入fastjson依赖,引入guava依赖

2018-02-04 22:07:32 138 1

原创 设计模式——工厂模式

设计模式——工厂模式工厂模式:一种创建行模式,提供了一种创建具有相同属性或行为的对象的最佳方式。顾名思义工厂生产出来的产品都是标准化的,如果在项目中需要在多处地方创建相同的对象(对对象进行了相同的处理并提供出来),此时可以考虑使用工厂模式!废话不多说,show code! 1-定义Factory,定义抽象方法工厂模式,首先需要工厂一般定义成一个接口或者抽象类package

2018-02-03 21:38:17 124

原创 设计模式——单例模式

设计模式——单例模式单例模式:如果程序运行过程中,某个类的实例只有唯一的一份,那么可以说这个类就是单例的,相应的设计模式称谓单例模式。这种模式涉及到一个单一的类,该类自己负责创建自己的实例,同时必须确保这运行过程中只能有一个实例被创建。单例模式的实现方式有:饿汉式,懒汉式,双重校验式,静态内部类方式,枚举方式,下面具体每一种方式的实现代码并分析优劣。1-饿汉式/

2018-01-28 21:29:06 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除