国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從零開始學習 Java:簡單易懂的入門指南(三)

這篇具有很好參考價值的文章主要介紹了從零開始學習 Java:簡單易懂的入門指南(三)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.運算符和表達式

運算符:

? 就是對常量或者變量進行操作的符號。

? 比如: + - * /

表達式:

? 用運算符把常量或者變量連接起來的,符合Java語法的式子就是表達式。

? 比如:a + b 這個整體就是表達式。

? 而其中+是算術運算符的一種,所以這個表達式也稱之為算術表達式。

2.算術運算符

分類:

+ - * / %

運算特點:

+ - * :跟小學數學中一模一樣沒有任何區(qū)別.
/1.整數相除結果只能得到整除,如果結果想要是小數,必須要有小數參數。
2.小數直接參與運算,得到的結果有可能是不精確的。
案例:
System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335
%:取模、取余。
   他做的也是除法運算,只不過獲取的是余數而已。
案例:
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
應用場景:
//可以利用取模來判斷一個數是奇數還是偶數
System.out.println(15 % 2);//1  奇數

練習:數值拆分

需求:鍵盤錄入一個三位數,將其拆分為個位、十位、百位后,打印在控制臺

代碼示例:

//1.鍵盤錄入一個三位數
//導包 --- 創(chuàng)建對象 --- 接收數據
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個三位數");
int number = sc.nextInt();//123

//2.獲取這個三位數的個位、十位、百位并打印出來
//公式:
//針對于任意的一個數而言
//個位: 數字 % 10
int ones = number % 10;
//十位: 數字 / 10 % 10
int tens = number / 10 % 10;
//百位: 數字 / 100 % 10
int hundreds = number / 100  % 10;

//輸出結果
System.out.println(ones);
System.out.println(tens);
System.out.println(hundreds);

公式:

? 獲取任意一個數上每一位數。

個位:數字 % 10

十位:數字 / 10 % 10

百位:數字 / 100 % 10

千位:數字 / 1000 % 10

。。。以此類推。。。

3.隱式轉換

概念:

? 也叫自動類型提升。

? 就是把一個取值范圍小的數據或者變量,賦值給另一個取值范圍大的變量。此時不需要我們額外寫代碼單獨實現,是程序自動幫我們完成的。

簡單記憶:

? 就是小的給大的,可以直接給。

兩種提升規(guī)則:

  • 取值范圍小的,和取值范圍大的進行運算,小的會先提升為大的,再進行運算。
  • byte、short、char三種類型的數據在運算的時候,都會直接先提升為int,然后再進行運算。

取值范圍從小到大的關系:

? byte short int long float double

4.隱式轉換的練習

請看下面案例是否有誤,如果有問題,請說出原因,如果沒有問題,請說出運算過程和運算結果

案例一:

double d = 10;
System.out.println(d);//10.0

解釋:

? 10是整數,整數默認是int類型的。

? 而在取值范圍的順序中:byte short int long float double

? 在賦值的時候把一個int類型的賦值給了一個double類型的。把一個小的賦值給一個大的是可以直接給的。

案例二:

byte b = 100;
int i = b;//可以成功賦值

解釋:

? 因為byte的取值范圍是小的,int的取值范圍是大的,在底層進行了隱式轉換,不需要我們額外寫代碼單獨實現,是可以直接賦值。

案例三:

int i = 10;
long n = 20L;
??? result = i + n;
問變量result是什么類型的?

解釋:

? 變量i是int類型的,變量n是long類型的。

? 而在取值范圍的順序中:byte short int long float double

? 變量i里面的值會自動提升為long類型的,最終的結果其實就是兩個long相加,那么最終的result是long類型的。

案例四:

int i = 10;
long n = 100L;
double d = 20.0;
??? result = i + n + d;
問變量result是什么類型的?

解釋:

? 變量i是int類型,變量n是long類型,變量d是double類型。

