溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

發(fā)布時間:2020-06-01 10:57:37 來源:億速云 閱讀:220 作者:Leah 欄目:編程語言

這篇文章的知識點包括:Java的開發(fā)環(huán)境使用介紹、Java數(shù)據(jù)類型的使用介紹以及運算符的使用介紹,閱讀完整文相信大家對java的有更深學(xué)習(xí)。

Java集成開發(fā)環(huán)境

eclipse的使用方法

之前我們在體驗java編程或者寫小的demo的時候,都是命名一個.java的源文件,在dos界面中編譯和運行,但是這樣給人的感覺并不友好,為了解決這一問題,一些大佬便開發(fā)了與各種語言對應(yīng)的集成開發(fā)環(huán)境,其中包含文本編輯處理,自動編譯,簡化運行,隨時進行代碼調(diào)試。

目前來說,比較流行開源的集成開發(fā)環(huán)境:eclipse、IDEA、NetBeans

對于初學(xué)者而言,eclipse推薦使用,而且用的也比較多。

注意:安裝的eclipse須與之前安裝的jdk位數(shù)一致(我的是64位的)這里具體的安裝步驟比較簡單,就不贅述了,大家可以在網(wǎng)上查找視頻更加方便直接。

eclipse用法:安裝后打開eclipse軟件,使用前通過以下方法設(shè)置。

1、選擇工具欄的窗口——首選項——彈出對話框選擇常規(guī)下拉菜單中的啟動和關(guān)閉如下圖設(shè)置:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

2、選擇菜單欄中的文件——重新啟動;就會彈出如下對話框

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

3、如何使用其來編寫、編譯和執(zhí)行java程序?

菜單欄選擇文件——新建——其他——Java項目,談出如下對話框

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

之后軟件右側(cè)會生成一個你自己命名的項目名稱的文件夾;點開選擇src——右鍵選擇新建——class(類),彈出如下對話框,進行設(shè)置;
Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

字體設(shè)置可以在窗口——首選項——外觀——顏色和字體上設(shè)置——文本字體設(shè)置,如下圖所示:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

我們通過上面介紹的集成開發(fā)環(huán)境來回顧之前的學(xué)習(xí)內(nèi)容。編寫如下代碼:

public class Test {
    public static void main(String[] args) {
        System.out.println("hello world");
    }

}

那么我們?nèi)绾尉幾g運行呢?

eclipse集成開發(fā)環(huán)境中我們只要使用菜單欄中的運行按鈕就可以自動編譯運行了,是不是非常方便。如下圖所示:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

以上就是關(guān)于eclipse的具體設(shè)置方法和運行java程序的步驟了。

變量和數(shù)據(jù)類型

我們繼續(xù)在方才的代碼案例中回顧變量和幾種數(shù)據(jù)類型吧。

1、基本數(shù)據(jù)類型

public class Test {
    public static void main(String[] args) {
        //System.out.println("hello world");

        int i = 0;
        i = 1;
        int j = 2;
        i = j;
        System.out.println(i);
    }

}

輸出的結(jié)果為 2,這說明變量是會隨著賦值改變而改變,同一類型的變量之間也可以互相賦值。但如果是不同類型的呢?比如將上面的i賦值給byte k 就會報錯了。但是賦值給long就可以。

public class Test {
    public static void main(String[] args) {
        //System.out.println("hello world");

        /*int i = 0;
        i = 1;
        int j = 2;
        i = j;
        System.out.println(i);*/

        int i = 2;
        byte a = i;
        long b = i;
        System.out.println(b);
    }

}
//結(jié)果如下圖所示

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

我們可以給出下面的包含轉(zhuǎn)換關(guān)系:

char、byte、short(此三者不可以互相轉(zhuǎn)換)——》int——》long——》float——》double

我們稱這種轉(zhuǎn)換為系統(tǒng)的自動轉(zhuǎn)換,那么可想而知,假設(shè)有多種類型的數(shù)據(jù)混合運算時,系統(tǒng)首先會將所有的數(shù)據(jù)自動轉(zhuǎn)換為容量(表數(shù)范圍)最大的那種數(shù)據(jù)類型,然后進行運算。

2、字符類型運算

public class Test {
    public static void main(String[] args) {
        /*int i = 1;
        short a = 2;
        byte b = 3;
        int value = i + a + b;
        System.out.println(value);*/

        char c = 'a';
        int d = 1;
        int e = c + d;
        System.out.println(e);
    }

}

