1,数字可以转换成其他的进制的字符串时,能够使用Integer.toString的静态方法。
例子
int value = 3;
//2进制
String binaryValue = Integer.toString(value, 2);
System.out.println("二进制的 3:" + binaryValue);
int value16 = 31;
System.out.println("十六进制的23:" + Integer.toString(value16, 16));
2 ,subString方法可能会造成内存泄露。比方说一个字符串,长度为100个char的字段A。然后subString,截出一个2个char的字段B。那么B的字段中的属性value还是会使一个100个char的数字。
当然,这还会影响split方法,
/**
* 演示SubString泄漏内存
*/
@Test
public void testSubStringLeak(){
String subString = this.subString();
/**
* 在这里设断点。可以看到subString中的Value还是10个Char的数组
* value的值
* [a, b, c, d, e, f, g, h, i, g, h, m, n]
*/
System.out.println(subString);
}
private String subString(){
String origin = "abcdefghighmn";
return origin.substring(0, 2);
}
3, 从代码实现上来说,String的实现是一个char的属性Value,offset是数组中的起始位置,然后count是数组中的截取。
4, replace,subString等的方法,我们希望的结果是返回值,其调用方法的对象,本身并不改变。
String s = "java";
String result = s.replace("j", "l");
System.out.println("origin s:"+s);
System.out.println("replaced result:"+result);
5,matches(String regex)
replaceFirst(String regex, String replacement)
replaceAll(String regex, String replacement)
replace(CharSequence target, CharSequence replacement)
split(String regex, int limit)
split(String regex)
都是借用java.util.regex 包下面的类来完成的。