java小东西

java.sql.date 精确度只到日,没有小时
java.sql.timestamp 精确到纳秒

单说for循环的时候,数组x.length=100W,直接使用1000000和使用x.length做条件差别并不大

(以下时间单位全部为毫秒)
list数据50W行,使用i<list.size() 时间为140-260(200以下出现3-5次,250+出现1到2次),使用i<50W时间反而为200-230

但是80W行数据list为 530-670 直接使用80W 为 230-360
10W数据list为31-63,47居多,直接10W为16-47,基本都是31和47
2W条数据以内两种方式基本没差别。

数据1W条时候string+=连接时间为590-710毫秒,每添加一个+","多100-300毫秒
StringBuffer 1W行数据append时间为0-16毫秒,,主要为0毫秒,添加","基本不增加时间
10W行数据 15-47毫秒,100W行数据343-483毫秒

String700条数据+=和StringBuffer 1W5行数据append差不多为0-16毫秒

用了Stringbuffer就不要用+连接符号了
Stringbuffer.append(x);
Stringbuffer.append(",");

Stringbuffer.append(x+",");


50W数据不用+为170-230,用+为290-350


去除StringBuffer最后一个字符的三种方式
sb.deleteCharAt(sb.length()-1);删除最后一个字符
sb.delete(sb.length()-1, sb.length());从指定处删,删最后一个字符
sb.setLength(sb.length()-1);设置StringBuffer长度

字符串连接时,在for循环里加if判断后再加append(","),50W行数据为200-250,直接在for循环里只append(","),最后使用sb.deleteCharAt(sb.length()-1);去除最后一个","使用时间为170-230,其中170,180居多,不过5K以内数据差距基本没有。


Enumeration<String> val= getRequest().getParameterNames();

while(val.hasMoreElements()){
String name=(String)val.nextElement();
System.out.println(name+":"+getRequest().getParameter(name));
}

你可能感兴趣的:(java)