Javaの基本(B)フロー制御およびアレイ

プロセス制御

ブレークは、複数のループを終了します

public static void main(String[] args) {
    outer:
    for(int i = 0; i < 5; i++) {
        for(int j = 0; j < 3; j++) {
            System.out.println("i的值为:" + i + " j的值为:" + j);
            if(j == 1) {
                break outer;
            }
        }
    }
}

//输出:
//i的值为:0 j的值为:0
//i的值为:0 j的值为:1

実行するときbreak outer;、時間、ループタグ識別の外端を方向付けます。

Contineは、複数のループを無視しました

public static void main(String[] args) {
    outer:
    for(int i = 0; i < 5; i++) {
        for(int j = 0; j < 3; j++) {
            System.out.println("i的值为:" + i + " j的值为:" + j);
            if(j == 1) {
                continue outer;
            }
        }
    }
}

//输出
/*
i的值为:0 j的值为:0
i的值为:0 j的值为:1
i的值为:1 j的值为:0
i的值为:1 j的值为:1
i的值为:2 j的值为:0
i的值为:2 j的值为:1
i的值为:3 j的值为:0
i的值为:3 j的值为:1
i的值为:4 j的值为:0
i的值为:4 j的值为:1*/

実行するための休憩と同様に、continue outer;文の残りの部分は、次のサイクルが再び始まるとき、スキップ外側のラベルはサイクルのサイクルを識別します。

配列型

基本的な使用

ことをまず明確な配列は参照型です参照型、およびINT、データ型として文字列は、Aは基準変数、即ちポインタです。int[] aint[]

Javaの配列は、両方の基本データ型を格納することができ、あなたはまた、参照型を保存することができます。初期化アレイは、メモリ空間を固定すると、長さを変更することはできません。

配列の初期化方法:

//静态初始化
//方式一
int[] intArr = {1, 2, 3, 4};
//方式二
Object[] objArr = new Object[]{1, "Java", 3, "hello"};
//动态初始化
int[] intArr = new int[5];

動的な初期化がスペースのサイズを指定することによって実行されると、システムは自動的に初期値を割り当てます。

  • バイト、短い、int型、および長い、初期値0
  • 0.0のフロート、ダブル、初期値
  • CHAR、初期値 \u0000
  • ブール、初期値はfalseです
  • 参照型(クラス、インタフェース、および配列)、最初はnull

インデックス・アレイ、アレイが提供するアクセスlength特性収集配列長。

public static void main(String[] args) {
    int[] arr = new int[]{1, 2, 3, 4};
    
    //通过属性length获取数组长度,遍历数组
    for(int i = 0; i < arr.length; i++) {
        System.out.println(arr[i]);
    }
    
    //foreach遍历数组
    //使用foreach进行迭代时,不要对临时变量a再次进行赋值
    //因为迭代过程,只是对数组元素逐一拷贝赋给a,改变a的值,不会影响数组元素
    for(int a : arr) {
        System.out.println(a);
    }
}

メモリ深さのアレイ

配列が参照型であり、メモリアレイにおける参照変数と配列要素が別々に格納されています。配列参照変数はローカル変数である場合、それはスタック(スタック)メモリに格納され、;実際のオブジェクトは、スタックアレイ(ヒープ)メモリに格納されます。

配列型がプリミティブである場合、スタック配列要素は、メモリに格納されたデータの基本的なタイプであり、配列型が参照型である場合、次いで、スタックアレイ要素は、メモリに格納されたオブジェクト参照(アドレス)、実際の参照やポイントであります例えば格納されたオブジェクト、以下に示すように、2つのオブジェクトスチューデント張とリー、メモリの割り当てを格納する学生アレイ。ヒープメモリ配列オブジェクトは、もはやそれを実行するための任意の参照変数である場合、メモリはGCを回復しません。

public static void main(String[] args) {
    int[] a = new int[]{1, 2, 3, 4};
    int[] b = a;
    
    //a和b指向的内存地址相同,指向同一个数组对象,改变b中元素,a也会变
    System.out.println(a.hashCode());  //460141958
    System.out.println(b.hashCode());  //460141958
}

多次元配列

多次元配列での性質である基準変数が要素として別のアレイに配列に格納されています。また、多次元配列の参照型は、int[][] aあるint[][]データ型はまた、可変要素がであるint[]配列参照のタイプ。

//二维数组当一维数组使用,相当于定义了一个含有4个int[]类型引用的数组,初始化时元素存null
int[][] a = new int[4][];

int[][] b = new int[3][4];
//相当于下列代码,定义了一个含有3个int[]类型引用的数组,每个int[]数组大小为4,初始化时为0
int[][] b = new int[3][];
b[0] = new int[4];
b[1] = new int[4];
b[2] = new int[4];

//静态方式初始化二维数组
String[][] strArrays1 = new String[][] {
    new String[3],
    new String[]{"hello"}
};

String[][] strArray2 = {
    new String[3],
    new String[]{"hello"}
};

おすすめ

転載: www.cnblogs.com/zongmin/p/11332797.html