? 而在取值范圍的順序中:byte short int long float double

? 所以變量i和變量n里面的值在參與運算的時候,都會進行類型提升,變成double。

? 最終其實就是三個double進行相加,那么最終的結果就是double類型的。

案例五:

byte b1 = 10;
byte b2 = 20;
??? result = b1 + b2;//int
問變量result是什么類型的?

解釋:

? 因為b1和b2都是byte類型的。所以在參與計算的時候,變量b1和變量b2里面的值都會自動提升為int類型的。最終其實就是兩個int類型的相加,最終結果也是int類型的。

案例六:

byte b = 10;
short s = 20;
long n = 100L;
??? result = b + s + n;
問變量result是什么類型的?long

解釋:

? 變量b是byte類型的,變量s是short類型的,變量n是long類型的。

? byte,short,char類型的變量在參與運算的時候,變量里面的值會直接先提升為int。

第一步:變量b和變量s里面的值會先提升為int參與運算。

? int + int + long

第二步:而long類型的取值范圍是大于int的取值范圍的。

? 所以變量b和變量s里面的值會再次提升為long。

? long + long + long。

所以最終結果是long類型的。

5.強制轉換

概念:

? 如果要把一個取值范圍大的數據或者變量賦值給另一個取值范圍小的變量。是不允許直接操作。

? 如果一定要這么干,就需要加入強制轉換。

書寫格式:

? 目標數據類型 變量名 = (目標數據類型)被強轉的數據;

簡單理解:

? 要轉成什么類型的,那么就在小括號中寫什么類型就可以了。

案例:

public class OperatorDemo2 {
    public static void main(String[] args) {
        double a = 12.3;
        int b = (int) a;
        System.out.println(b);//12
    }
}

注意點:

? 強制轉換有可能會導致數據發(fā)生錯誤。(數據的精度丟失)

6.字符串的+操作

核心技巧:

  • 當+操作中出現字符串時,此時就是字符串的連接符,會將前后的數據進行拼接,并產生一個新的字符串。
  • 當連續(xù)進行+操作時,從左到右逐個執(zhí)行的。

7.字符串相加的練習:

案例1:

1 + "abc" + 1

結果:“1abc1”

解釋:

? 第一步: 1 + “abc”。在這個過程中,有字符串參與的,所以做的是拼接操作,產生一個新的字符串"1abc"

? 第二步: “1abc” + 1。這個過程中,有字符串參與的,所以做的也是拼接操作,產生一個新的字符串"1abc1"

案例2:

1 + 2 + "abc" + 2 + 1

結果:“3abc21”

解釋:

? 第一步:1 + 2 。在這個過程中,沒有字符串參與的,所以做的是加法運算,結果為3。

? 第二步:3 + “abc”。在這個過程中,有字符串參與的,所以做的是拼接操作,產生一個新的字符串"3abc"。

? 第三步:“3abc” + 2。在這個過程中,有字符串參與的,所以做的是拼接操作,產生一個新的字符串"3abc2"。

? 第四步:“3abc2” + 1。在這個過程中,有字符串參與的,所以做的是拼接操作,產生一個新的字符串“3abc21”

案例3:

String name = "黑默丁格";
System.out.println("我的名字是" + name);

結果: 我的名字是黑默丁格

解釋:當字符串跟變量相加的時候,實際上是跟變量里面的值進行拼接。

8.字符的+操作

規(guī)則:

? 當+操作中出現了字符,會拿著字符到計算機內置的ASCII碼表中去查對應的數字,然后再進行計算。

案例:

char c = 'a';
int result = c + 0;
System.out.println(result);//97

ASCII碼表中:

? ‘a’ ----- 97

? ‘A’ ----- 65

9.算術運算符的總結

分類:

+ - * / %  這些操作跟小學數學幾乎是一模一樣的。

