一.String类的方法 public char charAt(int index) 返回字符串index个字符 public int length() 返回字符串长度 public int indexof(String str) 返回字符串中出现str的第一个位置 public int indexof(String str, int fromIndex) 返回字符串中从fromIndex开始出现str的第一个位置 public bool…
String字符串相加的问题 前几天同事跟我说我之前写的代码中在操作字符串时候,使用字符串相加的方式而不是使用StringBuffer或者StringBuilder导致内存开销很大.这个问题一直在困扰我,因为在<Think in java>一书中,作者说使用"+"拼接字符串并不比StringBuffer或者StringBuilder效率低下,因为"+"是java唯一一个系统级的针对字符串的重载过的操作符. 大家都知道String是一个final修饰的类.…
最近到广州某建站互联网公司面试,当时面试官问假设有两个字符串String a="abc",String b = "abc";问输出a==b是true还是false.我当时毫不犹豫答了true,然后根据字符串常量池的知识点结合jvm的内存模型讲解,然而他却跟我说是false,说这是最基本的问题.我当时一脸懵逼,跟他讨论了很长时间,后来发现他是错的,他说a,b两个变量是存在栈中,这两个引用是不一样的,只不过它们指向的内容是一样的.因为他毕竟工作了好几年,我当时也质疑我的…
1.单纯的Unicode 转码 String a = "\u53ef\u4ee5\u6ce8\u518c"; a = new String(a.getBytes("UTF-16"),"Unicode"); 2.String 字符串中含有 Unicode 编码时,转为UTF-8 public static String decodeUnicode(String theString) { char aChar; int len = theString…
String 字符串相加 对比 public static void main(String[] args) { String a = "helloword"; final String b = "hello"; String d = "hello"; String c = b + "word"; String e = d + "word"; String f ="hello"+&quo…
public class StringBuilder_and_StringBuffer { private static long SystemTime(){ return System.currentTimeMillis(); } private static void TString(){ long begin=SystemTime(); String text=""; for (int i = 0; i <10000; i++) { text+=i; } long end=…
1.数组线性表ArrayList 数组一旦定义则不可改变大小.ArrayList可以不限定个数的存储对象.添加,插入,删除,查找比较数组更加容易.可以直接使用引用类型变量名输出,相当于toString().输出一个数组([,,,,,,]),数组中元素为对应标号存储元素的toString[]. 数组线性表和数组的区别总结如下: public class TestArrayList { public static void main(String[] args) { java.util.ArrayL…