String基础
String a = "ada"; //“ada”存放在常量池里
String str = "ada";
String b = new String("ada"); //新建对象
System.out.println(a == b); //返回false,a和b不是同一个对象
System.out.println(a == str); //返回true
//比较字符串时一般用equals
System.out.println(a.equals(b)); //返回true
String c = "ada" + "ada"; //“ada”存放在常量池里
String d = "adsa" + 12; // +:字符串连接符
数组拷贝
package cn.learning;
public class test02 {
public static void main(String[] args) {
String[] s1 = {"aa", "bb", "cc", "dd", "ee"};
String[] s2 = new String[10];
System.arraycopy(s1/*被copy对象*/, 2/*开始copy的位置*/, s2/*copy到的对象*/, 6/*copy到的对象的位置*/, 3/*被copy的长度*/); //删除、插入数组元素也可以用arraycopy
for(int i = 0; i < s2.length; i++) {
System.out.println(i + "--" + s2[i]);
}
}
}
输出结果:
数组扩容
String[] s2 = new String[原数组.length + 扩容数];
再把原数组copy给s2,达到扩容效果
arrays类使用
如插在元素不存在则返回 -1。
多维数组
public class Test2DimensionArray {
public static void main(StringD args) {
int[][] a = new int[3][];
a[0] = new int]{20,30};
a[1] = new int]{10,15,80};
a[2] = new int[{50,60};
System.outprintln(a[1][2]); //输出80
//静态初始化二维数组
int[][] b= {
{20,30,40},
{50,20},
{100,200,300,400}
}
System. outprintln(b[2][3]); //输出400
}
}
二分法查找(折半检索)
必须先排好序(或用冒泡排序):
在用二分法查找元素的索引值:
包装类
以 Integer 为例,其他类似:
自动装箱、自动拆箱
编译器帮忙修改的。
String类
String a = "adads"; //a初始化之后就不可再修改。
比较字符串用 equals 方法。
可变字符序列
StringBuilder、StringBuffer用法
StringBuilder示例::
需要字符串累加时,忌讳:
占用太多内存,系统容易崩溃。
应用此法:
节省空间,速度也快。