首页 > 代码库 > Java SE 基础知识(String,Array)

Java SE 基础知识(String,Array)

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)
       
 


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[][][]

 

文中内容主要摘自圣思园笔记

Java SE 基础知识(String,Array)