
java提高篇
xlj3
静以修身,俭以养德
展开
-
EntityEscape
public final class EntityEscape { public static String escapeString(String s) { /* 30 */ if (s == null) { return ""; } else { /* 31 */原创 2017-11-02 09:39:51 · 558 阅读 · 0 评论 -
JNI字段描述符“([Ljava/lang/String;)V”
“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。如果以一转载 2017-05-29 10:37:03 · 299 阅读 · 0 评论 -
有意思的可变数组依据tomcat生命周期的lifeSupport
依据tomcat源码中的LifecycleSupport.addLifecycleListenerpackage com.array;public class ArrayTest { private static String str1[] = new String[0]; public static void main(String[] args) { for (int i = 0原创 2017-05-28 10:32:13 · 268 阅读 · 0 评论 -
spring3注解方式无法注入servlet和filter
spring3注解方式无法注入servlet和filterfilter和servlet不受spring管理,所以不能依赖注入spring管理的bean,在servlet里的init方法加入如下代码:private XxxxService xxxxService;WebApplicationContext wac = WebApplicationContextUtils.getR转载 2017-04-29 21:23:55 · 901 阅读 · 0 评论 -
无需启动项目测试spring RunWith ContextConfiguration
import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit转载 2017-04-29 21:19:16 · 1895 阅读 · 1 评论 -
并发数 = QPS*平均响应时间
并发数 = QPS*平均响应时间QPS(TPS):每秒钟request每秒查询率QPS:对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,即每秒请求数,即最大谈吐能力。并发数:并发数和QPS是不同的概念,一般说QPS会说多少并发用户下QPS,当QPS相同时,并发用户数越大,网站并发处理能力越好。当并发用户数过大时,会造成进程(线程)频繁切换,反正真正用于处转载 2017-04-28 16:48:00 · 7202 阅读 · 1 评论 -
java.util.ResourceBundle 和java.util.properties 读取配置文件区别
java.util.ResourceBundle 和java.util.properties 读取配置文件区别 这两个类都是读取properties格式的文件的,而Properties同时还能用来写文件。 Properties的处理方式是将其作为一个映射表,而且这个类表示了一个持久的属性集,他是继承HashTable这个类。ResourceBundle本质上也是转载 2017-03-10 17:38:42 · 533 阅读 · 0 评论 -
EL调用的是poji实体类的get方法
public String getStrings() { return "Customer [id=" + id + ", name=" + name + ", birthday=" + birthday + ", money=" + money + ", sex=" + sex + "]";}姓名000000000000:${cus.strings}姓名000000000000:C原创 2017-02-11 11:34:06 · 776 阅读 · 0 评论 -
Java下利用Jackson进行JSON解析和序列化,注解应用
package org.outman.dms.server;import java.text.SimpleDateFormat;import com.fasterxml.jackson.databind.ObjectMapper;public class JacksonDemo { public static void main(String[] args) thro转载 2017-02-08 19:02:17 · 5087 阅读 · 0 评论 -
HashMap多线程造成了CPU100%,死循环
resize()方法的时候是罪魁祸首原创 2017-01-12 21:02:32 · 1017 阅读 · 0 评论 -
模拟HashSet
package chain;/** * 单链表 节点(Map中的Entry) * * @author sd * */public class Node_Single { public String key;// 节点的值 public Node_Single next;// 指向下一个的指针 public Node_Single(String key) {// 初始化原创 2017-01-12 18:02:44 · 322 阅读 · 0 评论 -
System.getProperty("catalina.home")+":"+System.getProperty("catalina.base")
测试结果:E:\apache-tomcat-7.0.33:E:\apache-tomcat-7.0.33应用测试:System.getProperty("catalina.home")+":"+System.getProperty("catalina.base")System.getProperty("catalina.home") ,Tomcat 安装目录,一般是用来查找库 jar 的。原创 2017-05-20 13:34:35 · 7889 阅读 · 0 评论 -
关于class.getResourceAsStream() 与class.getClassLoader().getResourceAsStream()区别
首先用类加载资源文件的方式可以有以下三种: (包结构图) 1)InputStreaminStream=DaoFactory.class.getResourceAsStream("dao.properties"); 2)inStream=DaoFactory.class.getResourceAsStream("/com/jdbc/dao/dao.pro转载 2017-05-20 14:04:16 · 2619 阅读 · 0 评论 -
关于更改jdk源码替换应用的例子
第一个参数表示-Xbootclasspath/p:path 让jvm优先于默认的bootstrap去加载path中指定的class第二个表示:字节码更改的jar切记eclipse一定要用jre而不是jdk,jre是运行环境,jvm会对jre进行先后顺序的匹配,而不是jdk,-----------------------------------引用-原创 2017-06-01 10:48:24 · 2290 阅读 · 0 评论 -
在Java中,将ExecutorService转为守护程序
问题描述我正在Java 1.6中使用一个ExecutoreService,简单地开始ExecutorService pool = Executors.newFixedThreadPool(THREADS). 当我的主线程完成(以及由线程池处理的所有任务)时,此池将阻止我的程序关闭,直到我明确地调用pool.shutdown();我可以避免通过某种方式将这个池使用转载 2017-08-30 09:21:35 · 8294 阅读 · 6 评论 -
String和基本数据类型的比较方式
package com.test;/** * @author xlj *简单的比较方式 */public class Test { public static void main(String[] args) { System.out.println("192.168.101.140".compareTo("192.168.101.140"));//== System.原创 2017-08-22 10:20:44 · 396 阅读 · 0 评论 -
jboss源码中片段分析
package com.test;import java.security.AccessController;import java.security.PrivilegedAction;import java.util.ArrayList;import java.util.List;import java.util.ListIterator;//有兴趣可以自己执行玩耍public原创 2017-07-19 10:34:12 · 555 阅读 · 0 评论 -
关于socket一对一和多对一连接总结
一个客户端对应一个服务端长连接:while(true)应该在输入输出流方位进行阻塞,目的指accept阻塞一个客户端,并进行长连接处理客户端信息,此时客户端服务端都不可断开;多个客户端连接服务端后断开while(true)应该在accept处进行阻塞,目的是接受多个客户端过来的连接,此时客户端一次连接断开,服务端server不可断开,只关闭socket即可,再次循环到accep原创 2017-06-14 10:02:09 · 5239 阅读 · 0 评论 -
对Class.getResourceAsStream和ClassLoader.getResourceAsStream方法所使用的资源路径的解释
关于Class.getResourceAsStream首先, 我们必须先了解根路径“/”是如何定义的,这对我们使用getResourceAsStream准确加载文件是很重要的。首先,我们要明白这个根路径是对应类所处类路径上的根目录!什么意思呢?假如一个项目经过编译之后生成了如下class文件和目录结构:[plain] view plain cop转载 2017-06-13 11:47:09 · 298 阅读 · 0 评论 -
正则替换
String patt = "\\d"; Pattern r = Pattern.compile(patt); Matcher m = r.matcher(s); if (m.find()) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < m.end()-m.start(); i++) {原创 2017-06-24 10:31:36 · 308 阅读 · 0 评论 -
java之socket的OOBInline和UrgentData和发送心跳包研究
UrgentData可以理解为紧急发送数据方式,如果我们客户端先用write方法写入数据,再用UrgentData发送数据,再去执行flush操作,我们可以得到服务端先打印UrgentData发送的数据,然后再打印write写入的数据。客户端代码实现:[html] view plain copy print?package com.cheny转载 2017-06-11 23:39:17 · 569 阅读 · 0 评论 -
遍历map
keySet是键的集合,Set里面的类型即key的类型entrySet是 键-值 对的集合,Set里面的类型是Map.Entry1.keySet()Map map=new HashMap();Iterator it=map.keySet().iterator();Object key;Object value;while(it.hasNext()){key=it.next();转载 2017-06-08 15:43:48 · 357 阅读 · 0 评论 -
List<LinkedHashMap<String,String>>排序
package com.test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.List;import转载 2017-06-08 09:23:45 · 3674 阅读 · 0 评论 -
fastjson解析生成map有序性
Map> map = JSON.parseObject(lineTxt.trim(), LinkedHashMap.class,Feature.OrderedField);加上这个: LinkedHashMap.class,Feature.OrderedField);原创 2017-06-06 16:51:17 · 2720 阅读 · 0 评论 -
先记录一下转化json特殊处理
@JsonProperty("n") private String name; @JsonProperty("u") private String url; @JsonProperty("i")先记录一下转化json特殊处理原创 2017-02-08 16:21:03 · 285 阅读 · 0 评论 -
http请求总结
package com.taotao.httpclient;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEnc原创 2017-02-08 15:18:06 · 415 阅读 · 0 评论 -
从指定文件(字节数组)获取内容以及获取长度
package cn.felay.io;import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;/** * @author转载 2016-12-07 11:20:50 · 5341 阅读 · 0 评论 -
关于Druid
一、关于DruidDruid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的St转载 2016-12-05 09:37:42 · 609 阅读 · 0 评论 -
我是一个线程
第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”我一脸懵懂,“包裹,什么包裹?”“不要着急转载 2016-12-02 09:21:42 · 248 阅读 · 0 评论 -
response.setHeader各种用法
一秒刷新页面一次 response.setHeader("refresh","1"); 二秒跳到其他页面 response.setHeader("refresh","2;URL=otherPagename");没有缓存:response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no转载 2016-12-01 20:10:37 · 1133 阅读 · 0 评论 -
response.setContentType()的作用及参数
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。response.setC转载 2016-12-01 16:38:37 · 67508 阅读 · 12 评论 -
File分隔符挺有意思的
package Test5;import java.io.File;/** * @author xlj * */public class RemoteFile { public static void main(String[] args) throws Exception { System.out.println("File.separator:" + File.sep原创 2016-12-01 10:16:20 · 542 阅读 · 0 评论 -
writeValueAsString
封装成工具类public static String toJsonByObject(Object obj){ String jsonStr = null; try { jsonStr = mapper.writeValueAsString(obj); } catch (IOException e) { // TODO Auto-generated catch bl原创 2016-11-30 09:24:29 · 42557 阅读 · 3 评论 -
response.setContentType()的作用及参数
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,可以参考。response.se转载 2016-11-29 20:31:33 · 313 阅读 · 0 评论 -
jsonobject的element和accumulate
package com.test;import net.sf.json.JSONArray;import net.sf.json.JSONObject;/** * 测试element * 和accumulate * @author admin *public JSONObject element (String key, Object value) 将键/值对放到这个JSONObj原创 2016-11-29 17:06:48 · 5003 阅读 · 0 评论 -
easyui 表头动态生成
使用EasyUI实现列不固定的表格(需要引入easyUi中的jQuery.easyui.min.js、easyui.css、icon.css),步骤如下:jsp页面:1.新建一个准备放table的div容器: 2.在页面加载好后,调用后台获取表头列信息:JavaScript'> $(function(){ //先清空转载 2016-11-28 21:45:21 · 1120 阅读 · 0 评论 -
文件转字节流数组,
public static void main(String[] args) throws IOException{ String url = "localhost:8080/eom/mt/MTCon/upload.json"; File file = new File("111.txt"); FileInputStream inputStre原创 2016-12-07 16:58:44 · 1606 阅读 · 0 评论 -
json-lib 与Jackson性能对比
----------json-lib---------------Map转字符串耗时:5540.254697字符串转Map耗时:14268.4411--------Jackson------------------Map转字符串耗时:962.843043字符串转Map耗时:530.927814以下为测试代码:MapToJson.javapackage com.jso转载 2016-12-17 22:00:47 · 852 阅读 · 0 评论 -
jackson
package com.test.jackson; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; imp原创 2016-12-17 22:06:23 · 322 阅读 · 0 评论 -
java三种方法追加内容到文件末尾
package org.outman.dms.server; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.Out转载 2017-02-08 14:48:59 · 2701 阅读 · 0 评论