1. 程式人生 > 實用技巧 >Java基礎語法(下)

Java基礎語法(下)

目錄

型別轉換

強制轉換

/**
 * @ProjectName: JavaSE
 * @PackageName: PACKAGE_NAME
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:17
 * @Description: 型別轉換; 語法 (型別)變數
 */
public class TypeConversion {
    // 由低至高
    // byte -> short,char -> int -> long -> float -> double

    public static void main(String[] args) {
        int intValue = 128;
        // int 轉為byte需要強轉,高轉底,會出現記憶體溢位,精度丟失
//        byte byteValue = intValue;
        byte byteValue = (byte)intValue;
        System.out.println(byteValue); // -128

        // 底轉高,將自動進行轉換
        double doubleValue = intValue;
        System.out.println(doubleValue); // 128.0


        // 等級 一致時 不需要進行轉換(char型別除外)
        short shortValue = byteValue;
        System.out.println(shortValue);

        // 記憶體溢位,及解決例項
        // JDK7新特性,數字之間可以使用下劃線分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money * years;// -1474836480 記憶體溢位
        System.out.println(total);

        //解決記憶體溢位;將表示式中某一內容,轉成高點的型別
        long total1 = (long)money * years;
        System.out.println(total1); // 20000000000

    }
}

變數

/**
 * @ProjectName: JavaSE
 * @PackageName: PACKAGE_NAME
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:37
 * @Description:
 * 定義變數; 語法; 型別 變數名 = 值
 * 區域性變數:定義在方法中的變數,必須宣告和初始化值
 * 類變數:定義在類中,使用static修飾,屬於類
 * 例項變數:定義在類中
 * 常量:final 型別 常量名
 */
public class Variable {
    // 常量
    static final double PI = 3.14;

    // 類變數: static, 屬於類
    static String job = "軟體測試";

    // 例項變數:屬於物件
    String adder;

    public static void main(String[] args) {
        // 區域性變數:方法裡的變數必須宣告和初始化值
        String name = "小明";
        char sex = '男';
        int age = 23;
        double height = 1.57;
        System.out.println(name +',' + sex+',' + age+',' + height + 'm');

        // 使用例項變數
        Variable variable = new Variable();
        System.out.println(variable.adder);

        // 使用類變數
        System.out.println(job);    // 當前類使用
        System.out.println(Variable.job); // 其他類可以這樣使用

        System.out.println(Variable.PI);
    }
}

運算子

算術運算子

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午10:58
 * @Description: 算術運算子
 */
public class BaseOperator {
    public static void main(String[] args) {
        // ctrl + d ; 複製當前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
        System.out.println(a + b);
        System.out.println(c - b);
        System.out.println(b * d);
        System.out.println(d / a);
      	// 取餘數:模運算
        System.out.println(c % a);
        
        // 自動升級
        double e = 23;
        System.out.println(e + a); //結果型別將自動升級成double
    }
}

自增、自減運算子

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:07
 * @Description: 自增、自減
 */
public class SelfCalculation {
    public static void main(String[] args) {
        int intValue = 3;

        // 自增
        int selfCalculation = intValue++; // intValue = intValue + 1, 先賦值,再自增執行intValue = intValue + 1
        System.out.println(selfCalculation); // 3

        int intValue1 = 3;
        int selfCalculation1 = ++intValue1; // intValue = intValue + 1,先運算再賦值,
        System.out.println(selfCalculation1); // 4

        // 自減
        System.out.println(intValue); // 4
        selfCalculation = intValue--;
        System.out.println(selfCalculation); // 4

        System.out.println(intValue1); // 4
        selfCalculation1 = --intValue1;
        System.out.println(selfCalculation1); // 3

        // 次方運算
        System.out.println(Math.pow(2,3));

    }
}

邏輯運算子

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:16
 * @Description: 邏輯運算子
 */
public class LogicalOperators {
    public static void main(String[] args) {
        boolean booleanTrue = true;
        boolean booleanFalse = false;

        // 與運算:&&, 兩個變數值都為真,結果才為true
        System.out.println(booleanTrue && booleanFalse); // false

        // 或運算;兩個變數有一個為真,結果就為true
        System.out.println(booleanFalse || booleanTrue); // true

        // 非運算;如果為真,結果就是假,如果為假,結果就是真
        System.out.println(!(booleanTrue || booleanFalse)); // false
    }
}

位運算子

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:23
 * @Description: 位運算子; 二進位制使用
 */
public class BitOperation {
    public static void main(String[] args){
        /*
        * A = 0011 1100
        * B = 0000 1101
        *
        * & 與, | 或, ^異或, ~取反
        * A & B : 如果兩位都是1才為1否則為0 , 0000 1100
        * A | B : 如果有一位為1 結果就為1, 0011 1101
        * A ^ B : 如果相同為0,否則為1, 0011 0001
        * ~B    : 如果為0變為1,1變為0 :1111 0010
        *
        * << : * 2
        * >> : / 2
        * */
        // 0000 0001 : 十進位制為1, 0000 0010 : 十進位制為2 0000 0100:十進位制為4,0000 1000 8, 結論左移動一位 * 2
        // 轉換成2進位制; 0000 1000  右移2位 :0000 0010
        System.out.println(8 >> 2); // 2
        // 轉換成2進位制; 0000 1000 左移2位:0010 0000
        System.out.println(8 << 2); // 16

    }
}

三元運算子

package operator;

/**
 * @ProjectName: JavaSE
 * @PackageName: operator
 * @Author: zy7y
 * @Date: 2020/8/14 上午11:41
 * @Description: 三元運算子; 語法 x ? y :z;  表示式 ? 為true時執行: 為false執行
 */
public class TernaryOperation {
    public static void main(String[] args) {
        int score = 50;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);
    }
}

包機制

命名:一般使用公司域名倒置;com.zy7y.cnblogs

// 匯入包下所有類(.class檔案)
import com.zy7y.cnblogs.operator.*;

JavaDoc生成文件

javadoc -encoding UTF-8 -charset UTF-8 Variable.java 

Idea 生成Javadoc:https://blog.csdn.net/cai454692590/article/details/85286139