自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GC overhead limit exceeded

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded问题描述垃圾回收为了释放较小的空间而占用了大量时间造成的。通常是设置的堆内存太小,导致没有足够的内存。解决方法1、检查程序有没有死循环或者其他一些导致内存被大量占用的程序2、程序本身需要大内存,需要设置增加内存tomcat下./bin/catalina.sh...

2019-09-04 10:29:23 560

原创 PriorityBlockingQueue

1.PriorityQueue1.1二叉堆用数组实现的二叉树堆总是一棵完全二叉树。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。1.2PriorityQueue一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序。插入队列的对...

2019-07-18 16:53:10 266

原创 LinkedBlockingQueue

1.LinkedListpublic class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable//维护一个节点,这个节点包含本身的值,上一节点和下一个...

2019-07-11 09:10:25 304

原创 AQS--CountDownLatch(待整理)

一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。public class CountDouwnLatchTest { // 模拟了100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人...

2019-07-08 21:24:46 249 1

原创 AQS--条件队列(待整理)

//条件队列属性: 只有两个属性 firstWaiter 和 lastWaiter; public class ConditionObject implements Condition, java.io.Serializable { private static final long serialVersionUID = 1173984872572414699L; ...

2019-07-08 21:24:29 371

原创 AQS—阻塞队列(待整理)

阻塞队列不包含 head,头结点也不包含线程Sync 有两个实现,分别为 NonfairSync(非公平锁)和 FairSync(公平锁)。 public static ReentrantLock reenT = new ReentrantLock();//参数默认false,不公平锁 private static ReentrantLock lock = ne...

2019-07-08 21:24:14 1198

原创 AQS--基础(待整理)

AQS 是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。AQS属性//头结点 当前持有锁的线程 private transient volatile Node head;// 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个链表private transient volatile Node tai...

2019-07-08 21:23:51 328

原创 ArrayBlockingQueue

1.ArrayListArrayList是基于数组实现的List类,完全支持List接口的全部功能,底层实质上就是一个Object[]数组,是一个动态数组,可以实现容量的动态增长。ArrayList不是线程安全的。1.扩容,逻辑为newCapacity = oldCapacity + (oldCapacity >> 1),即在原有的容量基础上增加一半。容量为minCapacit...

2019-07-06 11:08:00 283

原创 乐观锁+synchronized

业务场景:同一个活动,已报名人数不能大于报名人数,每一次报名,已报名人数+1,直至已报名人数等于大于报名人数。由于存在多个用户在同一个活动的并发情况,采用@version乐观锁来防止已报名人数信息错乱,但在并发的情况下,乐观锁只能保证数据不错乱,并不能保证业务的正常进行,因为用户已经支付活动费用成功,不能因为乐观锁计算已报名人数失败而告知用户支付失败,这个时候需要解决并发情况。原代码:...

2019-06-26 14:29:25 851

原创 META-INF/services/javax.xml.xpath.XPathFactory

问题:Could not load [META-INF/services/javax.xml.xpath.XPathFactory]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal ac...

2019-06-20 14:22:51 1502

原创 docker安装EMQ服务

docker安装EMQ服务1.镜像下载: http://emqtt.com/downloads/latest/docker2.解压 emqttd-docker 镜像包: unzip emqttd-docker-v2.3.10.zip3.加载镜像: docker load &lt; emqttd-docker-v2.3.104.启动容器: docke...

2018-07-06 22:05:55 3236

原创 docker安装MongoDB服务

docker安装MongoDB服务1.拉取Mongo镜像 docker pull mongo2.创建用于挂载的目录 sudo mkdir /my/mongodb/data#用于挂载数据文件 sudo mkdir/my/mongodb/backup #数据库进行备份3.创建容器 docker run –name mongo -p 27017:27017...

2018-07-06 20:49:29 592

原创 Docker问题相关

Docker问题相关1.在安装Mysql时出现以下问题: docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql5.7 (fc7e597278b5a5b18e776f9debc34ef0145a72dc4169c743ff2c...

2018-07-06 20:18:15 149

原创 docker安装mysql服务

docker安装mysql服务1.拉取mysql镜像 docker pull mysql:5.72.创建用于挂载的目录 sudo mkdir /my/mysql/datadir #用于挂载mysql数据文件 sudo mkdir /my/mysql/conf.d #用于挂载mysql配置文件3.创建容器 docker run –name mysql5....

2018-07-06 20:15:03 271

原创 建造者模式

1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 何时使用:一些基本部件不会变,而其组合经常变化的时候。 //具体产品public class Product { List<String> parts=new ArrayList<String>(); public void Add(String part){ p

2017-12-11 20:16:06 266

原创 《大话设计模式》之外观模式

1.定义 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.实现class SubSystemOne { public void MethodOne() { System.out.println("SubSystemOne"); }}class SubSystemTwo { public voi

2017-12-05 16:29:16 255

原创 《大话设计模式》之模板方法模式

1.定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。2.实现

2017-12-05 15:20:31 213

原创 《大话设计模式》之原型模式

1.定义 用原型实例制定创建对象的种类,并通过拷贝这些原型创建新的对象,用于创建重复的对象,同时又能保证性能。实现克隆操作,在 JAVA 继承 Cloneable,重写 clone()。不用重新初始化对象,而是动态地获得对象运行时的状态。浅拷贝和深拷贝 如果字段是值类型的,则对该字段执行逐位复制; 如果字段是引用类型的,则复制引用但是不复制引用的对象,原始对象及其复本引用同一对象。

2017-12-05 15:03:09 252

原创 《大话设计模式》之工厂方法模式

一,定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即由子类来决定应该实例化(创建)哪一个类。二,实现定义工厂方法所创建的对象的接口public interface Operation { public double GetResult(double NumberA,

2017-12-05 10:09:02 325

原创 《大话设计模式》之代理模式

1.定义为其他对象提供一种代理以控制对这个对象的访问。 主要解决: 在直接访问对象时带来的问题 当客户端无法直接操作实际对象: 一种情况是你需要调用的对象在另外一台机器上,你需要跨越网络才能访问,如果让你直接coding去调用,你需要处理网络连接、处理打包、解包等等非常复杂的步骤,所以为了简化客户端的处理,我们使用代理模式,在客户端建立一个远程对象的代理,客户端就象调用本地对象一样调用该代理

2017-12-01 15:32:44 374

原创 《大话设计模式》之装饰模式

1.定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。2.针对问题主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。 装饰模式是为已有功能动态地添加更多功能的一种方式。 何时使用:1)取代因基本功能的排列组合而产生非常大量的类2)需要动态的给一个对象增加功能,这些功能可以再动态

2017-11-28 15:35:37 419

原创 《大话设计模式》之策略模式

策略模式1.定义定义算法/策略,分别封装起来,让它们之间可以互相替换。把对象本身和运算规则区分开来。所有这些算法/策略完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法/策略,减小了各种算法类与使用算法类之间的耦合。只用在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用。2.实现结构 //定义相同工作的抽象类public abstract class CashSu

2017-11-27 09:41:15 205

转载 《大话设计模式》之简单工厂模式

简单工厂模式1.介绍简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。2.优点/缺点优点:简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。缺点:很明显工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则3.实现

2017-11-24 16:23:11 195

转载 《大话设计模式》设计模式六大原则

(1)单一职责原则概念:就一个类而言,应该仅有一个引起它变化的原因。(2)开闭原则 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。(3)依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。(4)里氏替换原则子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义: 子类可以实现

2017-11-22 15:47:59 309

转载 Java中的基本类型和引用类型变量的区别

[定义]引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用;引用类型是存折,要用还得先去银行取现。----(摘自网上)值传递和引用

2017-11-22 14:23:53 1461

空空如也

空空如也

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

TA关注的人

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