- 浏览: 468329 次
- 性别:
- 来自: 杭州
最新评论
-
chxiaowu:
nice!
Quartz实现固定执行次数 -
zxjlwt:
学习了。http://surenpi.com
自定义ClassLoader -
kadlly:
public static final Logger log ...
Hessian 权限认证 -
spring_springmvc:
java程序语言学习教程 地址http://www.zuida ...
Java-Final -
liushuiwuyan:
[img][/img]
设计模式-单例
文章列表
使用HttpClient来发送请求获取数据最经典,以下呢我们使用jdk自带的HttpUrlConnection来操作, 很简单,发个请求取出数据,还可以条过https的验证.
package org.ycl.commons.text;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
impor ...
JVM优化机制好诡异
- 博客分类:
- JDK
long i[] = new long[1000000];
for(int j = 0; j < 1000000; j++) {
i[j]= 0l;
}
如上代码,按long类型占8位计算,应该占8000000/(1024*1024) = 7.62939453125MB内存,没问题.
Long i[] = new Long[1000000];
for(int j = 0; j < 1000000; j++) {
i[j]= 0l;
}
如上代码,按Long类型至少占12位计算,应该占11.444091796875MB内 ...
巧秒设计方法,不返回null
- 博客分类:
- JDK
/**
* {@inheritDoc}
*
* This implementation always returns a {@link Cache} implementation that will not
* store items. Additionally, the request cache will be remembered by the manager for consistency.
*/
public Cache getCache(String name) {
Cache cache = caches.get(name);
...
使用HttpClient来发送请求获取数据最经典,以下呢我们使用jdk自带的HttpUrlConnection来操作, 很简单,发个请求取出数据,还可以条过https的验证.
package org.ycl.commons.text;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
impor ...
Java Application Cache
- 博客分类:
- JDK
Application Cache is used very wide.
we need to cache user/business information in application, cause of it is used often, so don't need to clear cache.
sure, we can control of it, but if we cache so many messages, we will be lose control. every business want to cache something to improve it's perf ...
Java 排序算法
- 博客分类:
- Effective Java
package com.kneel.core.utils;
/**
* sort is the time:space.
*
* 1. if you want speed, then you need more space, you can use multiple threads to process multiple parts at one time.
* 2. if you have limit space, then you can process a part of it one by one.
*
* there is no best sort, ...
commons-logging
- 博客分类:
- Apache
我想,这个包是Apache开源里面用的最多的包,被各种开源使用,因为这里使用发现机制。
1. Cached
2. SystemProperty
3. Service
4. FileProperty
5. default
那么优先级最高的使用System.setProperty,接下来是Service方式配置实现, 还有一种,也就是大家用的最多的commons-properties.propery, 这种方式最方便.
如果都没有,那么使用JDK14Logger实现。
可能有的人把log4j的jar加到项目组,就 ...
commons-io主要对输入流,输出流的打开和关闭,主要是对文件的copy, 字符串到文件的传输, 其实这个功能对IO的封装还是不错的,我们就不用自己去打开输入流和输出流。
package org.ycl.commons.text;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IO ...
commons-lang
- 博客分类:
- Apache
这个包处了String和Number的封装,还有对Date, System的封装。 其实这都是最基础的,所以很多项目都会依赖,当然commons-lang的封装可能很多都用不到,就自己建一个core,这样方便,代码干净,好维护.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional inform ...
除了对字符串的复杂处理,对于数字,我们也是头大啊,类型,位移等等操作,如果写在程序里,无疑是天文数字,而工具类可以统一计算和管理
package org.ycl.commons.text;
import org.apache.commons.lang.StringUtils;
/**
* 1. leftBit
* <li>- 2^N, assign: this seat digit is one Auth</li>
* 2. validAuth
* <li>- X&N, assign: X' N seat digit ...
其实对字符串的处理,一般一个项目的core会建一个,最经典的算是commons-lang对他的封装。 其实我们可能不需要用到所有的方法,比如我们只是使用StringUtils.isBlank,就引入一个jar,那也太奢侈了,会增加项目的依赖,项目依赖越少越好,直到保持核心层最少依赖。 其实源码写的好,可以采用copy,reference等方式会更好。
package org.ycl.commons.text;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream; ...
这两个JDBC轻量分装框架的确都是刚刚的。
但是相对来说commons-dbutils缺少封装, 接下来就测试上一篇的help.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>ENTITY event, TABLE events</comment> ...
commons-dbutils Helper
- 博客分类:
- Apache
封装下dbutils, 使用这个help去操作数据库会非常的方便,下面还提供了例子.
package com.kneel.core.help;
import java.io.IOException;
/**
* just wrap DbUtils QueryRunner, provider simple functions to use.
*
* give chance to add action and do operator
*
* query: resolve all query problem. insert: get secuqnce to i ...
commons-dbutils
- 博客分类:
- Apache
现在ORM框架很多,什么Hibernate,ibatis等等。
Hibernate是提供了便利的方法来自动生成sql,帮你做了很多事情,但是你要花大量时间去学习那该死的,难记的,复杂的hsql语言,我业内的朋友也在向我抱怨,什么one-to-one,one-to-many,many-to-many,any等,把对象关系写在hbm文件里,自己看了都想吐.还不如自己写sql.
其实Hibernate还做了一级缓存(启用),二级缓存(默认未启用),如果你做批量操作,悲剧来了,OOM是正常的,因为缓存了太多的对象。
其实ibatis是不错的选择,半自动,可以自己写sql,最好帮你吧结果集设置到对象 ...