自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Json_wangqiang的博客

与其临渊羡鱼,不如退而结网

  • 博客(158)
  • 收藏
  • 关注

原创 设计模式解密(23) - 总结篇

索引目录&&传送门:总体来说设计模式分为三大类:创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式结构型模式(7种):适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...

2017-08-18 16:01:00 543

原创 Java之戳中痛点 - (8)synchronized深度解析

概览:简介:作用、地位、不控制并发的影响用法:对象锁和类锁多线程访问同步方法的7种情况性质:可重入、不可中断原理:加解锁原理、可重入原理、可见性原理缺陷:效率低、不够灵活、无法预判是否成功获取到锁如何选择Lock或Synchronized如何提高性能、JVM如何决定哪个线程获取锁总结后续会有代码演示,测试环境 JDK8、IDEA一、简介1、作用能够保证在同一时刻最多只...

2019-08-30 09:53:14 255

原创 Java之戳中痛点 - (8)synchronized深度解析

概览:简介:作用、地位、不控制并发的影响用法:对象锁和类锁多线程访问同步方法的7种情况性质:可重入、不可中断原理:加解锁原理、可重入原理、可见性原理缺陷:效率低、不够灵活、无法预判是否成功获取到锁如何选择Lock或Synchronized如何提高性能、JVM如何决定哪个线程获取锁总结后续会有代码演示,测试环境 JDK8、IDEA一、简介1、作用能够保证在==...

2019-08-30 09:48:00 265

原创 org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142) :json转化“$ref 循环引用”

原因:entity实体中存在@OneToMany,@ManyToOne注解,在转化json是产生了循环引用 报的错误解决方法:springmvc @ResponseBody 默认的json转化用的是 org.codehaus.jackson 这里两个实体类: 假如A对B 是一对多双向关联 死循环原因: JSON无法对A的属性List<B>进去JSON转换...

2019-03-15 09:19:01 600

转载 centos7通过yum安装MySQL

centos7通过yum安装MySQL一:去官网查看最新安装包https://dev.mysql.com/downloads/repo/yum/二:下载MySQL源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySql源yum -y install mysql...

2018-11-30 14:16:00 180

原创 static final修饰的静态变量修改后更新到服务器,重启无法生效的问题

static final修饰的静态变量修改后更新到服务器,重启无法生效的问题  今天在工作中碰到这样一个问题,有一个常量类,将工程中常用的一些变量定义在了里面。今天我要修改其中的某个变量。修改完后将编译好的.class文件更新到了服务器上,但是重启服务器后发现始终没有变化,还是以前的值。我就将服务器的缓存清理,然后再重启,依然没有改变。反反复复又更新上去,又清理缓存,又重启弄了好多次还是不行。...

2018-11-05 10:42:00 1207

原创 echarts 分组绘制柱状图

echarts 分组绘制柱状图示意图:代码如下:<!DOCTYPE html><html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 10

2018-09-01 13:14:00 4673

转载 (转)linux下vi命令修改文件及保存的使用方法

(转)linux下vi命令修改文件及保存的使用方法 进入vi的命令         vi filename :打开或新建文件,并将光标置于第一行首    vi n filename :打开文件,并将光标置于第n行首    vi filename :打开文件,并将光标置于一行首    vi /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处  ...

2018-07-30 10:14:00 720

原创 tomcat maven插件启动报错tomcat-users.xml cannot be read

