自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Exchanger一个小demo

java.util.concurrent*包中的Exchanger类可用于两个线程之间交换信息 可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填充信息。当两个格子中的均被填充时,该对象会自动将两个格子的信息交换,然后返回给线程,从而实现两...

2020-02-11 17:36:38

阅读数 6

评论数 0

原创 Exchanger 1.8源码分析

java.util.concurrent*包中的Exchanger类可用于两个线程之间交换信息 可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填充信息。当两个格子中的均被填充时,该对象会自动将两个格子的信息交换,然后返回给线程,从而实现两...

2020-02-11 17:33:32

阅读数 6

评论数 0

原创 生产者消费者2-lock.condition awiat()/single

package com.indi.wzl.Lock; import java.util.ArrayList; import java.util.List; import java.util.concurrent.locks.Condition; import java.util.concurre...

2020-02-06 12:45:53

阅读数 6

评论数 0

原创 生产者消费者-wait()/notify()

package com.indi.wzl.Lock; import java.util.ArrayList; import java.util.List; /** * 生产者-消费者模型, wait()/notify() * @Auther: zonglin_wu * @Date: 20...

2020-02-06 12:45:10

阅读数 3

评论数 0

原创 JVM常用命令

内存 -XX:MaxPermSize 设置永久代最大空间 -XX:PermSize 设置永久代大小 -Xms 设置堆最小值 -Xmx 设置堆最大值 -Xmn 设置新生代大小 -XX:NewSize 设置新生代大小 -XX:MaxDirectMemorySize 设置直接内存大小,默认...

2020-01-28 17:33:37

阅读数 23

评论数 0

原创 随机算法-java实现

package com.pamc.rdr.common; import java.math.BigDecimal; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; impor...

2020-01-26 17:46:04

阅读数 23

评论数 0

原创 JVM调优经验总结

jps -l 查询出运行的jvm进程列表,可以查看pid 线程堆栈排查 jstack pid > jstack.log 将堆栈打印入文件中查看 1 查看有没有waiting for monitor entry,State:BLOCKED 阻塞的线程,看看什么原因导致。比如如果sql...

2020-01-26 17:39:30

阅读数 42

评论数 0

原创 jvm设置http代理

-Djava.net.useSystemProxies=true -Dhttps.proxyHost=10.37.84.36 -Dhttps.proxyPort=8080 -Dhttp.proxyHost=10.37.84.36 -Dhttp.proxyPort=8080 -Djavax...

2020-01-26 17:38:46

阅读数 103

评论数 0

原创 spring 注入的坑

当一个类有2个属性,注入方式分别为@Autowired和 @Resource,这时候@Autowired的注入不能生效。 如果@Resource的类里面的属性用的是@Autowired注入,那是可以生效的。 限于公司规定不能进行代码截图 ...

2019-12-24 23:10:29

阅读数 5

评论数 0

原创 apollo上线遇到的坑

1 meta配置要写http:// 2 用户账号要有apollo 的cacheDir目录的权限。启动程序的肯定不是root用户 3 apollo 的拉取不到配置是warn日志级别不是error。需要把apollo日志打开 ...

2019-09-23 10:23:23

阅读数 20

评论数 0

原创 druid实践配置-实用

初始化连接 initialSize: 50 # 最大活动连接数 maxActive: 100 maxPoolPreparedStatementPerConnectionSize: 50 # 最大超时等待时间,单位毫秒 maxWait: 60000 # 配置一个连接在池中...

2019-08-16 18:43:37

阅读数 43

评论数 0

原创 spring cache原理

核心类: 缓存类: CacheManager:缓存管理器,获取缓存的接口。 Cache:缓存操作抽象接口,抽象实现类为AbstractValueAdaptingCache 配置类: CachingConfigurerSupport:缓存配置支持类,需要使用spring cache的项目继...

2019-07-12 20:21:53

阅读数 114

评论数 0

原创 idea 使用junit5的坑。

idea 2016版本开始支持junit5,最好是2017.3。官方原文: IntelliJ IDEA releases prior to IDEA 2017.3 bundle specific versions of JUnit 5. Thus, if you want to use a new...

2019-07-05 15:27:04

阅读数 2324

评论数 0

原创 上万数据批量新增/修改优化经验

上万条数据批量操作优化: 1 取消for循环,改成批量插入/修改方式,尽管代码会比较麻烦。 2 减少数据库操作,可以将数据一次性取到内存,在内存处理,代码麻烦些。 3 在批量新增的时候,将序列改为系统自己生成uuid(一次性取出序列也会比uuid慢,约慢20%-30%) 4 使用多线程,性...

2019-06-17 22:12:45

阅读数 207

评论数 1

原创 大数据查询优化经验记录

(主表) count:50793 (从表) count: 50793 目标:从5w多的数据查询GROUP_ID = 308的数据,查询的数据2w多条 测试受限于机器性能以及执行多次下oracle缓存,有一定误差。仅做参考 1 单表不加条件 第一次请求:sql时间:4240,接口返回58...

2019-06-17 22:11:58

阅读数 274

评论数 0

原创 多线程变量共享的一个坑(volatile)

public class Test implements Runnable{ boolean flag = false; public static void main(String[] args) { Test test = new Test(); ...

2018-12-15 22:20:01

阅读数 682

评论数 0

原创 Integer int类型的 == 比较

Integer a = 1; int b = 1; Integer c = Integer.valueOf(1); Integer d = new Integer(1); System.out.println(a == b); ...

2018-11-26 14:10:12

阅读数 35

评论数 0

原创 程序员工作的选择

程序员找工作应该从哪几方面选择? 技术成长空间。程序员吃饭的家伙就是技术,所以技术成长应该放在首位 程序员技术成长主要来源公司项目锻炼和自我修炼。 程序员技术成长主要来源公司项目锻炼和自我修炼。 这里主要说公司项目锻炼,面试的时候应该问清楚公司目前的技术栈和去公司做的事情。 公司...

2018-10-12 20:53:12

阅读数 808

评论数 1

原创 关于程序员加班思考

在it行业里面,程序员为什么经常加班,又该如何对待加班?为什么经常加班?如何对待加班? 为什么经常加班? 这里说的是整个it行业,包括互联网和传统it。程序员经常性加班主要2个原因: 需求量大,项目紧急。 需求什么时候都会有,需求量大主要指的是在相同时间内需要完成的需求比别人要多,...

2018-10-12 17:00:11

阅读数 91

评论数 0

转载 Java二十三种设计模式

java 23种设计模式 深入理解 以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究) 创建型 抽象工厂 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html ...

2018-09-08 16:24:14

阅读数 38

评论数 0

原创 hashSet 源码解析

1. 简介 jdk原注解:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。 hashSet是无序、不重复的队列,能够快速查找。那么它为什么是无序、不重复的呢?看源码解析 2....

2018-09-05 19:05:16

阅读数 39

评论数 0

原创 hashMap 1.8 源码及原理浅析

1. hashMap原理浅析 hashMap 的结构是由数组+链表构成,数组为Node 2. hashMap基本属性 3. 源码

2018-09-04 17:22:50

阅读数 74

评论数 0

原创 java NIO selector实例

基础父类 需要进行selector nio编程的朋友,可以直接继承AbstractSelectorChannel 使用。 import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.*; ...

2018-09-01 15:56:48

阅读数 85

评论数 0

原创 java NIO Buffer

1. 简介 Java NIO 中的 Buffer 用于和 NIO 通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成 NIO Buffer 对象,并提供了一组方法,用来方便的访问该块内存。 ...

2018-09-01 15:47:36

阅读数 76

评论数 0

原创 LinkedList源码解析

LinkedList是List 接口的链接列表实现,核心是其内部类Node private static class Node<E> { E item; Node&...

2018-08-06 20:18:10

阅读数 35

评论数 0

原创 mybatise一对多关系查询时不能直接分页

在mybatise应用时候我们经常会用到collection进行一对多映射,这时候分页就有了问题。比如A表1条记录对应B表3条记录,这时候查询就是3条记录,但是实际上我们需要的只是1条。解决方案: 一 提供一个工具方法生成新的RowBounds/** * mybatise一对多关系查询时...

2017-12-21 10:58:03

阅读数 1833

评论数 1

原创 web项目中使用多线程的一些坑

在web项目中有时候我们需要创建一个或者几个线程去处理问题。在线程的业务处理方法里面我们的写法通常和mvc的业务层方法写法类似。这时候有一个问题,如果业务方法抛出了运行时异常(RuntimeException或其子类),在mvc项目中我们是不需要try-catch的,因为web项目通常都有全局异常...

2017-10-31 11:33:08

阅读数 2940

评论数 0

原创 java xml解析工具

wxml工具 ## 现在为大家介绍个自己制作的xml解析工具:wxml。这块工具可以自动的将xml和java类进行相互的转换, 整个过程可能只需要1-2行代码。当然jaxb也是可以完成这样的功能的,不过我个人认为我的工具更简单些。不说这么多,看代码。 使用方式:1.非注解方式映射规则:...

2016-03-03 11:57:58

阅读数 1304

评论数 1

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