- 博客(61)
- 收藏
- 关注
原创 netty vs jetty
对比版本netty4.1 , jetty9.3 1.socket连接处理 jetty 使用AbstractConnector.Acceptor来处理连接, 线程数=Math.max(1, Math.min(4,cores/8)), 但是自己不new线程而是从共享的QueuedThreadPool中拿线程来执行 netty 使用一个单独的NioEventLoopGro...
2017-03-23 20:44:09
7140
原创 如何将资源消耗定位到进程
1. 按CPU消耗给进程排序top 按P排序 2. 按内存消耗给进程排序top按M排序 3. 按TCP连接数消耗给进程排序netstat -anltp|grep ESTABLISHED|awk -F" " '{a[$7]++}END{for(i in a)print i,a[i]}' |sort -n -k 2 -t ' ' -r 4. 按...
2017-02-27 15:03:51
286
原创 采集数据命令备忘
1. 采集CPU数据,每隔2秒采集一次,采集500次。缺点是不知道哪个进程造成的CPU消耗vmstat -n 2 500 > cpu.txt & 2. 采集网卡数据。每隔2秒采集一次,采集500次sar -n DEV 2 500|grep eth0 > net.txt & 3. 采集内存数据。每隔5秒采集一次,采集200次。JAVA内...
2017-02-27 14:15:29
271
原创 目录下所有jar拼接classpath脚本
windows: set MY_HOME=%~dp0@setlocal EnableExtensions EnableDelayedExpansionset CLASSWORLDS_JAR=.for /F %%i in ('dir /a-d/b/s ..\lib\*.jar') do set CLASSWORLDS_JAR=!CLASSWORLDS_JAR!;%%i...
2017-02-27 11:03:36
731
原创 新的开源项目happyxml
happyxml项目地址:https://github.com/yuancihang/happyxml 短小精悍的xml操作封装, 只有几百行代码. 支持注解绑定到对象 public static void sampleQuery() { Dom root = Dom.parse(Paths.get("src/main/resources", "person.xml"...
2016-11-30 02:21:57
132
原创 新的开源项目happyjdbc
happyjdbc项目地址:https://github.com/yuancihang/happyjdbc 简化jdbc操作,提供更现代化的api, 支持分库分表 public class DataExample {public static void main(String[] args) throws SQLException { DataAccess...
2016-11-27 23:18:48
112
原创 我的新的开源项目happyhttp上线了
happyhttp 简单而强大的http client 库项目地址:https://github.com/yuancihang/happyhttp public static void sampleGet(){ String text = HttpBuilder.newGet("http://www.xxx.com/").execute().getBodyAsTex...
2016-11-26 21:10:55
238
原创 protobuf通信消息设计技巧备忘
1. 有一个全局的ProtobufMessage, 所有的requestXXX, responseXXX都作为他的一个可选属性, 这样简单粗暴的避免了需要二次序列化反序列化的恶心问题2. 有一个CommonMessage作为他的一个字段,用来存放公共字段。变相解决了reuqest消息和response消息的继承问题3. 这样之后对于wireshark抓包后,反序列化以及格式化为JSON极...
2016-11-14 02:12:04
665
原创 appsecret与accessToken生成
apache oltu: accessToken=md5(UUID.randomUUID().toString()) refreshToken=md5(UUID.randomUUID().toString())tomcat: sessinid : SecureRandom SHA1PRNG java: private s...
2016-11-13 11:14:04
1978
原创 eclipse 搜索所有非注释中文
项目需要多语言支持,需要把代码中写死的中文抽出来,由于注释中的中文也非常多,所以在搜索的时候要排除注释中的中文。代码中的字符串与注释中的字符串最大的区别是 代码中的字符串都是以双引号开始的,所以只要在正则表达式中使用双引号即可轻松排除掉注释,不论是多行注释/***/还是单行注释//.最终正则表达式:"[ \w\_【】\[\]]*[\u4e00-\u9fa5]+ 为了加快搜索速度...
2016-10-20 01:42:59
1662
原创 使用POI读取100万行excel
poi 的usermodel api读取大数据量excel会导致OOM,可以使用eventmodel api来处理这种excel. import java.io.IOException;import java.io.InputStream;import java.util.LinkedList;import java.util.List;import javax.x...
2016-07-01 18:21:20
5822
12
原创 Protostuff序列化与反序列化
发现一个好东西Protostuff, 据说可以不写proto文件来把对象序列化成二进制格式,用了一下果然好使。 public class Protostuff { @SuppressWarnings("unchecked") public static <T> byte[] serial(T obj) { Class<T> clazz =...
2016-02-23 00:42:40
370
原创 mysql5.7安装
mysql5.7解压之后是没有data目录的 1. 初始化data目录mysqld --initialize --user=mysql --console执行后生成data目录 同时生成三个数据库 information_schema,mysql 和performance_schema 2.修改root密码启动服务器 mysqld --skip-grant-tab...
2016-01-30 00:54:02
96
原创 java 字符串拼接方法性能大比拼
由于在实际项目中经常会打log,这 就要用到字符串拼接, 本文测试了JAVA中的四种字符串拼接方法的性能。 1.使用“+”拼接字符串 public static String f1(String p1, String p2, String p3){ return "["+p1+"]["+p2+"]["+p3+"]"; } 2.使用StringBuilder拼接字符串...
2015-11-24 11:11:33
227
原创 msgpack序列化与反序列化
最近想找个二进制序列化框架把对象存起来或者放到缓存里,首先排除了protobuf和thrift, 因为这两个都要写数据定义文件太烦,后来发现msgpack好像很不错的样子,决定试试 1.材料msgpack-0.6.12.jar2.先定义两个对象package test.magpack;import org.msgpack.annotation.Message;...
2015-06-20 15:32:16
1758
原创 Runtime.exec 执行管道重定向与大文件合并命令
要执行包含管道重定向与大文件合并的外部命令,需要注意以下两点: 1. 需要使用Runtime.exec的以下重载方法:public Process exec(String[] cmdarray) throws IOException 2.需要使用/bin/sh -c 例子: 使用管道:String[] cmd = {"/bin/sh", "-...
2014-12-26 11:49:20
286
原创 Java匹配无限嵌套的括号
在Java中单纯依靠正则表达式是无法匹配无限嵌套的括号的,还好有antlr这个大杀器可以轻松解决这个问题,开源就是好啊。 1. 材料antlr-4.4-complete.jar 2. 文法文件Json.g4grammar Json;@header{package a3; }LEFT_BRACKET : '{';RIGHT_BRACKET ...
2014-12-26 10:59:28
2202
1
原创 mono研究
一、安装中的坑从mono官网下载源码包mono-3.4.0.tar.bz2直接编译安装后,报错:/usr/bin/install: cannot stat `targets/Microsoft.Portable.Common.targets': No such file or directory进行以下操作,解决之:#> cd ${MONO_SOURCE}/mcs/t...
2014-05-12 14:11:24
529
原创 UDP 多播
package tmp.net.socket.udp;import java.io.IOException;import java.net.DatagramPacket;import java.net.InetAddress;import java.net.MulticastSocket;import java.util.concurrent.atomic.Atom...
2013-09-25 09:57:56
103
原创 netty udp编程
package tmp.net.netty.udp;import java.io.IOException;import java.net.InetSocketAddress;import java.util.concurrent.Executors;import org.jboss.netty.bootstrap.ConnectionlessBootstrap;imp...
2013-09-23 22:02:12
417
原创 linux下安装tomcat为系统服务
1. 环境准备gcc autoconf jdk 2. 配置环境变量 cd /optwget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gztar zxvf apache-tomcat-7.0.42.tar.gz vi /etc...
2013-07-09 00:03:47
179
原创 linux下安装apache2.4
本安装过程在centos6.3下测试通过. 1. 环境准备 yum install -y cmake autoconf libtool gcc gcc-c++ 2.安装pcre# 查看pcre是否安装: pcre-config -vcd /optwget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.z...
2013-07-03 18:56:14
116
原创 swing版按键控制台
最近找到一个unity3d游戏《地铁跑酷pc版》非常好玩,但是在PC上用鼠标上下左右的拖动操作很不方便,于是网上找到一个按键控制台的小工具可以用键盘的操作模拟鼠标的操作非常好用,可惜试用版只能使用1分钟,正式版要花银子滴。还好功能看起来比较简单,于是自己动手写了一个Java版的按键控制台。 按键控制台的核心功能就是接收键盘事件然后模拟出鼠标动作。Java的Toolkit.addA...
2013-05-09 09:59:48
523
原创 一个基于RMI的小巧好用的框架(三)
在Java RMI中Registry对象表示远程对象注册表。 创建远程对象注册表使用以下代码: LocateRegistry.createRegistry(8888); 获取远程对象注册表的引用使用以下代码: Registry registry = LocateRegistry.getRegistry(host, port); 可以使用Registry...
2012-12-12 10:13:10
78
原创 一个基于RMI的小巧好用的框架(二)
RMI有注册端口和通信端口。 通过以下代码设置的是注册端口: LocateRegistry.createRegistry(port); //注册端口注册端口默认是1099 通过以下代码设置的是通信端口: UnicastRemoteObject.exportObject(rmiService, 0); //随机通信端口其中第二个参数是通信端口,0表示随机...
2012-12-11 10:18:25
105
原创 一个基于RMI的小巧好用的框架
最近有用到rmi技术,需要实现Remote接口,需要抛出RemoteException异常,极其不爽,遂封装之,封装之后只需普通POJO对象即可!该框架核心有三个类,一个服务端类RMIEndpoint,一个客户端类RMIProxyFactory,一个通用接口GenericRmiService 先看一下用法: 服务端用法:RMIEndpoint.addService(Us...
2012-12-11 09:51:59
88
原创 JDBC访问Access2007
JDBC访问Access2007关键就一句:"jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb, *.accdb)};DBQ="+accessFile 一定要注意这个字符串多个空格或者少个空格都不行!还他妈的区分大小写, 俺都郁闷过 import java.sql.Connection;import java.sql....
2012-12-10 12:01:44
138
原创 太极图swing实现
1. 环境JDK1.6 2.代码 package tmp.j2d;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Shape;import java.awt.geom....
2011-07-15 09:51:58
207
生成随机密码
分享一个生成随机密码的工具类, 可以控制生成的密码长度, 密码由数字和字母组成。 import java.util.Random;public class PasswordGenerator { private static final String text = "0123456789abcdefghijklmnopqrstuvwxyz"; pu...
2011-07-13 14:39:30
205
原创 超时任务
该工具类适用于以下场合:a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。b) 缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。c) 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。d)心跳任务 package com.yuan.common.async;import java.util.Iterator;i...
2011-06-20 08:55:49
183
原创 Shell
1. 代码package com.yuan.common.shell;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.HashMap;import java....
2011-05-29 20:44:46
63
原创 我的开源项目
happyxml项目地址:https://github.com/yuancihang/happyxml简介:短小精悍的xml操作封装, 只有几百行代码. 支持注解绑定到对象 happyjdbc项目地址:https://github.com/yuancihang/happyjdbc简介:简化jdbc操作,提供更现代化的api, 支持分库分表 happyhttp ...
2011-04-14 17:11:21
104
原创 自定义类加载器 四
package com.yuan.common.asm;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Set;public class ByteClassLoader extends A...
2011-04-09 08:31:12
69
原创 自定义类加载器 三
package com.yuan.common.asm;import java.io.File;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.Enumeration...
2011-04-08 09:01:22
71
原创 自定义类加载器 二
package com.yuan.common.asm;import java.io.File;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.Arrays;im...
2011-03-13 17:36:32
67
原创 自定义类加载器 一
package com.yuan.common.asm;public abstract class AbstractClassLoader extends ClassLoader { public AbstractClassLoader(ClassLoader parent){ super(parent); } prote...
2011-03-12 22:25:44
57
原创 Enumeration接口的一个实现
import java.util.ArrayList;import java.util.Enumeration;import java.util.List;public class ListEnumeration<E> implements Enumeration<E> { private List<E> list = ne...
2011-02-20 00:27:45
138
原创 JDBC根据数据库生成POJO
1.环境JDK6 2.代码import java.io.File;import java.io.IOException;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;im...
2011-01-26 17:54:30
311
原创 Java编程编译源代码
1.环境JDK6 2.代码import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax....
2011-01-03 19:55:57
129
原创 常用日期操作
1.import java.math.BigDecimal;import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import j...
2010-12-07 08:49:02
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人