1. 程式人生 > 實用技巧 >Dubbo(五)服務端報runtime異常

Dubbo(五)服務端報runtime異常

安利良心Up主,超棒!

狂神說Java

1.註釋、識別符號、關鍵字

1.1註釋

1.1.2單行註釋

//輸出一個HelloWorld!
System.out.println("Hello World!");

1.1.2多行註釋

/*我是多行註釋
我是多行註釋
我是多行註釋
我是多行註釋
*/

1.1.3文件註釋

/**
 *@Author 狂神說
 */

1.2識別符號

  • 關鍵字

注意點:

  1. 識別符號由字母、數字、下劃線(_)或美元符號組成。
  2. 識別符號的首字母以字母、下劃線或美元符號開頭,不能以數字開頭。
  3. 識別符號命名不能與關鍵字、布林值(true/false)和null相同。
  4. 識別符號區分大小寫
    ,沒有長度限制,堅持見名知意的原則。

合法識別符號:age,age_student,$money

不合法識別符號:1age,%sex

2.資料型別

  • 位元組

  • 強型別語言:要求變數的使用要嚴格符合規定,所有變數都必須先定義後使用
  • 弱型別語言:要求變數的使用要符合規定,所有變數都必須先定義後使用
  1. 八大基本型別

    • 數值型別
    1. 整數
      • byte
      • short
      • int
      • long
    2. 浮點
    3. 字元
  • boolean型別:true 和 false(只佔用一個字元)
byte num1 = 10;
short num2 = 20;
int num3 = 30;
long num4 = 40L;//加L

char c = 'A';
String s = "中國我愛你";

double PI = 3.1415926;
boolean bool = true;
  1. 引用型別


資料型別拓展

public class Deom01 {
    public static void main(String[] args) {
        //整數拓展: 進位制:
        //二進位制0b 八進位制0 十進位制 十六進位制0x
        int i = 10;
        int i2 = 010;//0~7
        int i3 = 0x10;//0~9 A~F
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("=========================================");
        //===============================================================
        //浮點數拓展? 面試題銀行業務錢怎麼表示?
        //BigDecimal  數學工具類
        //===============================================================
        //float   有限 離散 舍入誤差 大約 接近但不等於
        //double
        //最好完全避免使用浮點數進行比較
        //最好完全避免使用浮點數進行比較
        //最好完全避免使用浮點數進行比較
        float f1 = 0.1f;//0.1
        double d1 = 1.0/10;//0.1
        System.out.println(f1 == d1);//false

        float f2 = 213165456421321f;
        double d2 = f2 + 1;
        System.out.println(f2 == d2);//true

        System.out.println("=========================================");
        //===============================================================
        //字元拓展
        //===============================================================
        char c1 = '中';
        char c2 =  'A';
        System.out.println(c1);
        System.out.println((int)c1);//強制轉換
        System.out.println(c2);
        System.out.println((int)c2);//強制轉換
        //所有的字元的本質還是數字   編碼問題
        //編碼 Unicode 2位元組(0~65536) Excel 早年最長65536
        //編碼表 對應(97 == a;  65 == A;)
        //Unicode U0000 UFFFF
        char c3 = '\u0061';
        System.out.println(c3);//a

        System.out.println("=========================================");
        //轉義字元
        // \t 製表符
        // \n 換行
        //===============================================================
        //String
        //===============================================================
        String s1 = new String("Hello World");
        String s2 = new String("Hello World");
        System.out.println(s1 == s2);//false
        String s3 = "Hello World";
        String s4 = "Hello World";
        System.out.println(s3 == s4);//true
        System.out.println("=========================================");
        //===============================================================
        //boolean
        //===============================================================
        boolean flag = true;
        if(flag){}
        if(flag == true){}
    }
}

執行結果

3.型別轉換

運算中,不同型別的資料先轉換為同一型別在計算