注意點:

  • / 和 % 的區(qū)別:他們兩個都是做除法運算,/取結果的商。% 取結果的余數。
  • 整數操作只能得到整數,如果想要得到小數,必須有浮點數參與運算。

算術運算符的高級用法:

是以+為例進行的講解,其余減法,乘法,除法的運算規(guī)則也是一樣的。

特例:字符串只有+操作,沒有其他操作。

10.自增自減運算符

分類:

++  自增運算符
--  自減運算符

++:就是把變量里面的值+1

–:就是把變量里面的值-1

使用方式:

  • 放在變量的前面,我們叫做先++。 比如:++a
  • 放在變量的后面,我們叫做后++。 比如:a++

注意點:

? 不管是先++,還是后++。單獨寫在一行的時候,運算結果是一模一樣的。

案例:

//++
int a = 10;
a++;//就是讓變量a里面的值 + 1
System.out.println(a);//11
++a;//就是讓變量a里面的值 + 1
System.out.println(a);//12

自增自減運算符的應用場景:

某些情況下,變量需要進行加1或者減1的時候使用。

比如:過生日多一歲,就用到了自增運算符。

比如:購物商場中,選擇商品數量,也用到了自增或者自減運算符。

比如:統計很多數據中,有多少個數據滿足要求,也用到了自增運算符。

11.賦值運算符

最為常用的: =

運算過程:就是把等號右邊的結果賦值給左邊的變量

案例:

public class OperatorDemo6 {
    public static void main(String[] args) {
        //1.最為簡單的賦值運算符用法
        int a = 10;//就是把10賦值給變量a
        System.out.println(a);

        //2.如果等號右邊需要進行計算。
        int b = 20;
        int c = a + b;//先計算等號右邊的,把計算的結果賦值給左邊的變量
        System.out.println(c);

        //3.特殊的用法
        a = a + 10;//先計算等號右邊的,把計算的結果賦值給左邊的變量
        System.out.println(a);//20
    }
}

12.擴展賦值運算符

分類:

? +=、-=、*=、/=、%=

運算規(guī)則:

? 就是把左邊跟右邊進行運算,把最終的結果賦值給左邊,對右邊沒有任何影響。

案例:

public class OperatorDemo7 {
    public static void main(String[] args) {
        //擴展賦值運算符
        int a = 10;
        int b = 20;
        a += b;//把左邊和右邊相加,再把最終的結果賦值給左邊,對右邊沒有任何影響
        // 相當于 a = a + b;
        System.out.println(a);//30
        System.out.println(b);//20
    }
}

注意點:

? 擴展的賦值運算符中隱層還包含了一個強制轉換。

以+=為例。

a += b ;實際上相當于 a = (byte)(a + b);

public class OperatorDemo8 {
    public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        //a += b;
        a = (byte)(a + b);
        System.out.println(a);//30
    }
}

13.關系運算符

又叫比較運算符,其實就是拿著左邊跟右邊進行了判斷而已。

分類:

符號 解釋
== 就是判斷左邊跟右邊是否相等,如果成立就是true,如果不成立就是false
!= 就是判斷左邊跟右邊是否不相等,如果成立就是true,如果不成立就是false
> 就是判斷左邊是否大于右邊,如果成立就是true,如果不成立就是false
>= 就是判斷左邊是否大于等于右邊,如果成立就是true,如果不成立就是false
< 就是判斷左邊是否小于右邊,如果成立就是true,如果不成立就是false
<= 就是判斷左邊是否小于等于右邊,如果成立就是true,如果不成立就是false

注意點:

  • 關系運算符最終的結果一定是布爾類型的。要么是true,要么是false
  • 在寫==的時候,千萬不要寫成=

14.邏輯運算符

& 和 | 的使用:

&:邏輯與(而且)

? 兩邊都為真,結果才是真,只要有一個為假,那么結果就是假。

|:邏輯或(或者)

? 兩邊都為假,結果才是假,只要有一個為真,那么結果就是真。

