public class Test1 {
public static void main(String[] sge){
method_t();
}
public static void stp(Object ob){
System.out.println(ob);
}
public static void method_t(){
char[] arr = {'a','b','c','d','e','f'};
String s = new String(arr,1,5) //这里是从1号角标开始,取出5个,所以是 bcdef
// 你改成 String s = new String(arr,2,5),那就是从角标2开始取五个,那就要取到角标6了,你的数组长度只有6,怎么可能有角标6呢
stp("s="+s); //所以就溢出了嘛
}
}
打印结果s=bcdef
但是把 String s = new String(arr,1,5);换成String s = new String(arr,2,5);
为什么就数组越界呢?Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7