Java自動化測試(數組/運算符)

引用類型

引用類型的變量它就是指的一個內存地址,一個位置信息

引用類型分類

  • 數組

  • 接口

  • 枚舉

package com.zhongxin.variable;

public class RefVariable {
    public static void main(String[] args) {
        String s1 = "中文";
        System.out.println(s1);
        s1 = s1 + "英文";
        System.out.println(s1);
    }
}

數組

數組是一種數據結構,它是一個容器,用來盛放數據。不同類型的數組可用盛放不同類型的數據。

特點

  1. 容量確定,定義的時候必須指定數組的大小

  2. 類型確定,定義的時候必須聲明數組的類型

分類

  1. 一維數組

  2. 多維數組

創建一個數組

創建一個數組,但是沒有初始化數組的元素。這種情況需要顯式的指定數組大小。

數據類型[ ] 數組名 = new 數據類型[size];

int[] myArr = new int[3];

創建一個數組,並已知數組的內部元素

類型[] 數組名 = {...};

int[] myArr = {0,1,2};
package com.zhongxin.variable;

public class ArrayDemo {
    public static void main(String[] args) {
        /*
         * 定義語法1
         * 數據類型[ ] 數組名 = new 數據類型[size];
         * 定義語法2
         * 數據類型[ ] 數組名 = {數據1,數據2,數據3};
         **/
        int[] myArr = new int[3];
        System.out.println(myArr[2]);

        int[] myArr1 = {100, 200, 300};
        System.out.println(myArr1[1]);
        // 數組長度
        // 最大索引 = 數組長度 - 1
        System.out.println(myArr.length);
        System.out.println(myArr1.length);

    }
}

例子:

char[] a = {'a', 'b', 'c'};
int[] b = {1, 2, 3};
long[] c = {4, 5, 6};
float[] d = {1.1f, 1.2f, 1.3f};
double[] e = {2.1, 2.2, 3.3};
boolean[] f = {true, false, false};
String[] h = {"Hello", "World"};

二維數組

二維數組定義語法1

數據類型[][] 數組名 = {{...}, {...}, {...}};

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

二維數組定義語法2

數據類型[][] 數組名 = 數據類型 [二維數組長度][二維數組中一維數組的長度];

int[][] arr2 = new int[2][2];//{{0,0},{0,0}}

越界

System.out.println(arr2[0][100]);
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
at com.zhongxin.variable.ArrayDemo2.main(ArrayDemo2.java:18)
package com.zhongxin.variable;

public class ArrayDemo2 {
    public static void main(String[] args) {
        /*
         * 二維數組定義語法1
         * 數據類型[][] 數組名 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
         * 二維數組定義語法2
         * 數據類型[][] 數組名 = 數據類型 [二維數組長度][二維數組中一維數組的長度];
         * */
        int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        System.out.println(arr[0][0]);
        int[] arr1 = arr[0];
        System.out.println(arr1[0]);

        int[][] arr2 = new int[2][2];//{{0,0},{0,0}}
        System.out.println(arr2[0][0]);
        /*
            System.out.println(arr2[0][100]);
            越界
            Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
            at com.zhongxin.variable.ArrayDemo2.main(ArrayDemo2.java:18)
        */
    }
}

運算符

  • 算術運算符

  • 關係運算符

  • 邏輯運算符

  • 賦值運算符

  • 其他運算符

算術運算符

整數類型和整數類型運算只能得到整數類型