代碼示例:

// &  //兩邊都是真,結果才是真。
System.out.println(true & true);//true
System.out.println(false & false);//false
System.out.println(true & false);//false
System.out.println(false & true);//false

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

// | 或  //兩邊都是假,結果才是假,如果有一個為真,那么結果就是真。
System.out.println(true | true);//true
System.out.println(false | false);//false
System.out.println(true | false);//true
System.out.println(false | true);//true

使用場景:

? 根據固定的場景,來選擇使用&還是使用|

  • 用戶登錄。

    用戶名輸入正確 & 密碼輸入正確

    因為只有用戶名和密碼同時都正確了,那么才能成功登錄,只要有一個失敗了都不行。

    使用技巧:

    ? 當我們需要同時滿足左邊和右邊兩種情況時,可以使用且

  • 丈母娘選女婿

    丈母娘:女婿啊,你要么買個房子,要么買輛車。就可以把我的小棉襖穿走了。

    買個房子 | 買輛車

    兩個條件中,只要滿足其中一個,就可以穿走小棉襖了。

    使用技巧:

    ? 當兩種條件只要滿足其中一個的時候,可以使用或

^(異或)的使用:

? 在以后用的不多,了解一下即可。

計算規(guī)則:如果兩邊相同,結果為false,如果兩邊不同,結果為true

代碼示例:

//^   //左右不相同,結果才是true,左右相同結果就是false
System.out.println(true ^ true);//false
System.out.println(false ^ false);//false
System.out.println(true ^ false);//true
System.out.println(false ^ true);//true

!(取反)的使用:

? 是取反,也叫做非。

計算規(guī)則:false取反就是true,true取反就是false

溫馨提示:取反最多只用一個。

代碼示例:

System.out.println(!false);//true
System.out.println(!true);//false

System.out.println(!!false);//注意點:取反最多只用一個。

15.短路邏輯運算符

分類: && ||

&&:

? 運算結果跟&是一模一樣的,只不過具有短路效果。

||:

? 運算結果跟|是一模一樣的。只不過具有短路效果。

邏輯核心:

? 當左邊不能確定整個表達式的結果,右邊才會執(zhí)行。

? 當左邊能確定整個表達式的結果,那么右邊就不會執(zhí)行了。從而提高了代碼的運行效率。

舉例:

  • 用戶登錄案例

    用戶名正確 & 密碼正確

    如果使用一個&,不管用戶名是否正確都會去驗證密碼。

思考:

? 如果用戶名輸入正確了,那么我們再判斷密碼是否正確,是符合業(yè)務邏輯的。

? 但是如果用戶名輸入錯誤了,那么現在還有必要去比較密碼嗎?沒有不要了。

? 如果使用一個&,那么左邊和右邊不管什么情況下,都會執(zhí)行。

? 用戶名正確 && 密碼正確

? 如果用戶名輸入正確了,那么才會驗證密碼是否輸入正確。

? 如果用戶名輸入錯誤了,那么就不會再去驗證密碼是否正確,最終的結果直接為false。從而提高了程序運行的效率。

  • 丈母娘選女婿

    有房 | 有車

    首先先看看有沒有房,發(fā)現有,然后再去看看有沒有車。

思考:

? 既然都有房子,干嘛還要去看車呢?多此一舉。

? 有房 || 有車

? 首先先看看有沒有房,如果有,那么右邊就不執(zhí)行了。最終的結果直接為true。

? 如果沒有房子,才會去看右邊有沒有車。

總結:

&& 和 & 、||和|的運行結果都是一模一樣的。

? 但是短路邏輯運算符可以提高程序的運行效率。

建議:

? 最為常用: && || !

16.三元運算符

又叫做:三元表達式或者問號冒號表達式。

格式:

? 關系表達式 ? 表達式1 :表達式2 ;

