String 类:
1. 对于String对象的相等性判断来说,请使用equals()方法,而不是==。String的equals()是判断当前字符串与传进来的字符串的内容是否一致。
2. String是常量,其对象一旦创建完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容。
3. String Pool (字符串池) 在方法区中。
4. String s = “aaa”;(采用字面值方式赋值)
1). 查找 String Pool 中是否存在“aaa”这个对象,如果不存在,则在 String Pool 中创建一个“aaa”对象,然后将String Pool中的这个“aaa”对象的地址返回来,
赋给引用变量 s, 这样 s 会指向 String Pool 中的这个“aaa”字符串对象
2). 如果存在,则不创建任何对象,直接将 String Pool 中的这个 “aaa” 对象地址返回来,赋给 s 引用。
5. String s = new String(“aaa”);
1). 首先在 String Pool 中查找有没有 “aaa” 这个字符串对象, 如果有, 则不在 String Pool中再去创建“aaa”这个对象了,直接在堆中(heap)中创建一个
“aaa”字符串对象, 然后将堆中的这个“aaa”对象的地址返回来,赋给 s 引用,导致 s 指向了堆中创建的这个“aaa”字符串对象。
2). 如果没有,则首先在 String Pool 中创建一个“aaa“对象,然后再在堆中(heap)创建一个”aaa“对象,然后将堆中的这个”aaa“对象的地址返回来,赋给 s 引用,
导致 s 指向了堆中所创建的这个”aaa“对象。
6. 处理字符串时注意编码格式,将二进制转换为字符串可以考虑构造方法:new String(byte[] bytes, String charsetName)
7. isEmpty()方法只有当字符为""的时候才返回true;当字符串为" "返回false。可以借助trim()方法。
8. valueOf()方法将char数组,各种原生数据类型转换为字符串。byte数组不可以。
9. toCharArray()方法将字符串转换为char数组
10. compareTo()方法可用于字符串之间大小比较
11. 常用的方法还有:contains ; endsWith ; equalsIgnoreCase ; getBytes ; length ; replaceAll ; split ; startsWith ; substring ; charAt;
Array 数组:
1. 定义数组几种格式:
1). type[] 变量名 = new type[数组中元素的个数];
2). type 变量名[] = new type[数组中元素的个数];
3). type 变量名[] = new type[]{逗号分隔的初始化值列表};
4). type 变量名[] = {逗号分隔的初始化值列表};
2. 数组中的元素索引是从0开始的。对于数组来说,最大的索引 == 数组的长度 - 1。
3. Java中每个数组都有一个名为length的 属性,表示数组的长度。length的属性是public,final,int的。数组一旦确定,就不能改变大小。
4. int[] a = new int[10],其中a是一个引用,它指向了生成数组对象的首地址。
5. 对于原生数据类型来说,数组中存放的是数据值。而对于引用类型来说,数组中存放的是引用类型的值,不是对象本身。
6. 二维数组是一种平面的二维结构,本质上是数组的数组。二维数组的定义方式:type[][] a = new type[][]等
7. 三维数组定义方式:type[][][] a = new type[][][]