1. 程式人生 > >數據類型和運算符

數據類型和運算符

spl type value bool javadoc 浮點數 英文字母 值類型 指向

1 強類型語言特征

1 所有變量先聲明,後使用,2 指定類型變量只能接收類型與之匹配的值。

可以在編譯過程中發現源碼的錯誤,程序健壯。

2 基本類型

1 數值類型 整型,字符型,浮點型 可以經行類型轉換(自動,強制)

2 布爾類型

3 註釋

1 單行註釋 //

2 多行註釋 /* */

3 文檔註釋 /** */

4 api文檔

應用程序接口文檔,主要說明類,方法,field的功能,因此,Javadoc 工具只處理文檔源文件在類,接口,方法,field,構造器,內部類之前的註釋,忽略其他地方的文檔註釋,並且只處理public 或protected修飾的。

5 javadoc 命令 Javadoc 選項 Java源文件/包

可以對源文件,包生成api文檔,支持通配符 *.java 當前目錄下所有Java文件

-d 指定一個路徑,將生成的api放入該目錄 -windowtitle 選定一個字符串設置api文檔瀏覽器窗口標題 -doctitle 概述頁面標題(多個包) -header 包含每個頁面的頁眉

6 標識符

用於給程序中變量,類,方法命名的符號。必須以字母,下劃線(_),美元符($)開頭,後面可以跟任意數目的字母,數字,下劃線和美元符。字母不局限於26個英文字母,可以包含中文日文字符,不能使用Java關鍵字和保留字。

7 關鍵字

特殊用途的單詞,全部小寫,48個關鍵字,2個保留字(goto const) 3個直接量 true false null

8 強語言 變量和表達式在編譯時期就確定了類型,先申明後使用

9 基本類型 boolean類型 數值類型(整型byte short int long char浮點型 float double)

10 引用類型 對一個對象的引用 ,對象包括實例和數組,引用類型包括類,接口,數組類型。

11 空類型就是null值類型,空引用(null)可以轉換為任何引用類型

12 基本數據類型

技術分享技術分享

一個Java整數常量默認就是int類型,1如果將一個較小的整數常量(在byte或short類型範圍內)賦值給一個byte或short變量,系統會自動把這個常量當byte或short處理2 如果使用一個巨大常量(超int表數),Java不會把他當long處理,需要在後面加L

整數常量有4中表達方式 二,八(0開頭),十六進制(0x開頭)

技術分享

技術分享
        byte a = 56; // 系統把56當byte類型處理
        long b = 999999999999999; //
        long c = 999999999999999L; //
        int octal = 013;
        int hex = 0xaf;
View Code

Java7 新增了二進制整數以0b開頭。byte c = (byte)0b1111111111; //錯 溢出

字符型:有3中形式,1 單個字符‘A’, 2 轉義字符表示特殊字符常量 ‘\n‘ ‘\t‘ 3 通過unicode值表示範圍‘\u0000‘ - ‘\uffff‘ 65535個字符。

Java語言單引號,雙引號,反斜線有特殊用途,如果字符串中包含了這些字符,應該使用轉義字符表示形式。

技術分享
        char c = A;
        char b = \t;
        char a = \uffff;
View Code

浮點數:float double 浮點數有固定的表數範圍和字段長度,與機器無關。有兩種表示形式 1 十進制 4.09 2 科學計數形式 5.12e(E)2

Java提供三個特殊浮點值 正,負無窮大,非數。可以通過Float或Double的靜態域獲得 所有正無窮大都相等,所有負無窮大相等,非數與任何數不想等。

技術分享
        System.out.println(Float.NEGATIVE_INFINITY == Double.NEGATIVE_INFINITY); // true
        System.out.println(Float.NaN == Double.NaN); // false
View Code

基本類型的類型轉換

自動轉換:如果系統支持把某種基本類型的值直接賦給另一個基本類型的變量,則這種方式被稱為自動類型轉換,如果把一個表數範圍小的數或變量直接賦給另一個表數大的變量,系統進行自動類型轉換。Java支持自動類型轉換如圖中箭頭

技術分享

技術分享
        int a = 4;
        float f = a;
        System.out.println(f); // 輸出4.0
        byte  b = 9;
        char c = b ;//
        double d = b;
View Code

強制類型轉換:如果希望把箭頭右邊的類型轉換為左邊的類型,必須經行強制類型轉換,格式(TargetType)value,可能會造成數據丟失

技術分享
        float f = (float)3.14;
        int a = 333;
        byte b = (byte)a;
        System.out.println(b); //輸出77
View Code

表達式類型自動提升: 1 所有byte short char 將被提示為int 2 整個表達式的數據類型自動提示到與表達式中最高等級操作數相同類型。

技術分享
        short a = 0;
        a = a - 2;  // 錯 a自動提升為int
        int b = 7;
        b = 7 / 2; // 為3 自動截斷小數部分
        System.out.println(7 + a + "hello");  //輸出 "104hello";
        System.out.println("hello" + 7 + a);// 輸出"hello7a";
View Code

13 直接量是指在程序中通過源代碼直接指定的值,直接量的類型有3種,基本類型,字符串,null類型。通常把直接量賦值給對應類型的變量。常量池指在編譯期確定,並保存在已編譯的.class文件中的一些數據。

14 運算符

一種特殊的符號,表示數據的運算,賦值,比較,使用運算符將一個或多個操作數連成執行性語句,用以實現特定功能。

1 算數運算符 - + * /(兩個整數相除,結果整數,10/3=3, 如果有浮點數,結果為浮點數) % (結果不一定總是整數,使用第一個操作數除以第二個操作數,得到一個整數結果後,剩下的值為余數。也就是先除,如果兩個為整數,第二個不能為0,除0異常)++ --

技術分享
        System.out.println(3.3 % 2);
        System.out.println(3.0 % 0);
        System.out.println(3 % 2);
1.2999999999999998
NaN
1
View Code

2 賦值運算符 = 賦值表達式也是有值的,就是右邊被賦的值,可以一次為多個變量賦值 a=b=c = 1;

3 位運算符 & | ~ ^ << >> >>>(無符號右移)

4 比較運算符 判斷兩個變量或常量大小。結果為布爾值。> >= < <= 只能用於數值比較。== != 數值類型和引用類型。如果是數值類型,即使類型不同,只要值相同,返回true 97==‘a’ 5.0 == 5 ,引用類型,是同一個類的實例才可以比較,指向相同對象,才為true , 兩個boolean類型也可以比較 true==false 返回false。

5 邏輯運算符,操作兩個布爾變量或常量

&& & (不斷路與) || |(不斷路或) ! ^(異或)兩個操作數不同才返回true

6 三目運算符 (expression) ? if-true-statment : if-flalse-statement;

技術分享
        System.out.println(5 > 3 ^ a < 3);
        int a = 10;
        if (5 > 4 | a++ > 90) {
            System.out.println(a);
        }
        a = 10;
        if (5 > 4 || a++ > 90) {
            System.out.println(a);
        }
View Code 技術分享
true
11
10
View Code

技術分享

數據類型和運算符