計算規(guī)則:

  • 計算關系表達式的值。
  • 如果關系表達式的值為真,那么執(zhí)行表達式1。
  • 如果關系表達式的值為假,那么執(zhí)行表達式2。

注意點:

? 三元運算符的最終結果一定要被使用,要么賦值給一個變量,要么直接打印出來。

案例:

public class OperatorDemo12 {
    public static void main(String[] args) {
        //需求:求兩個數的較大值
        int a = 10;
        int b = 20;

        //格式:關系表達式 ? 表達式1 : 表達式2 ;
        //注意點:
        //三元運算符的最終結果一定要被使用。
        //要么賦值給一個變量,要么直接輸出。
       int max =  a > b ? a : b ;
        System.out.println(max);


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

17.練習1-兩只老虎

需求:

? 動物園里有兩只老虎,兩只老虎的體重分別為通過鍵盤錄入獲得,

? 請用程序實現判斷兩只老虎的體重是否相同。

代碼示例:

//1.獲取兩只老虎的體重
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一只老虎的體重");
int weight1 = sc.nextInt();
System.out.println("請輸入第二只老虎的體重");
int weight2 = sc.nextInt();

//2.利用三元運算符求出最終結果
String result = weight1 == weight2 ? "相同" : "不相同";
System.out.println(result);

18.練習2-求三個數的最大值

需求:

? 一座寺廟里住著三個和尚,已知他們的身高分別為150cm、210cm、165cm。

? 請用程序實現獲取這三個和尚的最高身高。

代碼示例:

//1.定義三個變量記錄和尚的身高
int height1 = 150;
int height2 = 210;
int height3 = 165;

//2.利用三元運算符求出兩個數中的較大值。
int temp = height1 > height2 ? height1 : height2;

//3.求出最終的結果
int max = temp > height3 ? temp : height3;

System.out.println(max);

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

在Java中涉及了很多的運算符,每一種運算符都有各自的優(yōu)先級。但是這些優(yōu)先級不需要記憶。

咱們只要知道其中一點:

? 小括號優(yōu)先于所有。

后記
????????美好的一天,到此結束,下次繼續(xù)努力!欲知后續(xù),請看下回分解,寫作不易,感謝大家的支持??! ??????
文章來源地址http://www.zghlxwxcb.cn/news/detail-614202.html

到了這里,關于從零開始學習 Java:簡單易懂的入門指南(三)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 從零開始學習 Java:簡單易懂的入門指南之方法(六)

    1.1 方法的概念 ? 方法(method)是程序中最小的執(zhí)行單元 注意: 方法必須先創(chuàng)建才可以使用,該過程成為方法定義 方法創(chuàng)建后并不是直接可以運行的,需要手動使用后,才執(zhí)行,該過程成為方法調用 2.1 無參數方法定義和調用 定義格式: 范例: 調用格式: 范例: 注意:

    2024年02月14日
    瀏覽(99)
  • 從零開始學習 Java:簡單易懂的入門指南之數組(五)

    概念: ? 指的是一種容器,可以同來存儲同種數據類型的多個值。 ? 但是數組容器在存儲數據的時候,需要結合隱式轉換考慮。 比如: ? 定義了一個int類型的數組。那么boolean。double類型的數據是不能存到這個數組中的, ? 但是byte類型,short類型,int類型的數據是可以存

    2024年02月14日
    瀏覽(95)
  • 從零開始學習 Java:簡單易懂的入門指南之異常(二十八)

    從零開始學習 Java:簡單易懂的入門指南之異常(二十八)

    異常,就是不正常的意思。在生活中:醫(yī)生說,你的身體某個部位有異常,該部位和正常相比有點不同,該部位的功能將受影響.在程序中的意思就是: 異常 :指的是程序在執(zhí)行過程中,出現的非正常的情況,最終會導致JVM的非正常停止。 在Java等面向對象的編程語言中,異常本身

    2024年02月08日
    瀏覽(87)
  • 從零開始學習 Java:簡單易懂的入門指南之反射(三十八)

    ? 專業(yè)的解釋: ? 是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法; ? 對于任意一個對象,都能夠調用它的任意屬性和方法; ? 這種動態(tài)獲取信息以及動態(tài)調用對象方法的功能稱為Java語言的反射機制。 ? 通俗的理解: 利用 反射 創(chuàng)建的對象 可

    2024年02月08日
    瀏覽(90)
  • 從零開始學習 Java:簡單易懂的入門指南之包裝類(十九)

    Java提供了兩個類型系統,基本類型與引用類型,使用基本類型在于效率,然而很多情況,會創(chuàng)建對象使用,因為對象可以做更多的功能,如果想要我們的基本類型像對象一樣操作,就可以使用基本類型對應的包裝類,如下: 基本類型 對應的包裝類(位于java.lang包中) byte

    2024年02月11日
    瀏覽(100)
  • 從零開始學習 Java:簡單易懂的入門指南之類和對象(七)

    從零開始學習 Java:簡單易懂的入門指南之類和對象(七)

    1.1 類和對象的理解 客觀存在的事物皆為對象 ,所以我們也常常說萬物皆對象。 類 類的理解 類是對現實生活中一類具有共同屬性和行為的事物的抽象 類是對象的數據類型,類是具有相同屬性和行為的一組對象的集合 簡單理解:類就是對現實事物的一種描述 類的組成 屬性:

    2024年02月14日
    瀏覽(97)
  • 從零開始學習 Java:簡單易懂的入門指南之面向對象(九)

    從零開始學習 Java:簡單易懂的入門指南之面向對象(九)

    類的定義格式如下: 例如: 例如: 1.3.1 封裝的步驟 1.使用 private 來修飾成員變量。 2.使用 public 修飾getter和setter方法。 1.3.2 封裝的步驟實現 private修飾成員變量 public修飾getter和setter方法 1.4.1 構造方法的作用 在創(chuàng)建對象的時候,給成員變量進行初始化。 初始化即賦值的意

    2024年02月13日
    瀏覽(95)
  • 從零開始學習 Java:簡單易懂的入門指南之時間類(十七)

    java.util.Date`類 表示特定的瞬間,精確到毫秒。 繼續(xù)查閱Date類的描述,發(fā)現Date擁有多個構造函數,只是部分已經過時,我們重點看以下兩個構造函數 public Date() :從運行程序的此時此刻到時間原點經歷的毫秒值,轉換成Date對象,分配Date對象并初始化此對象,以表示分配它的時

    2024年02月11日
    瀏覽(1072)
  • 從零開始學習 Java:簡單易懂的入門指南之for循環(huán)(四)

    從零開始學習 Java:簡單易懂的入門指南之for循環(huán)(四)

    在一個程序執(zhí)行的過程中,各條語句的執(zhí)行順序對程序的結果是有直接影響的。所以,我們必須清楚每條語句的執(zhí)行流程。而且,很多時候要通過控制語句的執(zhí)行順序來實現我們想要的功能。 1.1 流程控制語句分類 ? 順序結構 ? 判斷和選擇結構(if, switch) ? 循環(huán)結構(for, w

    2024年02月12日
    瀏覽(88)
  • 從零開始學習 Java:簡單易懂的入門指南之線程池(三十六)

    從零開始學習 Java:簡單易懂的入門指南之線程池(三十六)

    當線程被創(chuàng)建并啟動以后,它既不是一啟動就進入了執(zhí)行狀態(tài),也不是一直處于執(zhí)行狀態(tài)。線程對象在不同的時期有不同的狀態(tài)。那么Java中的線程存在哪幾種狀態(tài)呢?Java中的線程 狀態(tài)被定義在了java.lang.Thread.State枚舉類中,State枚舉類的源碼如下: 通過源碼我們可以看到Ja

    2024年02月08日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包