Dubbo(五)服務端報runtime異常
阿新 • • 發佈:2020-11-13
安利良心Up主,超棒!
1.註釋、識別符號、關鍵字
1.1註釋
1.1.2單行註釋
//輸出一個HelloWorld!
System.out.println("Hello World!");
1.1.2多行註釋
/*我是多行註釋
我是多行註釋
我是多行註釋
我是多行註釋
*/
1.1.3文件註釋
/**
*@Author 狂神說
*/
1.2識別符號
- 關鍵字
注意點:
- 識別符號由字母、數字、下劃線(_)或美元符號組成。
- 識別符號的首字母以字母、下劃線或美元符號開頭,不能以數字開頭。
- 識別符號命名不能與關鍵字、布林值(true/false)和null相同。
- 識別符號區分大小寫
合法識別符號:age,age_student,$money
不合法識別符號:1age,%sex
2.資料型別
- 位元組
- 強型別語言:要求變數的使用要嚴格符合規定,所有變數都必須先定義後使用
- 弱型別語言:要求變數的使用要符合規定,所有變數都必須先定義後使用
-
八大基本型別
- 數值型別
- 整數
- byte
- short
- int
- long
- 浮點
- 字元
- 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;
- 引用型別
資料型別拓展
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變數是程式中最基本的儲存單元,其要素包括變數名,變數型別,作用域
作用域
-
區域性變數:必須宣告和初始化
-
例項變數: 從屬於物件;如果不自行初始化,就為這個型別的預設值
- 整數:0
- 浮點數:0.0
- boolean:false
- 除了基本型別,其他都是null
- 類變數 : 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