java-StringUtils commons-lang

工作容易遇到的: 必须要8位,不够的就拿0去补 System.out.println(StringUtils.leftPad(“34”, 8, “0”)); // 00000034 又或者你需要在一个数组中加入一个元素,你可以这么做: 把数组里的字符串用:连接 System.out.println(StringUtils.join(new String[]{“cat”,”dog”,”carrot”,”leaf”,”door”}, “:”) // cat:dog:carrot:leaf:door 如果你需要一个大写字母或者是需要一个字符串中的每个单词第一个字母大写,你可以这么做: System.out.println(StringUtils.capitaliseAllWords(“a sentenced to be capitalised”)); // A Sentenced To Be Capitalised 如果你需要计算一个字母在字符串中出现的个数,你可以使用countMatches方法: System.out.println(StringUtils.countMatches(“Bethany plays with army men”, “e”)); // 2 甚至还有计算两字符串之间的Levenshtein-Distance System.out.println(StringUtils.getLevenshteinDistance(“David”, “Jakob”)); // 4 少于5位的就用99去补 直到补足5为 System.out.println(StringUtils.leftPad(“123”, 5, “99”)); //99123 ———————————–日期的使用: Name                                 Format ISO_DATE_FORMAT                      yyyy-MM-dd”2004-01-02″ ISO_DATE_TIME_ZONE_FORMAT            yyyy-MM-ddZZ”2004-01-02-07:00″ ISO_DATETIME_FORMAT                  yyyy-MM-dd’T’HH:mm:ss”2004-01-02T23:22:12″ … Read more

java中的动态加载和热替换

1.C++编写的程序需要经过编译称为目标文件,然后在程序执行之前进行链接后才可以称为可以运行的可执行程序,这个链接可以发生在程序运行之前,也可以发生在程序运行后(在内核中完成链接过程)再被执行。(运行可以理解为双击打开)。而Java则只需要编译成字节码,然后交给JVM解析器去链接执行就可以了。(C++系列也拥有动态加载和动态链接等概念) 2.Java的动态加载实际上就是程序在执行过程中可以根据程序设定去加载需要被执行的字节码文件。 3.热替换属于动态加载的一种,但是热替换是特殊的动态加载机制。 4.动态加载在Java中有2种实现,第一种通过ClassLoader.loadClass()去加载,ClassLoader最高级别的类加载器,所有的类都归他管理,用loadClass加载的类,是未经过初始化的,所以很多静态变量和方法无法被使用,第二种方法则是,Class.forName().用这个方法加载的类已经经过初始化。 5.而如何实现热替换呢?首先我们要知道ClassLoader中的loadClass在加载类的时候会检测该类是否已经存在,如果存在则不会去加载,如果不存在则加载该类并缓存。所以默认的ClassLoader是无法实现热替换的。换句话说,要实现热替换就必须实现一个自己的MyClassLoader,实现一个自己的用于加载类的方法findClass(),在方法里面要做的事情就是读取本地字节码文件,只用父类的defineClass()方法去解析它。这样就可以获取新的类了,而旧的类由于ClassLoader不可达,所以会被GC回收。 下面是MyClassLoader的代码: import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class MyClassLoader extends ClassLoader { public MyClassLoader() { } public Class<?> findClass(String name) throws ClassNotFoundException { String classPath = MyClassLoader.class.getResource(“/”).getPath(); String fileName = name.replace(“.”, “/”) + “.class”; File classFile = new File(classPath, fileName); if(!classFile.exists()) … Read more

Java中Json转换Bean对象并忽略大小写!

import com.sdzn.vo.ICPostJsonBeanVO; public class test { public static void main(String[] args) { String tString = “{\”FuncName\”:\”UploadGroupInfo\”,\”ParamNum\”:\”1\”,\”ParamValue\”:\”444\”}”; JSONObject jsonObj1 = JSONObject.fromObject(tString); JsonConfig config = new JsonConfig(); config.setJavaIdentifierTransformer(new JavaIdentifierTransformer() { @Override public String transformToJavaIdentifier(String str) { char[] chars = str.toCharArray(); chars[0] = Character.toLowerCase(chars[0]); return new String(chars); } }); config.setRootClass(ICPostJsonBeanVO.class); ICPostJsonBeanVO p2 = (ICPostJsonBeanVO) JSONObject.toBean(jsonObj1, config); System.out.println(“json转化为对象:方法名:” + … Read more

java调用rest接口

package com.22pig.util; import java.io.IOException; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @Description * @author * @date 2016年10月14日 下午4:04:11 */ /** * * * 分装一个http请求的工具类 */ public class HttpClientUtil … Read more