System.out.println(10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335

% 取模 取餘
前面的數比後面的數小 那麼就返回前面的值

System.out.println(10 % 5); // 0
System.out.println(5 % 10); // 5 前面的數比後面的數小 那麼就返回前面的值

自增 自減

int i = 1;
i++;
System.out.println(i);//2
i--;
System.out.println(i);//1
  • 參與運算 ++在後面 先把變量的值取出來賦值(賦值運算)再自增

  • 參與運算 ++在前面 先把變量的值自增1,再把值取出來賦值

int x = i++;
int y = ++i;
System.out.println(x); // 1
System.out.println(i); // 2
System.out.println(y); // 3
System.out.println(i); // 3
package com.zhongxin.operator;

public class OperatorDemo {
    public static void main(String[] args) {
        //算術運算符
        int a = 10;
        int b = 5;
        int c = a + b;
        System.out.println(a + b);
        System.out.println(c);
        // 整數類型和整數類型運算只能得到整數類型
        System.out.println(10 / 3);//3
        System.out.println(10.0 / 3);//3.3333333333333335
        // % 取模 取餘
        System.out.println(10 % 5); // 0
        System.out.println(5 % 10); // 5 前面的數比後面的數小 那麼就返回前面的值
        // ++ 自增
        // -- 自減
        int i = 1;
        i++;
        System.out.println(i);//2
        i--;
        System.out.println(i);//1

        //參與運算 ++在後面 先把變量的值取出來賦值(賦值運算)再自增
        int x = i++;
        //參與運算 ++在前面 先把變量的值自增1,再把值取出來賦值
        int y = ++i;
        System.out.println(x); // 1
        System.out.println(i); // 2
        System.out.println(y); // 3
        System.out.println(i); // 3

    }
}

關係運算符

關係運算符返回boolean類型

  • >

  • <

  • >=

  • <=

  • ==

  • !=

package com.zhongxin.operator;

public class OperatorDemo2 {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        System.out.println(a > b);
        System.out.println(a < b);
        System.out.println(a >= b);
        System.out.println(a <= b);
        System.out.println(a == b);
        System.out.println(a != b);
    }
}

邏輯運算符

  • &amp;

  • |

  • !

package com.zhongxin.operator;

public class OperatorDemo3 {
    public static void main(String[] args) {
        System.out.println('&');
        System.out.println(true & false); //false
        System.out.println(false & true); //false
        System.out.println(true & true); //true
        System.out.println(false & false); //false
        System.out.println('|');
        System.out.println(true | false); //true
        System.out.println(false | true); //true
        System.out.println(true | true); //true
        System.out.println(false | false); //false
        System.out.println('!');
        System.out.println(!false); //true
        System.out.println(!true); //false
    }
}

&& || 和& |最終結果是一樣的 可以提高性能

造成短路,當邏輯運算符左邊已經決定整個結果時,右邊不執行

int a = 10;
int b = 5;
int c = 8;
System.out.println((a < b) & (a++ > c));
System.out.println(a); // 11
a = a - 1;
System.out.println((a < b) && (a++ > c));
System.out.println(a); //10

賦值運算符

賦值運算符=

擴展賦值運算符

  • -=

  • +=

  • *=

  • /=

package com.zhongxin.operator;

public class OperatorDemo4 {
    public static void main(String[] args) {
        // 把10賦值給a變量
        int a = 10;
        a += 10;// a = a + 10 左邊和右邊進行運算之後賦值給左邊
        System.out.println(a);
    }
}

強制類型轉換

大的變小的

double d = 3.14;
int x = (int) d;
System.out.println(x);

隱式類型轉換

大的數據類型和小的數據類型運算時

System.out.println(10.0 / 3);    
package com.zhongxin.operator;

public class OperatorDemo4 {
    public static void main(String[] args) {
        // 把10賦值給a變量
        int a = 10;
        a += 10;// a = (int)(a + 10) 左邊和右邊進行運算之後賦值給左邊
        System.out.println(a);

        // 強制類型轉換 大的變小的
        double d = 3.14;
        int x = (int) d;
        System.out.println(x);
        // 隱式類型轉換 大的數據類型和小的數據類型運算時
        System.out.println(10.0 / 3);
    }
}

三目運算符

又稱三元運算符

a ? b : c;

a爲真返回b否則返回c

package com.zhongxin.operator;

public class OperatorDemo5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int max = (a > b) ? a : b;
        System.out.println(max);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章