it_worker365

   ::  ::  ::  ::  :: 管理

随笔分类 -  java

摘要:https://www.cnblogs.com/it-worker365/p/6867996.html 1. 性能测试 Jmeter, 不使用办公机防止为排查引入网路异常等不确定因素 创建测试计划,多少线程并发多少等设置好,如果是java代码测试,先写好打包,将引用的jar放到lib,将自己放到li 阅读全文
posted @ 2019-07-30 13:58 it_worker365 阅读(124) 评论(0) 推荐(0)

摘要:垃圾 -> 程序不用的内存空间 gc要做什么 -> 找到垃圾,回收垃圾 为什么要回收 -> 因为只分配不释放会内存泄漏,占满内存,系统崩溃 释放需要注意什么 -> 正确释放 -> 防止悬垂指针(指向释放完毕的空间)/防止释放正在使用的空间 GC操作的基本单位是对象,对象包含对象头(对象的大小种类,根 阅读全文
posted @ 2018-09-12 09:30 it_worker365 阅读(126) 评论(0) 推荐(0)

摘要:内存回收要做的事: 确定哪些内存需要回收,确定什么时候需要执行GC,如何执行GC 以最简单的本地变量引用:Object obj = new Object()为例: Object obj表示一个本地引用,存储在JVM栈的本地变量表中,表示一个reference类型数据; new Object()作为实 阅读全文
posted @ 2018-07-14 12:22 it_worker365 阅读(119) 评论(0) 推荐(0)

摘要:缓存行,避免缓存依赖,补充字段,清除伪共享 1. time : 7846747771 2. remove padding time : 36836838456 可以看出差距非常明显 public final class FalseSharing implements Runnable { publi 阅读全文
posted @ 2017-07-19 15:22 it_worker365 阅读(259) 评论(0) 推荐(0)

摘要:用了下CyclicBarrier,注意线程池中的线程数量设置,还有就是DB连接的时候,需要考虑单个DB能承受的最大连接数目和每个连接上能同时打开的cursor等限制,需要时可以通过jstack查看堆栈中关于等待锁的信息,同时注意在线程数/连接池中连接数以及任务数中找到性能平衡点 阅读全文
posted @ 2017-06-07 15:16 it_worker365 阅读(173) 评论(0) 推荐(0)

摘要:Queue主要方法的区别: Queue既可以是FIFO,也可以是按照一定优先级顺序排列,BlockingQueue区别在于对于空队列获取等待,满队列加入等待,适用于生产者消费者模型: ArrayBlockingQueue: 主要方法学习 包含一个object数组存放元素,takeIndex和putI 阅读全文
posted @ 2017-06-02 15:26 it_worker365 阅读(464) 评论(0) 推荐(0)

摘要:1. 函数式编程,因为在并发和时间驱动编程中的优势,函数式编程又逐渐流行起来 以前是实现一个比较器需要实现Comparator接口,并重写compare方法,以下为两种实现方法(类似还有线程,事件等): 在JDK8中,很多接口添加@FunctionalInterface被声明为函数式接口,JDK8的 阅读全文
posted @ 2017-05-19 19:32 it_worker365 阅读(233) 评论(0) 推荐(0)

摘要:1. ClassNotFoundException/NoClassDefFoundError/NoSuchMethodException 参考关于类加载的博文即可,主要关注类加载的方式,类的版本等信息 https://www.cnblogs.com/baihuitestsoftware/articl 阅读全文
posted @ 2017-05-17 15:58 it_worker365 阅读(376) 评论(0) 推荐(0)

摘要:利用hotswap技术,动态将跟踪字节码注入到运行类中,对运行代码侵入较小,对性能上的影响可以忽略不计 1、追踪方法的调用,参数返回值,执行时间,响应时间 2、定时打印调用次数,监控对某方法的调用 3、打印系统/JVM等信息,堆和非堆内存实时信息 4、接口性能变慢,分析每个方法的耗时情况; 5、当在 阅读全文
posted @ 2017-05-17 14:38 it_worker365 阅读(336) 评论(0) 推荐(0)

摘要:类加载机制: 程序启动时,根据入口函数调用相关功能,功能在不同类中即在不同的class文件中,jvm根据类加载机制来动态加载class文件到内存中,只有被加载后才能被调用,否则引发异常 1、装载:查找和导入Class文件 2、链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的 阅读全文
posted @ 2017-05-17 10:28 it_worker365 阅读(453) 评论(0) 推荐(0)

摘要:如何产生,一边遍历一边修改元素,产生iter后再修改原结构,如下,无论是for中或iter都会产生ConcurrentModificationException 产生原因: 解决办法: 1. 用CopyOnWriteArrayList, 可以发现在打印hashcode的时候并不相同,这种结构在修改元 阅读全文
posted @ 2017-05-16 14:33 it_worker365 阅读(635) 评论(0) 推荐(0)

摘要:1. 基于LinkedHashMap 2. 基于HashMap 和 双向链表 阅读全文
posted @ 2017-05-11 10:21 it_worker365 阅读(198) 评论(0) 推荐(0)

摘要:Why 线程池? 1. 减少每次创建和销毁线程的开销 2. 控制系统中运行的线程数目 首先需要了解ThreadPoolExecutor构造函数,见名知意 JAVA自带的有哪些?什么区别?怎么用? 来了一个任务怎么办? 如果运行的线程少于 corePoolSize,则 Executor始终首选添加新的 阅读全文
posted @ 2017-05-10 18:03 it_worker365 阅读(330) 评论(0) 推荐(0)

摘要:最近在研究系统设计方面的东西,发现有很多通用的解决方案,包括spring配置扩展以及serviceLoader的应用,这里简单记录下serviceLoader的简单应用,网上例子很多,大同小异,本人觉得最主要的是能懂得思想,运用到系统设计之中 基本代码结构是这样的 首先定义服务接口 再来定义它的实现 阅读全文
posted @ 2015-11-05 11:05 it_worker365 阅读(323) 评论(0) 推荐(0)