1. 程式人生 > 其它 >5 Java基礎第二天

5 Java基礎第二天

技術標籤:# 階段一 語言基礎java

11.Java語言基礎-最常用的引用型別-String

除了8種基本資料型別,其他所有型別都是引用資料型別,包括類、介面、陣列。引用資料型別預設初始值都是null。

String是一個類,表示字串(後面詳講),所有字串,就是一串字元,也就是N個字元連線在一起(N可以表示0或多個),好比羊肉串

字串都得使用"" 括起來的,連線字元使用 “+ ” 符號


字串拼接:字串和任意資料型別相連線,結果都是字串型別.

轉義字元號練習:輸出: "你好世界"

System.out.println(8 + 7 + "Hello");//結果是15Hello
System.out.println("Hello" + 7 + 8);//結果是Hello78
System.out.println(7 + "Hello" + 8);//結果是7Hello8
String str = 17 + "ABC";//組成一個字串
System.out.println(str);//17ABC
String str 2 =(String)17 + "ABC";//編譯錯誤:不可轉換的型別

12.Java語言基礎-資料過大和溢位

當要表示的資料超出資料型別的臨界範圍時,稱為溢位。溢位情況發生時程式並沒有做資料範圍檢查處理,此時會出現資料紊亂情況。

int最大值

int intMax = 2147483647;

分析資料發生紊亂的原因.

13.Java語言基礎-基本型別的自動轉換

在8大基本型別中,boolean不屬於數值型別,不參與轉換.


轉換規則其實就是各自資料型別的空間大小.看圖

把不同的資料型別看成是不同容量的容器.

byte是一個位元組,最多隻能裝1斤水.

short是2個位元組,最多隻能裝2斤水.

自動型別轉換,也稱為“隱式型別轉換”:

當把小資料範圍型別的數值或變數賦給另一個大資料範圍型別變數,系統可以完成自動型別轉型。這好比把裝一斤水容器裡的水倒進可以裝兩斤水的容器裡一樣

再次強調:boolean 型別是不可以轉換位其他資料型別

一般地,byte,short,char不參與轉換操作.

我們直接把byte,short,char直接賦給int型別.

14.Java語言基礎-基本型別的強制轉換

強制型別轉換,也稱為“顯示型別轉換”:

當把大範圍型別的數值或變數賦給另一個小範圍型別變數時,此時系統不能自動完成轉換,需要加上強制轉換符,但這樣的操作可能造成資料精度的降低或溢位,所以使用時要格外注意。

這就好比把裝兩斤水容器裡的水倒在可以裝一斤水的容器裡,是可能造成水溢位的。若要堅持把4斤蘋果塞進一個裝3斤的袋子裡,我們要怎麼辦動用暴力

強制型別轉換,可能造成溢位和精度損失。

問題:

為什麼byte c = 5這是符合強轉型別轉換條件的,可為什麼沒轉呢?

15.Java語言基礎-表示式型別的自動提升

當一個算術表示式中包含多個基本資料型別(boolean除外)的值,整個算術表示式的資料型別將在資料運算時出現型別自動提升,其規則是:

所有的byte、short、char型別被自動提升到int型別

整個表示式的最終結果型別被提升到表示式中型別最高的型別


double d1 = 123 + 1.1F + 99L +3.14;
System.out.println('a' + 1);//98
byte b = 22;
b = b + 11;//編譯出錯,此對結果型別應該是int

判斷以下表達式的結果型別:

short s = 10;

byte a = 2;

int i = 5;

float f = 10.0F;

double d = 35.0;

(s/a) -(f / s) - (d + i)

String和任意資料使用+連線起來,結果都是string(字串).

16.Java語言基礎-算術運算子

Arithmetic oprators

用來處理四則運算的符號


加號:在運算元值、字元、字串時其結果是不同的,當兩個字元相加得到的是ASCII碼錶值

當兩個字串相加時表示將兩個字串連線在一起,從而組成新的字串

除號:整數在使用除號時,得到的結果仍為整數(小數部分忽略),當整數除以0的時候,會引發算數異常。

正無窮大(Infinity):當一個正浮點型別數除以0時,或者正整數除以0.0時;

負無窮大(-Infinity):當一個負浮點型別數除以0時,或者正整數除以0.0時;

NaN(Not a number):當0.0除以0.0時:

取模(求餘數):模數的符號忽略不計,結果的正負數取決於被模數.

注意:無窮大和NaN都屬於double浮點型別,但是所有正無窮大數都是相等的,所有負無窮大也是相等的,NaN永遠不相等,也不等於自己.

17.Java語言基礎-++和--詳解

++和--詳解都只能操作變數,不能操作常量.

++:表示當前操作變數自己累加1.

--:表示當前操作變數自己減去1.


自增:++,遞增運算子,使變數值增加1,有前置和後置之分,只能操作變數。

自減:--,遞減運算子,使變數值減去1,有前置和後置之分,只能操作變數。

自增和自減具體操作是一樣的,僅僅是一個是加1,一個是減1而已,現在單講++:

程式碼 result ++和 ++result,都將使result變數的值加1。

唯一的區別是:

前置(++result):表示對result加1之後的結果進行運算

後置(result++):表示對result變數加1之前的值(原始值)進行運算

如果僅僅執行簡單的操作(只寫result++或++result),那麼選用任意一個都可以。

18.Java語言基礎-自增的面試題分析

面試題分析:

public static void main(String[] args){
    int num1 = 1;
    num1 = num1 ++;
    System.out.println(num1);//1
    int num2 = 1;
    num2 = ++ num2;
    System.out.println(num2);//2
}


練習題:

public static void main(String[] args){
    int i =5;
    i++;
    System.out.println("i= " + i);//6
    ++i;
    System.out.println("i= " + i);//7
    System.out.println("---------");
    int a = ++i;
    System.out.println("a= " + a);//8
    System.out.println("i= " + i);//8
    int b = i++;
    System.out.println("b= " + b);//8 
    System.out.println("i= " + i);//9

19.Java語言基礎-賦值運算子

assigning operator

專門為變數指定值或重新定值


注意Java支援同時多個變數賦值,好比支援同時宣告多個變數一樣,但因影響可讀性,故也不推薦。

加等於:x += 5;相等於x = x + 5,但還包括隱式型別轉換。

public class Hello{
    public static void main(String[] args{
        int a,b,c;//不推薦 
        a = b = c = 5;//不推薦
        short s = 5;
        //s = s + 3;//編譯出錯,需要強轉 s = (short)(s + 3);
        s += 3;//編譯OK,隱式型別轉換
        }
} 

20.Java語言基礎-比較運算子

comparision operator

用於比較兩個變數或常量之間的關係,比較運算子的結果是boolean型別,其操作格式為:

boolean result = 表示式A 比較運算子 表示式B;


==:等於,若比較的兩個運算元都是數值型別,即使她們的型別不同,只要值相同就返回true。

當然==也可以比較引用資料型別,留到後面講

instanceof:在講面向物件的時候,再細講。