
java
文章平均质量分 66
iteye_8851
这个作者很懒,什么都没留下…
展开
-
生成随机密码
分享一个生成随机密码的工具类, 可以控制生成的密码长度, 密码由数字和字母组成。 import java.util.Random;public class PasswordGenerator { private static final String text = "0123456789abcdefghijklmnopqrstuvwxyz"; pu...2011-07-13 14:39:30 · 238 阅读 · 0 评论 -
Protostuff序列化与反序列化
发现一个好东西Protostuff, 据说可以不写proto文件来把对象序列化成二进制格式,用了一下果然好使。 public class Protostuff { @SuppressWarnings("unchecked") public static <T> byte[] serial(T obj) { Class<T> clazz =...原创 2016-02-23 00:42:40 · 427 阅读 · 0 评论 -
使用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 · 5947 阅读 · 12 评论 -
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 · 2023 阅读 · 0 评论 -
protobuf通信消息设计技巧备忘
1. 有一个全局的ProtobufMessage, 所有的requestXXX, responseXXX都作为他的一个可选属性, 这样简单粗暴的避免了需要二次序列化反序列化的恶心问题2. 有一个CommonMessage作为他的一个字段,用来存放公共字段。变相解决了reuqest消息和response消息的继承问题3. 这样之后对于wireshark抓包后,反序列化以及格式化为JSON极...原创 2016-11-14 02:12:04 · 712 阅读 · 0 评论 -
新的开源项目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 · 136 阅读 · 0 评论 -
新的开源项目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 · 155 阅读 · 0 评论 -
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 · 7232 阅读 · 0 评论 -
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 · 2316 阅读 · 1 评论 -
一个基于RMI的小巧好用的框架(三)
在Java RMI中Registry对象表示远程对象注册表。 创建远程对象注册表使用以下代码: LocateRegistry.createRegistry(8888); 获取远程对象注册表的引用使用以下代码: Registry registry = LocateRegistry.getRegistry(host, port); 可以使用Registry...原创 2012-12-12 10:13:10 · 97 阅读 · 0 评论 -
一个基于RMI的小巧好用的框架(二)
RMI有注册端口和通信端口。 通过以下代码设置的是注册端口: LocateRegistry.createRegistry(port); //注册端口注册端口默认是1099 通过以下代码设置的是通信端口: UnicastRemoteObject.exportObject(rmiService, 0); //随机通信端口其中第二个参数是通信端口,0表示随机...原创 2012-12-11 10:18:25 · 130 阅读 · 0 评论 -
一个基于RMI的小巧好用的框架
最近有用到rmi技术,需要实现Remote接口,需要抛出RemoteException异常,极其不爽,遂封装之,封装之后只需普通POJO对象即可!该框架核心有三个类,一个服务端类RMIEndpoint,一个客户端类RMIProxyFactory,一个通用接口GenericRmiService 先看一下用法: 服务端用法:RMIEndpoint.addService(Us...原创 2012-12-11 09:51:59 · 113 阅读 · 0 评论 -
太极图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 · 232 阅读 · 0 评论 -
我的开源项目
happyxml项目地址:https://github.com/yuancihang/happyxml简介:短小精悍的xml操作封装, 只有几百行代码. 支持注解绑定到对象 happyjdbc项目地址:https://github.com/yuancihang/happyjdbc简介:简化jdbc操作,提供更现代化的api, 支持分库分表 happyhttp ...原创 2011-04-14 17:11:21 · 152 阅读 · 0 评论 -
swing版按键控制台
最近找到一个unity3d游戏《地铁跑酷pc版》非常好玩,但是在PC上用鼠标上下左右的拖动操作很不方便,于是网上找到一个按键控制台的小工具可以用键盘的操作模拟鼠标的操作非常好用,可惜试用版只能使用1分钟,正式版要花银子滴。还好功能看起来比较简单,于是自己动手写了一个Java版的按键控制台。 按键控制台的核心功能就是接收键盘事件然后模拟出鼠标动作。Java的Toolkit.addA...原创 2013-05-09 09:59:48 · 558 阅读 · 0 评论 -
msgpack序列化与反序列化
最近想找个二进制序列化框架把对象存起来或者放到缓存里,首先排除了protobuf和thrift, 因为这两个都要写数据定义文件太烦,后来发现msgpack好像很不错的样子,决定试试 1.材料msgpack-0.6.12.jar2.先定义两个对象package test.magpack;import org.msgpack.annotation.Message;...原创 2015-06-20 15:32:16 · 1855 阅读 · 0 评论 -
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 · 468 阅读 · 0 评论 -
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 · 133 阅读 · 0 评论 -
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 · 279 阅读 · 0 评论 -
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 · 176 阅读 · 0 评论 -
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 · 337 阅读 · 0 评论