int i = 128;
byte b = (byte)i;//記憶體溢位
//強制轉換 高到低 強制 低到高 自動
/*
注意點:
1.不能對布林值轉換
2.不能把物件轉換為不相干的型別
3.把高容量轉換到低容量的時候,強制轉換
4.轉換的時候會出現記憶體溢位或者精度問題
*/
//操作比較大的資料時候,注意溢位問題;
//JDK7新特性,數字之間可以用_分割開
int money = 10_0000_0000;
int years = 20;
int total = money*year;//-1474836480,計算的時候溢位了
long total2 = money*year;//依然溢位,預設是int,轉換之前已經出問題了
long total3 = money*(long)year;//true

4.變數、常量

4.1變數

  • 變數:就是可以變化的量!
  • Java是一種強型別語言,每個變數都必須宣告其型別
  • Java變數是程式中最基本的儲存單元,其要素包括變數名,變數型別,作用域

作用域

  1. 區域性變數:必須宣告和初始化

  2. 例項變數: 從屬於物件;如果不自行初始化,就為這個型別的預設值

  • 整數:0
  • 浮點數:0.0
  • boolean:false
  • 除了基本型別,其他都是null
  1. 類變數 : static

注意事項

  • 每個變數都有型別,型別可以是基本型別,也可以是引用型別
  • 變數名必須是合法的識別符號
  • 變數宣告是一條完整的語句,以" ; "結尾
public class Demo02 {
    //類變數  static
    static double salary;

    //屬性:變數

    //例項變數:從屬於物件
    String name;
    int age;
    /*通過物件變數呼叫例項變數
    如果不自行初始化,則為預設值
     */
    public static void main(String[] args) {
        //區域性變數:必須宣告和初始化
        int i = 10;
        Demo02 demo02 = new Demo02();
        System.out.println(demo02.age);
        System.out.println(demo02.name);
        //類變數
        System.out.println(salary);
    }
}

4.2常量

  • 常量:初始化之後不能再改變的值!不會變動
  • 可以看成特殊的變數,他的值被設定之後,在程式執行中不可以被改變
  • 常量名一般使用大寫字元
//final 為修飾符
static final Double PI = 3.14;
final static Double PI = 3.14;

4.3變數命名規則

5.運算子

位運算子

public class Demo01 {
    public static void main(String[] args) {
        /*
        A = 0101 0010
        B = 1011 1110
        ---------------------------------
        A&B = 0001 0010
        A|B = 1111 1110
        A^B = 1110 1100
        ~A  = 1010 1101
        ---------------------------------
        2*8 怎麼快速計算
        ---------------------------------
        << *2
        >> /2
        ---------------------------------
        0000 0000      0
        0000 0001      1
        0000 0010      2
        0000 0011      3
        0000 0100      4
        0000 1000      8
        0001 0000      16
        */
        //2*8 = 2*2*2*2
        //---------------------------------
        int i = 2;
        System.out.println(i<<3);
    }
}

三元運算子

public class Demo01 {
    public static void main(String[] args) {
        // x ? y : z;
        //如果x==true,返回y,否則返回z
        int score = 80;
        String type = score < 60 ? "及格" : "不及格";
        System.out.println(type);
    }
}

精簡程式碼

6.包機制、JavaDoc

包機制(本質為資料夾)

  • 為了更好地組織類,Java提供包機制,用於區分類名的名稱空間
  • 語法格式
package pkg1;
//一般利用公司域名倒置作為包名
  • 為了使用某一個包的成員,需要在java裡邊匯入包 import
    • *匯入所有類

JavaDoc

  • Javadoc命令是用來生成自己API文件的

  • 引數資訊

    /**
         * @author Lee      //作者名
         * @version 1.0     //版本號
         * @since 1.8       //最早使用jdk版本
         * @return String   //返回值情況
         * @throws Excotion //異常丟擲情況
         * @param args      //引數
         */
    

命令列命令生成幫助文件

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