tomcat maven插件启动报错tomcat-users.xml cannot be readtomcat maven插件启动报错tomcat-users.xml cannot be read[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:run (default-cli) on proj...

2018-07-16 17:15:00 809

转载 (转)javap 指令集

(转)javap 指令集栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5...

2018-04-11 21:01:00 174

转载 (转)JAVA 十六个常用工具类

(转)JAVA 十六个常用工具类一. org.apache.commons.io.IOUtils   closeQuietly   关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块  toString   转换IO流、 uri、 byte[]为String  copy   IO流数据复制,从输入流写到输出流中,最大支持2GB  toByt...

2018-04-10 16:12:00 212

原创 微信JSSDK权限签名申请

微信JSSDK权限签名申请前提:1、绑定域名  先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。  里边有说明(这里提示一点:需要把当前公众号的验证文件放到指定目录下)2、需要参数: APPID、APPSECRET、服务器IP地址添加到IP白名单 申请JSSDK签名:第一步:(https请求方式: GET)(前提:替换APPID、APP...

2018-04-08 14:05:00 486

原创 Hibernate学习(5)- session的get与load方法对比

1、共同点:get和load都是根据Id单条查询获取对象org.hibernate.Session.load(Class<User> theClass, Serializable id)org.hibernate.Session.get(Class<User> entityType, Serializable id)不难看出,两者的调用方式一样2、不同点:这...

2018-04-01 15:55:00 206

原创 Hibernate学习(4)- Hibernate对象的生命周期

1、Hibernate对象的生命周期(瞬时状态、持久化状态、游离状态)1、瞬时状态(Transient):  使用new操作符初始化的对象就是瞬时状态,没有跟任何数据库数据相关联;2、持久化状态(Parsistent):  如果对象与Session对象关联起来,且该对象对应到数据库记录,则称该对象处于持久化状态。3、游离状态(Detached)  Session被关闭或调用了Sess...

2018-04-01 14:30:00 173

原创 Hibernate学习(3)- *.hbm.xml详解

 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

2018-03-31 13:02:00 184

原创 Hibernate学习(2)- hibernate.cfg.xml详解

1:主配置文件主要分为三部分:    注意:通常情况下,一个session-factory节点代表一个数据库;    1.1:第一部分       数据库连接部分,注意"hibernate.connection.driver_class"中间的 _;    1.2:第二部分       其他相关配置,包含打印sql语句,格式化sql语句,创建数据表或者更新数据表等等    1.3:第三...

2018-03-27 23:46:00 176

原创 Hibernate学习(1)- 初识

一、概念引入1、持久化:  狭义概念:数据存储在物理介质不会丢失。  广义概念:对数据的CRUD操作都叫做持久化。2、加载: hibernate里,数据从数据库中加载到session。3、ORM -- Object Relation Mapping好处:  解决阻抗不匹配:对象与关系数据库不匹配。  没有侵入性:在代码中不用去继承或者实现hibernate类或实...

2018-03-27 23:44:00 159

原创 关于Mysql DATE_FORMAT() 日期格式

关于Mysql DATE_FORMAT() 日期格式定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。  格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有...

2017-08-18 14:12:00 188

原创 设计模式解密(22)- 访问者模式 - 扩展篇(分派的概念)

前言:访问者模式拆分 访问者模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276202 访问者模式扩展篇 - 分派的概念: https://blog.csdn.net/Json_wangqiang/article/details/85276204 1、分派的概念  变量被声明时的类型叫做变量的静态类型...

2017-08-18 09:24:00 156

原创 设计模式解密(22)- 访问者模式

 前言:访问者模式拆分 访问者模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276202 访问者模式扩展篇 - 分派的概念: https://blog.csdn.net/Json_wangqiang/article/details/852762041、简介 定义:表示一个作用于其对象结构中的各元素...

2017-08-18 09:17:00 154

原创 设计模式解密(21)- 解释器模式

 1、简介定义:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。本质:分离实现,解释执行。Interpreter模式其实就是一种简单的语法解释器构架。英文:Interpreter类型:行为型2、类图及组成(引)类图:组成:  AbstractExpression(...

2017-08-16 11:56:00 218

原创 设计模式解密(20)- 职责链模式

 1、简介定义:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。本质:分离职责,动态组合。   分离职责:分离职责是前提,只有先把复杂...

2017-08-15 13:28:00 182

原创 设计模式解密(18)- 原型模式

 1、简介定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。功能:①是通过克隆来创建新的对象实例;②是为克隆出来的新的对象实例复制原型实例属性的值。本质:通过克隆来创建新的对象实例。英文:Prototype类型:创建型2、类图及组成(引)类图:组成:  Prototype:声明一个克隆自身的接口,用来约束想要克隆自己的类,要求它...

2017-08-08 09:36:00 162

原创 设计模式解密(17)- 备忘录模式

  1、简介定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。解释:也就是说,不破坏源数据的情况下,将源数据进行一次或者多次的备份。本质:保存和恢复内部状态。英文:Memento类型:行为型2、类图及组成(白箱实现与黑箱实现)前言:备忘录模式按照备忘录角色的形态不同,分为白箱实现与黑箱实现,...

2017-08-04 12:15:00 214

原创 设计模式解密(16)- 观察者模式

 1、简介定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:当一个对象(目标对象)的状态发生改变,如何让所有的依赖对象(观察者对象)都将得到通知。本质:触发联动英文:Observer类型:行为型2、类图及组成(引)类图:组成:  抽象主题(Subject)角色: 抽象主题角色把所有...

2017-08-02 11:42:00 161

原创 使用localStorage保存搜索记录

使用localStorage保存搜索记录//过滤一个结果的空记录添加,过滤空搜索 默认保存10条记录,自己可修改function setHistoryItems(keyword) { keyword = keyword.replace("/^\s+|\s+$/g",""); let { historyIndexSearchItems } = localStorage; ...

2017-07-31 21:53:00 453

原创 设计模式解密(15)- 中介者模式(调停者模式)

 1、简介别名:调停者模式定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用。从而使其耦合松散,而且可以独立地改变它们之间的交互。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用:多个类相互耦合,形成了网状结构。如何解决:将上述...

2017-07-31 16:59:00 203

原创 设计模式解密(14)- 状态模式

 1、简介定义:允许对象在内部状态改变时改变它的行为, 对象看起来好像修改了它的类。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。本质:根据状态来分离和选择行为。英文:state类型:行为型2、问题引入 大家都在玩王者农药,这里就以王者农药的英雄为例,讲解状态模式,问题:模拟英雄移动状态的变化!!!这里简单模拟,实现四个...

2017-07-28 09:33:00 177

原创 设计模式解密(13)- 组合模式

 1、简介定义:允许你将对象组合成树形结构来表现"整体-部分"层次结构。 组合能让客户以一致的方法处理个别对象以及组合对象。主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。英文:Composite类型:结构型2、类图及组成(引)类图:组成:  ● ...

2017-07-26 15:00:00 202

原创 设计模式解密(12)- 桥接模式

 1、简介定义:将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决:在多维可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用:实现系统可能有多个角度分类,每一种角度都可能变化。如何解决:把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合。注意事项:对于两个独立变化的维度,使用桥接模式再适合不过了。英文:bridge类型:结构型...

2017-07-25 13:43:00 177

原创 Caused by: org.apache.catalina.LifecycleException: A child container failed during start

Caused by: org.apache.catalina.LifecycleException: A child container failed during start错误提示:严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina...

2017-07-24 11:03:00 1018

原创 设计模式解密(11)- 命令模式 - 扩展篇(撤销命令)

前言:命令模式内容比较多,这里做了拆分命令模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276179命令模式扩展篇 - 宏命令:https://blog.csdn.net/Json_wangqiang/article/details/85276185命令模式扩展篇 - 撤销命令:https://blog.cs...

2017-07-19 17:22:00 251

原创 设计模式解密(11)- 命令模式 - 扩展篇(请求日志)

前言:命令模式内容比较多,这里做了拆分命令模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276179命令模式扩展篇 - 宏命令:https://blog.csdn.net/Json_wangqiang/article/details/85276185命令模式扩展篇 - 撤销命令:https://blog.cs...

2017-07-19 17:22:00 256

原创 设计模式解密(11)- 命令模式 - 扩展篇(宏命令)

前言:命令模式内容比较多,这里做了拆分命令模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276179命令模式扩展篇 - 宏命令:https://blog.csdn.net/Json_wangqiang/article/details/85276185命令模式扩展篇 - 撤销命令:https://blog.cs...

2017-07-19 17:22:00 283

原创 设计模式解密(11)- 命令模式 - 扩展篇(命令队列)

前言:命令模式内容比较多,这里做了拆分命令模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276179命令模式扩展篇 - 宏命令:https://blog.csdn.net/Json_wangqiang/article/details/85276185命令模式扩展篇 - 撤销命令:https://blog.cs...

2017-07-19 17:22:00 283

原创 设计模式解密(11)- 命令模式

 ◆ 前言:命令模式内容比较多,这里做了拆分命令模式基础篇 :https://blog.csdn.net/Json_wangqiang/article/details/85276179命令模式扩展篇 - 宏命令:https://blog.csdn.net/Json_wangqiang/article/details/85276185命令模式扩展篇 - 撤销命令:https://...

2017-07-19 17:17:00 193

原创 设计模式解密(10)- 迭代器模式

 1、简介定义:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示;主要用途:帮助我们遍历聚合对象;关键代码:定义接口:hasNext, next;英文:Iterator类型:行为型模式2、类图及组成(引)类图:组成:  抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,Li...

2017-07-17 19:17:00 155

原创 设计模式解密(9)- 装饰者模式

 1、简介定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。拆分定义,总结特点:       1、不改变原类文件。                 2、不使用继承。                 3、动态扩展。主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引...

2017-07-17 12:24:00 189

原创 设计模式解密(8)- 适配器模式

 1、简介定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。实现方式:  1、类的适配器模式(采用继承实现)  2、对象适配器(采用对象组合方式实现)注意事项:适配器不是在详细设计时添加的,...

2017-07-14 15:51:00 274

原创 设计模式解密(7)- 代理模式

  1、简介定义:为其他对象提供一种代理以控制对这个对象的访问 ;分类:静态代理(静态定义代理类,我们自己静态定义的代理类) 动态代理(通过程序动态生成代理类,该代理类不是我们自己定义的。而是由程序自动生成)-- 这是与静态代理主要的区别!!!主要解决:在直接访问对象时带来的问题,直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层;...

2017-07-13 16:50:00 173

空空如也

空空如也

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

TA关注的人

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