自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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