包裝類
包裝類(Wrapper Class):針對於原生數據類型的包裝。所有的包裝類(8個)都位於java.lang包下,java中的8個包裝類分別是:Byte、Short、Integer、Long、Float、Double、Character、Boolean。他們的使用方式都是一樣的,可以實現原生數據類型與包裝類型的雙向轉換。
包裝類的作用:java中就屬於這八個原生數據類型不屬於對象,或者說是引用類型,剩下的都是對象,或者引用類型。
/*
* Interger 在 lang包下,所以不需要導入
* 將int類型轉化爲Interger,調用Interger的intValue()方法,將包裝類中的int值取出
*/
public class HelloWorld {
public static void main(String[] args) {
int a=666;
Integer integer=new Integer(a);
int b=integer.intValue();
System.out.println(a==b);
}
}
數組(Array)
1、數組:相同類型數據的集合就叫做數組。
2、數組中的元素索引是從0開始的,對於數組來說,最大的索引==數組的長度-1
3、java中每個數組都有一個名爲length的屬性,表示數組的長度。length屬性是public,final,int的。數組長度一旦確定,就不能改變大小。
4、數組元素在內存中的存放是連續的。
public class HelloWorld {
public static void main(String[] args) {
int []arr=new int[6];//定義一個名字爲arr的數組,數組的長度爲6【第一種定義數組】
int []brr={1,2,3,4,5,6};//定義一個名字爲brr的數組,裏面有6個數組元素【第二種定義數組】
System.out.println(arr[0]);//因爲沒有給arr賦值,所以輸出int的默認值爲0
System.out.println(brr[0]);
}
}
5、equals
public class HelloWorld {
public static void main(String[] args) {
int []arr={1,2,3,4,5,6};
int []brr={1,2,3,4,5,6};
System.out.println(arr);
System.out.println(brr);
System.out.println(arr==brr);
System.out.println(arr.equals(brr));
}
}
【說明】:調用equals()方法,此時方法是繼承了Object類的方法,而且沒有被重寫,arr和brr分別是指向不同的數組對象地址,所以輸出結果爲false。從這邊可以明確,對於數組內容的比較千萬不能使用equals方法。
6、引用類型的數組
public class HelloWorld {
public static void main(String[] args) {
HelloWorld []persons=new HelloWorld[3];
System.out.println(persons[1]);
}
}
輸出結果:
null
【說明】:除了原生數據類型之外,引用類型如果沒有賦初值,則其內容爲null,null表示不指向任何對象。
public class HelloWorld {
public static void main(String[] args) {
Person []persons=new Person[3];
persons[0]=new Person(10);
persons[1]=new Person(20);
persons[2]=new Person(30);
for (int i = 0; i < persons.length; i++) {
System.out.println(persons[i].age);
}
}
}
class Person{
int age;
public Person(int age){
this.age=age;
}
}
輸出結果:
10
20
30
二維數組
二維數組是一種平面的二維結構,本質上是數組的數組。
二維數組的定義方式:
int [][]arr=new int [2][3];//表示2行3列
一維數組體現的是線性結構,二維數組體現的是平面結構。
例子01:輸出9x9乘法表
public class HelloWorld {
public static void main(String[] args) {
int [][]arr=new int[9][9];
for (int i = 1; i <=arr.length; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j+"x"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
定義不規則的數組
int [][]arr=new int[2][];//可以先定義行,後定義列
定義一維數組可以:int [] a=new int []{1,2,3};
定義二維數組可以:int[][]a=new int [][]{1,2,3},{4},{5,6,7,8};注意這裏面大括號裏面每個大括號表示一行,大括號之間用逗號隔開。
例子02:輸出菱形(雙重循環)
public class Test {
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3 - i; j++) {
System.out.print(" ");//輸出空格3210
}
for (int j = 1; j < (i + 1) * 2; j++) {
System.out.print("*");//*的個數是1357
}
System.out.println();//4個分行
}
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(" ");//輸出空格123
}
for (int j = 1; j <= 7 - 2 * i; j++) {
System.out.print("*");//*的個數是531
}
System.out.println();//3個分行
}
}
}