結(jié)果為98,表示這個c字符為97,原因是由于ASCII碼,大家可以百度查詢一下;這個結(jié)果表明char類型的 數(shù)據(jù)在與數(shù)字進行數(shù)學(xué)運算時,是轉(zhuǎn)為對應(yīng)的ASCII碼進行計算。

3、字符串混合運算

注意!?。?/p>

當(dāng)把任何基本類型的值和字符串值進行連接運算時(+),基本類型的值將自動轉(zhuǎn)換為字符串類型。例如:

public class Test {
    public static void main(String[] args) {
        String s = "hello";
        int a = 1;
        String str = s + a;
        System.out.println(str);
        //上面兩行代碼可以簡化為:System.out.println(s+a);
    }
}

運行結(jié)果:hello1

體會下圖代碼運行的結(jié)果:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

小結(jié):在進行包含字符串的混合運算時,字符串前面的運算為正常運算,后面的所有類型都轉(zhuǎn)換為字符串類型的計算。

4、強制類型轉(zhuǎn)換

概念——自動類型轉(zhuǎn)換的逆過程,將表數(shù)范圍大的數(shù)據(jù)類型轉(zhuǎn)換為小的數(shù)據(jù)類型。

1、使用是要加上強制轉(zhuǎn)換符(()),即英文括號,但這可能造成精度降低或溢出,要特別注意。

例如:

public class Test {
    public static void main(String[] args) {

        int c = 9;
        byte b = (byte)c;//數(shù)據(jù)類型使用英文括號括起來

        System.out.println(b);
    }

}

運行結(jié)果:9

2、通常,字符串不能直接轉(zhuǎn)換為基本類型,但通過基本類型對應(yīng)的包裝類型可以實現(xiàn)將字符串轉(zhuǎn)換成基本類型。例如:

public class Test {
    public static void main(String[] args) {

        String  a = "43";

        int i =  Integer.parseInt(a);
        System.out.println(i);
    }

}

運行結(jié)果:43

3、注意!?。?/p>

Boolean類型不可以轉(zhuǎn)換為其他的數(shù)據(jù)類型

運算符

下面我們來談?wù)勗趈ava編程語言中運算符的相關(guān)知識。

簡單而言,運算符是一種特殊的符號,用以表示數(shù)據(jù)的運算、賦值和比較等。分為以下幾類:

算術(shù)運算符、賦值運算符、比較(關(guān)系)運算符、邏輯運算符、位運算符、三元運算符。下面逐一介紹。

4.1算數(shù)運算符

算數(shù)運算符的種類如下圖所示

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

加減乘除就不用解釋了,正常的數(shù)學(xué)運算。大家自己可以實踐去敲代碼驗證。舉幾個例子給大家去自己驗證:

public class Test {
    public static void main(String[] args) {

        System.out.println(- 2);
        System.out.println(- -2);
        System.out.println(6 / 2);
        System.out.println(6 / 5);
        System.out.println(6.0 / 5.0);
        System.out.println(6.44 / 3.0);
    }

}

結(jié)果如下圖所示:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

表明整數(shù)之間的除法是取整的,小數(shù)則不是如此。

上面的%表示取模就是去余數(shù),好比7%5就是2;

++表示自增--表示自減;上面的解釋還是比較理論了,還是通過實際demo來體會驗證一波吧:

public class Test {
    public static void main(String[] args) {

        int i = 0;
        int j = 0;
        int m = i++;
        int n = ++j;

        System.out.println(i);
        System.out.println(j);
        System.out.println(m);
        System.out.println(n);

    }

運行結(jié)果如下:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

從以上結(jié)果可以看出,i++給變量賦值時是想將自己的值賦值給變量,而++i則是將自己增加之后的值賦值給變量,但是最終的結(jié)果都會使自身(上例中的i和j)增加1,同理--也是一樣。

當(dāng)然+號也可以用于字符串的拼接,前面我們已經(jīng)舉過例程,不再贅述了。

4.1.1算數(shù)運算符需要注意的一些問題

1、取余(取模)——%

如果對負數(shù)取模,可以把模數(shù)負號忽略不計,如:5%-2=1.但是被模數(shù)是負數(shù)則不可忽略。此外,取模運算的結(jié)果不一定總是整數(shù)。例:

public class Test {
    public static void main(String[] args) {

        System.out.println(5 % -2);
        System.out.println(-5 % 2);
        System.out.println(5 % -2.1);

    }

}

運行結(jié)果如下:

1
-1
0.7999999999999998

2、整數(shù)之間的除法只保留整數(shù)部分,例:

int x = 3512;
x = x/1000*1000;

結(jié)果是3000;

3、“+”除字符串相加以外,也可以將非字符串轉(zhuǎn)換為字符串,例:

System.out.println("5+5="+5+5);

結(jié)果是:5+5=55,這里是字符串拼接前面講述過的。

4、單引號和雙引號的區(qū)別

看下面實例:

public class Test {
    public static void main(String[] args) {

        System.out.println('*' + '\t' + '*');
        System.out.println("*" + "\t" + "*");
    }

}

結(jié)果如下:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

單引號表示單個字符,計算時會轉(zhuǎn)換為ASCII碼運算,而雙引號則是正常輸出,\t表示的是一個Tab鍵的間距。

4.2賦值運算符

符號“=”;當(dāng)“=”兩側(cè)數(shù)據(jù)類型不一致時,可以使用自動類型轉(zhuǎn)換或使用強制類型轉(zhuǎn)換原則進行處理;

支持連續(xù)賦值

擴展賦值運算符:+=;-=;*=;/=;%=;下面通過實際案列代碼進行剖析:

public class Test {
    public static void main(String[] args) {

        int i = 1;
        short s = 2;

        i = s;//自動類型轉(zhuǎn)換
        s = (short)i;//強制類型轉(zhuǎn)換

        int j=2;
        int k=2;
        j=k=2;//運行連續(xù)賦值
        System.out.println(j + "," + k);//輸出結(jié)果應(yīng)為:2,2

        //擴展賦值運算舉例
        i = i + 2;//可以換成以下寫法(這里i初始值為2了)
        i += 2;//i變?yōu)?
        System.out.println(i);//輸出結(jié)果應(yīng)為6

        //s = s + 2;錯誤寫法因為s會被自動轉(zhuǎn)換為int類型的變量,改為s = (short)(s + 2);
        s += 2;//這種寫法是不是更加方便?自動強制類型轉(zhuǎn)換了。
        System.out.println(s);//輸出結(jié)果應(yīng)為4
    }

}

結(jié)果如下:

2,2
6
4

使用擴展運算符時,變量在參與運算時會把結(jié)果強制轉(zhuǎn)換為當(dāng)前變量的類型。

那么思考下面的一個問題:

public class Test {
    public static void main(String[] args) {

        int i = 1;
        i *= 0.1;
        System.out.println(i);
    }

}

結(jié)果為0

原因:擴展運算自動強制轉(zhuǎn)換為int類型

4.3比較運算符

比較運算符就是用于比較的,諸如比較是否相等,大于小于等等。

比較運算符如下:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

比較運算符的結(jié)果是boolean型,即結(jié)果為true 或者 false;在后面我們講解控制流程語句中會使用的非常多,下面舉簡單的例子體會一下:

public class Test {
    public static void main(String[] args) {

        System.out.println(4>5);
        System.out.println(4<5);
    }

}

結(jié)果為:

false
true

4.4邏輯運算符

邏輯運算符——用于邏輯判斷,學(xué)習(xí)過數(shù)字電路的應(yīng)該非常熟悉了。下面直接羅列出來:

&——邏輯與  |——邏輯或  !——邏輯非

&&——短路與 ||——短路或 ^——邏輯異或

第一行可能不少人都比較熟悉,而第二行有些就不太清楚了;我們先看下面一張表:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

邏輯與——表示a和b都為true才成立;邏輯或——表示a或b有一個成立就可以;邏輯非——表示去反邏輯;邏輯異或——表示a和b有一個成立且一個不成立才為true;短路與——和邏輯與判斷的結(jié)論是一致的;短路或——和邏輯或判斷的結(jié)論是一致的。

下面給出例程:

public class Test1 {
    public static void main(String[] args) {
        System.out.println(4 == 4 & 1 == 1);
        System.out.println(4 == 4 && 2 == 1);
        System.out.println(4 == 4 || 1 != 1);
    }
}

運行結(jié)果:

true
false
true

4.4.1邏輯運算符實際使用是需要注意的地方

1、邏輯運算符用于連接布爾型表達式,在Java中不可以寫成3<x<6,應(yīng)該寫成x>3 & x<6 。

2、“&”和“&&”的區(qū)別:

  • 單&時,左邊無論真假,右邊都進行運算;
  • 雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。

舉個例子驗證一下:

public class Test1 {
    public static void main(String[] args) {

        int i = 0;
        int j = 1;
        System.out.println(i != 0 & j++ == 2);
        System.out.println(j);//單&左邊為真或假右邊都執(zhí)行運算,此時j=2

        System.out.println(j == 2 && i++ == 1);
        System.out.println(i);//雙&左邊為真,右邊參與運算,此時i=1

        System.out.println(j != 2 && i++ == 2);
        System.out.println(i);//雙&&左邊為假,右邊不運算,此時i仍為1
        //以上輸出判斷語句的結(jié)果都為false
    }
}

結(jié)果:

false
2
false
1
false
1

3、“|”和“||”的區(qū)別同理,||表示:當(dāng)左邊為真,右邊不參與運算。

public class Test1 {
    public static void main(String[] args) {

        int i = 0;
        int j = 1;
        System.out.println(i != 0 | j++ == 1);//注意和++j的區(qū)別,看最下面的++i
        System.out.println(j);//單|左邊為真或假右邊都執(zhí)行運算,此時j=2

        System.out.println(j == 2 || i++ == 0);
        System.out.println(i);//雙|左邊為真,右邊不參與運算,此時i=0

        System.out.println(j != 2 || ++i == 1);
        System.out.println(i);//雙|左邊為假,右邊參與運算,此時i=1
        //以上判斷的結(jié)果都為true
    }

結(jié)果如下:

true
2
true
0
true
1

小結(jié):在不需要邏輯運算兩邊都參與運算的時候,盡量使用&&和||

4、異或( ^ )與或( | )的不同之處是:當(dāng)左右都為true時,結(jié)果為false。

理解方法口訣:異或,追求的是“異”!

4.5位運算符

位運算是直接對二進制進行運算,請看下面表格:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

編程的時候一般比較少但是面試筆試的時候比較多,因此還是需要了解的??赡苡行┡笥褜ΧM制還不太了解,可以百度一下,不算難的哈!

4.5.1移位運算符

下面舉例說明為運算符使用時左移右移和無符號右移。

public class Test1 {
    public static void main(String[] args) {

    int x = 8,y = -16;
    System.out.println(x<<2);//相當(dāng)于8*2*2
    //二進制中8:表示為1000,左移兩位即0010 0000
    System.out.println(x>>2);//相當(dāng)于8/(2*2)
    //右移兩位即0010
    System.out.println(y>>2);
    //負數(shù)二進制-16:表示為1111 0000(驗證其實很簡單加上16的二進制看看是否為0即可);
    //右移兩位即:0011 1100(-4),4的二進制為:0000 0100
    //以上兩個例子都是有符號的右移,下面舉例講一下無符號的右移(表示為>>>)
    System.out.println(x>>>2);//無符號(正數(shù))右移>>>等同于>>

    System.out.println(y>>>2);//負整數(shù)右移>>>則不等同,表示無符號的右移忽略符號
    //>>>無符號的右移對于負數(shù)而言是不考慮符號位的,所以輸出的結(jié)果數(shù)據(jù)比較大。
    }
}

輸出結(jié)果:

32
2
-4
2
1073741820

規(guī)律小結(jié):

1、有符號的右移是看右移之后的首位是0還是1,是0前面空位補0,1則補1;

2、無符號的右移,移動之后不管首位是0還是1,空位都是直接補0

4.5.2與運算符、或運算符和異或運算符

這三者看了前面的內(nèi)容可能對此有疑問,這不是邏輯運算符嗎?其實并不是,這里的&、|和^有另外的意義和用處,這也離不開二進制計算的,下面舉例逐一解釋。

public class Test1 {
    public static void main(String[] args) {

        int a = 12 , b = 5;
        //對比一下位運算符和邏輯運算符的區(qū)別,再回顧一下邏輯運算符中&和&&區(qū)別和聯(lián)系
        System.out.println(a & b); //&與運算符
        //計算方法:12的二進制(省略前面的28個0):1100,5的二進制為:0101 與運算其實就是做每一個二進制位的邏輯加法:都為1才為1
        // 1100
        //&0101
        //=0100,結(jié)果為4
        //具體解釋:&符號在邏輯運算符中表示且,而計算機中1表示true ,0表示false
        //那么只有都為真的時候才為真,所以12 & 5 的結(jié)果為4
        System.out.println(a == 12 & b == 5);
        //表示邏輯判斷,其實就是下面的寫法:(后面學(xué)到控制流程語句就會明白的)
        if(a == 12 & b == 5) {
            System.out.println(true);
        }

        //=====================================
        //下面介紹一些或運算和異或運算
        System.out.println(a | b);// |表示或運算符
        //計算方法:不都為0則為1
        // 1100
        //|0101
        //=1101,結(jié)果為13其含義是兩個數(shù)之間的每個二進制位之間不都為0則或運算的結(jié)果為1
        //異或運算
        System.out.println(a ^ b);// ^ 這里表示異或運算符
        //計算方法:二者不同則為1
        // 1100
        //^0101
        //=1001,結(jié)果為9
    }
}

結(jié)果如下:

4
true
true
13
9

規(guī)律小結(jié):

&、|、^三者作為位運算符進行數(shù)字運算時,需要將其轉(zhuǎn)換為二進制,然后對每一位二進制數(shù)進行對應(yīng)的邏輯運算即可。理解上面說的方法自己,然后敲一下代碼理解消化一下!

4.5.3反碼運算符

~,這就是反碼運算符;看代碼案例:

public class Test1 {
    public static void main(String[] args) {
        //反碼演示舉例
        System.out.println(~5);
        //計算方法:
        //12 的二進制:0000 1100,按位取反為1111 0011,結(jié)果為-13可以通過源碼驗證
        //其實簡單計算的話12去反碼之后的值與自身相加為-1,原因大家可以自行了解計算機二進制中原碼、反碼和補碼的聯(lián)系
        //簡述規(guī)律:補碼=原碼的反碼加1,補碼就是負數(shù)在二進制中表示的方法
    }
}

結(jié)果為:-13

規(guī)律小結(jié):反碼比較簡單,就是將源碼按位取反,
4.5.4位運算符總結(jié)

1、首先在編程使用的過程中一般用的不如邏輯運算符,但我們需要知道其核心原理;

2、其次要了解位運算過程,知道運算的核心方法;

3、最后需要自己了解和理解計算機二進制數(shù)的表示方法以及原碼、反碼和補碼的換算方法;

規(guī)律總結(jié)請看下圖表:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

4.6三元運算符

概念:三元運算符,或為三目運算符。

格式:(條件表達式)? 表達式1:表達式2;

我們舉例來理解:

public class Test1 {
    public static void main(String[] args) {

        int a = 1;

        int k = a > 0 ? 1 : 0;
        System.out.println(k);
    }
}

結(jié)果為:1

其表示的含義為,判斷a的值是否大于0,若a大于0則將1賦值給看,反之將0賦值給k。

那么三目運算符在編程中究竟有什么用呢?可以方便書寫簡化代碼。

例如這樣的一個問題:如何獲取兩個中較大的數(shù)?

public class Test1 {
    public static void main(String[] args) {

        int a = 1 ,b = 4;

        int k = a > b ? a : b;
        System.out.println(k);
    }
}

如果不使用三目運算符則需要進行條件控制語句判斷,下一篇文章將著重講述關(guān)于流程控制語句。

那么再考慮一個問題:如何獲取三個數(shù)中最大的數(shù)?看代碼

public class Test1 {
    public static void main(String[] args) {

        int a = 1 ,b = 4,c = 6;

        int k = (a > b ? a : b) > c ? (a > b ? a : b) : c ;
        //先判斷a和b的大小,選出其中大的再與c比較大小,最后輸出最大的。也可以寫成下面的方法
        //int k = (a > b ? ( a > c ? a : c) : (b > c ? b : c));
        //假設(shè)方法進行判斷,a大于b則讓a再與c比較,否則讓b與c比較,輸出最大的;
        System.out.println(k);
    }
}

結(jié)果為:

6

6

這就是三目運算符的嵌套使用。

運算符的優(yōu)先級

運算符上面已經(jīng)講述完了,但是我們考慮一個問題,當(dāng)各種運算符混合使用的時候該先執(zhí)行誰呢?這就涉及到優(yōu)先級了。

運算符的優(yōu)先級排列順序請看下圖:

Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符介紹

優(yōu)先級數(shù)字越小則優(yōu)先級越高,結(jié)合性上看就是按照上述聲明,從左到右就是左邊的優(yōu)先級高,從右到左就是右邊的優(yōu)先級更高。

關(guān)于優(yōu)先級,其實我們不需要刻意去記憶,因為當(dāng)我們在編寫程序的時候為了方便自己和他人理解都會避免使用過于復(fù)雜的運算符,或者加上英文括號來更好地解釋自己的代碼。

總結(jié)

以上就是Java開發(fā)環(huán)境、數(shù)據(jù)類型和運算符的介紹,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI