自定义博客皮肤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)
  • 收藏
  • 关注

原创 SingleDemo

package com.sinoservices.chainwork.srm.basicdata.service.impl;public class SingleDemo {public static SingleDemo instance = null;public SingleDemo(){System.out.println(Thread.currentThread().getNam...

2019-12-12 09:07:33 101

原创 MyThreadPoolDemo线程池代码实例

package com.sinoservices.chainwork.srm.basicdata.service.impl;import java.util.concurrent.Executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.uti...

2019-12-07 09:44:42 174

原创 volatile禁止指令重拍案例演示

package com.sinoservices.chainwork.srm.basicdata.manager.impl;public class ReSortSeqDemo {int a = 0;boolean flag = false;public void method1(){a = 1;flag = true;}public void method2(){a = a+5...

2019-12-05 09:12:50 162

原创 MatespaceOOMTest

package com.sinoservices.chainwork.srm.basicdata.manager.impl;/*JVM 参数-XX:MatespaceSize=8m -XX:MaxMatespaceSize=8mjava 8及以后的版本用Matespace来替代永久代Matespace是方法区在HotSpot中的实现。它与持久代最大的区别在于:Matespace并不在虚拟...

2019-12-04 20:34:28 169

原创 使用线程池有什么好处

线程池做的工作主要是控制运行线程的数量,处理过程中将任务放入队列,然后线程创建后启动这些任务,如果线程数量超过了最大线程数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。他的特点是:线程复用,控制最大并发数,管理线程第一:降低资源消耗,通过重复利用已创建的线程,降低线程创建和销毁造成的资源消耗。第二:提交响应速度,当任务到达时,任务可以不需要等待线程创建就能执行。...

2019-12-04 20:10:00 2152

原创 UnableCreateNewThreadDemo

package com.sinoservices.chainwork.srm.tender.manager.impl;/*高并发请求服务器时,经常出现如下异常:java.lang.OutOfMemoryError:unable to create new native thread准确地讲:native thread异常与平台有关导致原因1、你的应用创建了太多线程,一个应用进程创建多个线...

2019-12-03 08:59:06 256

原创 DirectBufferMemoryDemo

package test1;/*配置参数-Xms10m -Xmx10m -XX:+PrintGCDetial -XX:MaxDirctMemorySize=5m故障现象:Exception in Thread main:java.lang.OutOfMemoryError:Direct Buffer Memoru导致原因写NIO程序经常使用ByteBuffer来读取或者写入数据,这是...

2019-11-29 23:11:20 221

原创 MateSpace

云空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间和永久代之间最大的区别在于,元空间并不在虚拟机中,而是使用本地内存。因此默认情况下,元空间的大小仅受本地内存的控制...

2019-11-29 23:10:47 404

原创 ProAndConBlockingQueueDemo

package com.sinoservices.chainwork.srm.basicdata.service.impl;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import j...

2019-11-29 17:31:45 103

原创 VolatileNotAtomicDemo

package test1;/*1.验证volatile的可见性1.1 假如int number = 0 ,number变量之前根本没有添加volatile关键字修饰,没有可见性1.2 添加了volatile 可以解决可见性问题2.验证volatile不保证原子性2.1 原子性指的是什么意思?不可分割,完整性,也即某个线程正在做某个业务时,中间不可以被加塞或者被分割。需要整体完整,要...

2019-11-27 22:51:33 80

原创 可见性问题

通过前面对JMM的介绍,我们知道各个线程对主内存中共享变量的操作,都是各个线程各自拷贝到自己的工作内存进行操作后再写回到主内存。这就可能存在一个线程AAA修改了共享变量X的值,但还没写回主内存时,另外一个线程又对主内存中同一个共享变量X进行操作,但此时A线程中共享变量X的值对B线程来说并不可见,这种工作内存与主内存同步延迟的现象就造成了可见性问题...

2019-11-27 22:50:52 328

原创 GcOverHeadLimitDemo

package test1;/*JVM参数配置演示-Xms10m -Xmx10m -XX:+PrintGCDetials -XX:+MaxDirectMemorySize=5mGC回收时间过长时,会抛出OutOfMemoryError,过长的定义是:超过了98%的时间用来做GC并且回收了不到2%的堆内存连续多次GC回收了不到2%的堆内存的极端情况下才会抛出。假如不抛出GC OverHea...

2019-11-27 22:06:54 98

原创 java.lang.OutOfMemoryError:GC OverHead limit exceeded

JVM配置参数演示-Xms10m -Xmx10m -XX:MaxDirectMemorySize=5mGC 回收过长时,会抛出OutOfMemoryError.过长的定义是,超过98%的时间用来做GC并且回收了不到2%的堆内存连续多次GC,都回收了不到2%的堆内存的极端情况下才会抛出。假如不抛出GC overhead limit错误会发生什么情况呢?那就是GC清理的这么点内存很快就会再次被...

2019-11-27 22:06:21 132

原创 SynchronizedAndReentranLockDemo

package test1;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;class Resource{int number = 1;//A 1 B 2 C 3privat...

2019-11-27 21:24:56 90

原创 VolatileDemo

package com.sinoservices.chainwork.srm.tender.service.impl;import java.util.concurrent.TimeUnit;class Mydata{volatile int number = 0;public void addTo60() {this.number = 60;}}public class Vola...

2019-11-27 10:32:13 97

原创 JavaHeapSpaceDemo1

package com.sinoservices.chainwork.srm.tender.service.impl;import java.util.Random;public class JavaHeapSpaceDemo1 {public static void main(String[] args) {Byte [] bytes = new Byte[80 * 1024 * 204...

2019-11-27 10:20:13 87

原创 JavaHeapSpaceDemo1

package com.sinoservices.chainwork.srm.tender.service.impl;import java.util.Random;public class JavaHeapSpaceDemo {public static void main(String[] args) {String str = “str”;while (true) {str +=...

2019-11-27 10:18:20 93

原创 StackOverFlowErrorDemo

package com.sinoservices.chainwork.srm.tender.service.impl;public class StackOverFlowErrorDemo {public static void main(String[] args) {while (true) {stackOverFlow();}}private static void stack...

2019-11-27 10:11:53 110

原创 JMM三大特性

1.可见性2.原子性3.有序性

2019-11-26 23:00:05 566

原创 Synchronized 和lock有什么区别,用新的lock有什么好处,你举例说说?

1.原始构成Synchronized是关键字属于JVM层面monitorenter(底层是通过monitor对象来完成,其实wait和notify等方法也依赖于monitor对象完成,只有在同步块或方法中,才能调用wait和notify)monitorexistlock是具体类(java.lang.concurrent.Lock.lock)是api层面的类2.使用方法Synchroni...

2019-11-26 22:59:31 89

原创 JMM你谈谈

JMM(java内存模型,java memory model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或者规范,通过这组规范定义了程序中的各个变量(包括实例字段、静态字段、和构成数组对象的元素)的访问方式JMM关于同步的规定1.线程解锁前:必须把共享变量的值刷回主内存2.线程加锁前:必须读取主内存最新值到自己的工作内存3.加锁解锁是同一把锁由于JVM运行程序的实体...

2019-11-26 22:04:09 134

原创 阻塞队列用在哪?

1.生产者消费者模式传统版 ProdConsumer_TradtionDemo阻塞队列版 ProdConsumer_BlockQueueDemo2.线程池3.消息中间件

2019-11-26 21:48:43 172

原创 02.volatile是什么?

1.请你谈谈你对volatile的理解volatile是java虚拟机提供的轻量级的同步机制1.1保证可见性1.2不保证原子性1.3禁止指令重排

2019-11-25 22:22:01 60

原创 StackOverflowErrorDemo

2019-11-25 22:11:56 64

原创 81.请谈谈你对OOM的认识

java.lang.StackOverFlowError栈溢出java.lang.OutOfMemoryError: java heap spacejava.lang.OutOfMemoryError: Gc overhead limit exceededjava.lang.OutOfMemoryError: Direct buffer memoryjava.lang.OutOfMemo...

2019-11-25 21:58:29 219

空空如也

空空如也

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

TA关注的人

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