Java 必須知識ポイント 4 - データ型、配列、ビット演算子

データの種類

Java データ型は、基本データ型と参照型で構成されます

基本データ型は C 言語のデータ型と一致していますが、基本型以外は参照型です。

参照型には主に、クラス (クラス)、インターフェイス (インターフェイス)、配列、列挙 (enum)、注釈 (注釈) が含まれます。

char 定数は、一重引用符 ('') で囲む必要があります。char c = 'a';//変数 c を char 型として指定し、a に初期値を代入します。

さまざまな定義規則:

int i = 100;   char c1 = a;  byte b = 0b11; long l = 567L; float f = 1.86f; double d = 2.1;

エスケープ文字について: \` は ` を表すために使用され、\\ は char 型である \ を表すために使用されます。

自動型変換:

条件: 2 つのタイプに互換性がある必要があります。ターゲット タイプがソース タイプより大きいこと。

float fl = b * f; //バイト型 b は、操作に参加するために f1 と一致する float 型に自動的に変換されます。

ビット演算子

ビット演算型

文法形式

   ルール

ビット論理積 (AND)

値1 & 値2

1 & 1= 1、その他の場合、結果はすべて 0

ビット単位の NOT (NOT)

〜値1

取反

ビット単位または (OR)

値1 | 値2

どちらの演算子も 1 で、結果は 1 です

ビットごとの排他的 OR (XOR)

 値1 ^ 値2

違うなら1、同じなら0。

左に移動

値 << 数値

最上位ビットを捨て、右側を 0 で埋めます。

左右シフトしても桁数は変わらない

右に動く

値 >> 数値

 最下位ビットは破棄され、最上位ビットには元の最上位ビットの数値が追加されます。

符号なし右シフト

>>>数値

最下位ビットは破棄され、最上位ビットは 0 で埋められます。

配列

配列の作成と初期化

静的初期化: 配列は、配列の定義と同時に初期化されます。

例: int[] K={1,2,3,4} または int[] K= new int[]{1,2,3,4}

動的初期化: 配列の定義と初期化を分離します。

例: int[] array; //配列宣言

array[0] = 1; // 配列の最初の要素を割り当てます

array[1] = 2; // 配列の 2 番目の要素を割り当てます

//[] 配列は配列[]と同じですが、前者がよく使われます

または int[] K= new int[100];// 長さ 100 の整数配列を新たに出力します。

配列が作成されると、配列の要素には既定の初期値が設定され、配列の初期値は、数値型の場合は 0、ブール型の場合は false、文字型の場合は \0、参照型の場合は null になります。

配列のコピー

配列のコピーとは、ソース配列の要素のコピーを作成し、それらをターゲット配列の対応する位置に割り当てることを指します。一般的に使用される 3 つの配列割り当て方法があります

1. ループ ステートメントを使用してコピーします (ループ ステートメントを使用してソース配列の各要素を走査し、それをターゲット配列の対応する位置に割り当てます)。 

2. chone() メソッドを使用する

Java では、Object クラスはすべてのクラスの親クラスであり、その clone() メソッドは通常、このオブジェクトのコピーを作成して返すために使用されます. Java では、すべてが「オブジェクト」と見なされるため、このメソッドも配列のコピーに使用されます。clone() メソッドはオブジェクトクラスのメソッドで、その機能はコンテンツをコピーすることです。

public class ArrayCopyClone {
public static void main(String[]  args) {
    int[]array1={ 1,2.3.4.5};      //
    int[]array2 = array1.clone();   //array2是array1的副本,值相同
    for(int i=0;i< array2.length, i++)
    {
        System.out.println(array2[i]+".");//输出
    }
}

3. System.arraycopy メソッドを使用する

arraycopy() メソッドは System クラスの静的メソッドです (非常に効率的なローカル メソッドです)。System.arraycopy() メソッドの構造は次のとおりです。 

System.arraycopy(from、fromIndex、to、toindex、count)

例:

public class ArrayCopy {
    public static void main(String[] args){
        int[]array1 ={ 1,2,3,4, 5 };
        int[]array2 = new int[array1.length];                    //声明array2
        System.arraycopy(array1, 0, array2, 0, array1.length);   //复制
        /*表示从array1的0号开始复制,复制好的放在array2里的0号位置去,一共复制array1.length个长度*/
        for (int i= 0; i< array2 length; i++) {
            System.out.print(array2[i]+",");//输出
        }
}

配列を使用

配列は、使用する前に割り当てる (新規) 必要があります。

配列には、プリミティブ データ型とオブジェクト データ型を格納できます。

配列を使用して 5 つの整数を格納し、その中の最大値を出力します。

public class FindMax {
    public static void main(String[]  args) {
        int[] array={ 10, 23, 6, 88, 19 };
        int index =0;                       //最大值索引号,默认为0
        int max = array[index];               //最大值
        //寻找最大值
        for (int i= 1; i< array.length; i++)            //注意java里是在for循环里面对进行的定义
         {
            if (array[i] > max){
                index = i;
                max = array[i];
            }
        }
        System.out.println("最大值为" + max+", 索引号为”+ index);
    }
}
//数组属于对象范畴,使用。length属性来获取数组的元素个数。

二次元配列

new を使用して多次元配列を作成する場合、各次元のサイズを指定する必要はなく、最初の次元のサイズのみを指定する必要があります. 例 in[][] array = new int[10][ ];

現時点では、1 次元配列の要素型は依然として 1 次元配列であり、行列などの問題を解決するためによく使用されます。

int[][] array ={ {1,2},{3,4},{4,5}};// これは C 言語とは異なることに注意してください。

データ 2 を取得する場合は、array[0][1] を使用して取得できます。(配列名とインデックスを指定します)。

おすすめ

転載: blog.csdn.net/weixin_48060069/article/details/129148781