
java
zzyymaggie
这个作者很懒,什么都没留下…
展开
-
频繁fullgc排查思路,再也不怕fullgc了
1.现象某业务方的网关服务上线2个月后,出现15分钟一次fullgc.2.触发fullgc的可能原因System.gc()方法调用代码里一般都禁用了,不可能。 ( X )老年代空间不足open-falcon上查指标 ,经核对,距离分配的空间还差很远就被回收了。 ( X )永生代(Metaspace不足)open-falcon上查指标,经核对,还未达到。堆中分配大对象(所谓大对象,是指需要大量连续内存空间的java对象,例如很长的数组,此种对象会直接进入老年代,而老年代虽然有很大的剩余空原创 2020-07-29 22:33:59 · 1241 阅读 · 0 评论 -
Tomcat(一):简介
最近在学习Tomcat网络模型,看到这篇文章对Tomcat的架构做了一个很好的阐述,忍不住转载到自己的博客,帮助自己梳理思路。以下为正文:一、概念Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。二、原理Tomcat结构图:T...转载 2020-04-18 13:54:44 · 688 阅读 · 0 评论 -
Java对象池
这里写自定义目录标题背景简介代码背景通过这篇文章学习了Java对象池基本原理和应用场景,以及造了一个简单的轮子,可是楼主代码写的不可运行,因此自己完善了一下代码,并添加了测试用例https://blog.youkuaiyun.com/shimiso/article/details/9814917。简介1.基本原理:对象池技术基本原理的核心有两点:缓存和共享,即对于那些被频繁使用的对象,在使用完后,...原创 2019-09-23 15:29:11 · 386 阅读 · 0 评论 -
《Java程序性能优化》第二章 读书笔记 II
常用的优化组件缓冲Buffer 原理:采用漏斗 解释得很形象 应用:IO的BufferedWriter等 NIO的Buffer类族都是典型的代表缓存(Cache) 原理:缓存的主要作用就是暂存数据处理结果,并提供下次访问使用。 应用:内存的一级Cache/二级Cache/三级Cache。 专门的Cache解决方案:Memcache、Redis等对象复用——“池” 原理:如果一个原创 2017-12-19 23:44:08 · 341 阅读 · 0 评论 -
《Java程序性能优化》第二章 读书笔记 I
第二章 设计优化 2.1 善用设计模式 这本书归纳总结了一些经典的与性能有关的设计模式。并没有涵盖所有的设计模式。1.单例模式使用场景:它可以确保系统中一个类只产生一个实例。 好处: a.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于重量级对象而言,是非常可观的一笔系统开销。(比如数据库连接) b.由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,原创 2017-11-22 23:13:22 · 319 阅读 · 0 评论 -
Code Review for Java code
Code Review的意义在于提升代码质量,分享项目知识、明确责任,最终达到构建更好的软件、更好的团队。那么有哪些关注点来帮助我们进行Code Review呢?原创 2017-11-12 17:18:46 · 639 阅读 · 0 评论 -
面向对象设计的SOLID原则
背景面向对象编程强调的是可扩展性,那么我们要怎么设计才具有更好的扩展性呢? SOLID原则是类级别的,面向对象的设计理念,它们与测试工具一起帮你改进腐坏的代码。SOLID由程序员们最喜欢的大叔 Robert C. Martin(Bob大叔)提出,它其实是五个其他缩略词的组合——SRP, OCP, LSP, ISP, DIP。单一职责原则(SRP)从面向对象角度解释这个原则为:”引...原创 2017-11-12 17:02:01 · 392 阅读 · 0 评论 -
Java中double[]和Double[]内存占用分析
在编写java算法时将Map的value从double[]修改为Double[]发现内存增长了很多,因此对double[]和Double[]内存占用情况进行了分析。double数组内存占用为24+8N, Double对象数组内存占用为24+36N,可见当数据量大时,Double[]所占内存为double[]的4.5倍,因此当数据量大时采用Double[]会导致数据量暴涨。原创 2017-07-30 22:04:11 · 8178 阅读 · 0 评论 -
ZK框架简介
ZK is a component-based UI framework that enables you to build Rich Internet Application (RIA) and mobile applications without having to learn JavaScript or AJAX. You can build highly-interactive and responsive原创 2016-06-22 17:53:28 · 12324 阅读 · 1 评论 -
利用jxcell创建excel下拉菜单
在excel, 下拉菜单是通过数据有效性来生成的。数据有效性的生成有两种方式。一种是通过字符串输入,总字符个数必须小于256;另一种是通过公式在表格上选择数据源。原创 2016-07-09 16:49:00 · 651 阅读 · 0 评论 -
ZK框架学习(一)
我们要了解一项新技术,一般都是先去了解它是干什么的,使用场景,然后就是跟着手册去建立一个工程,运行起来,再看它的工作过程是怎样的。原创 2016-06-23 12:58:59 · 5294 阅读 · 1 评论 -
ZK框架学习(二)——ZK Spreadsheet
ZK SpreadSheet简介 ZK SpreadSheet,简称ZSS。它是唯一可嵌入的Java Web应用程序的Ajax组件。它是ZK框架的一个组件,专门用于处理excel文件,加载、生成、编辑、下载等。原创 2016-07-01 15:31:34 · 3536 阅读 · 1 评论 -
HttpClient4.3 超时时间设置
背景采用线程池实现了HttpClient,为了避免每次请求都去创建一个新的线程池,我采用了单例的方式初始化了一个CloseableHttpClient,配置了超时时间,后来由于需求调整,需要部分请求配置更少的超时时间,最开始采用了笨办法解决,根据不同的超时时间建立不同的HttpClient。但是这样随着不同超时时间增加,httpclient版本越来越多,不利于代码维护。RequestConfig d原创 2015-04-11 17:22:52 · 4551 阅读 · 0 评论 -
httpclient4.3 线程池超时问题解决
之前采用Httpclient4.3写了一个抓取服务,突然有一天线上出现了很多这样的报警Read time out 和 ConnectionPoolTimeoutException: Timeout waiting for connection使用连接池的原因是:没有连接池的话,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。1 检查连接是否关闭EntityUtils.con原创 2015-04-11 17:05:28 · 3089 阅读 · 0 评论 -
使用Maven创建项目工程
使用Maven创建项目工程有两种方案,如下:一、使用eclipse的maven插件生成采用eclipse的maven插件m2clipse创建maven工程,这样的好处就是可以自动加载pom.xml配置的jar依赖包。二、使用命令行创建项目1. 使用Archetype生成项目骨架 如果是Maven3,运行: mvn archetype:generate 如果是Ma原创 2014-11-21 00:04:55 · 669 阅读 · 0 评论 -
JAVA类框架总结
1.java异常类框架图原创 2014-10-13 16:40:45 · 493 阅读 · 0 评论