欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java語法基礎(chǔ)之運算符學(xué)習(xí)筆記分享

 更新時間:2016年09月08日 11:13:38   作者:生命壹號  
這篇文章主要為大家分享了Java語法基礎(chǔ)之運算符學(xué)習(xí)筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、運算符

運算符包括下面幾種:

算術(shù)運算符賦值運算符比較運算符邏輯運算符位運算符三目運算符

最不常用的是位運算符,但也是最接近計算機底層的。

1、算術(shù)運算符

(1)+的幾種用法:加法、正數(shù)、字符串連接符

(2)除法的時候要注意一個問題:整數(shù)相除,只能得到整數(shù)。要想得到小數(shù),可以將數(shù)據(jù)自身*1.0,即將數(shù)據(jù)自身先轉(zhuǎn)換為浮點型。

2、賦值運算符

符號 = += -= *= /= %=

注:=為基本的賦值運算符,其他的為擴展的賦值運算符

面試題:

(1)short s=1, s = s+1;

(2) short s=1, s+=1;

上面兩個代碼有沒有問題,如果有,哪里有問題?

答案:代碼(1)是有錯誤的,會損失精度,byte,short在定義的時候,他們接收的其實是一個int類型的值。這個是自己做了一個數(shù)據(jù)檢測的,如果不再它們的范圍內(nèi),就報錯。效果如下:

代碼(2)沒有錯誤,因為:擴展的賦值運算符其實隱含了一個強制類型轉(zhuǎn)換。

也就是說,i += 1; 不是等價于 i = i + 1; 而是等價于 i = (i的數(shù)據(jù)類型)(s + 1);

3、關(guān)系運算符

注1:比較運算符的結(jié)果都是boolean型,也就是要么是true,要么是false。

注2:比較運算符“==”不能誤寫成“=” 。舉例:

4、邏輯運算符

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

(2)“&”和“&&”的區(qū)別?同理, “|”和“||”的區(qū)別?

A:最終結(jié)果都一樣。例如:A和B必須同時為真,A&B、A&&B的結(jié)果才為真。B:&&具有短路效果,左邊是false,右邊不執(zhí)行。||具有短路效果,左邊是true,右邊不執(zhí)行。

注:開發(fā)中常用的邏輯運算符: &&,||,!

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

5、位運算符:

雖然開發(fā)中用的不多,但會在很多源碼中看到,因為計算機底層的計算都是位運算。

面試題1:實現(xiàn)兩個整數(shù)變量的交換

代碼如下:

/*
  面試題:請自己實現(xiàn)兩個整數(shù)變量的交換
*/
class OperatorTest {
  public static void main(String[] args) {
    int a = 10;
    int b = 20;
    
    System.out.println("a:"+a+",b:"+b);
    
    //方式1:使用第三方變量(開發(fā)中用的)    
    int c = a;
    a = b;
    b = c;
    System.out.println("a:"+a+",b:"+b);
    System.out.println("------------");
    
    
    //方式2:用位異或?qū)崿F(xiàn)(面試用)
    //左邊:a,b,a
    //右邊:a ^ b    
    a = a ^ b;
    b = a ^ b; //a ^ b ^ b = a
    a = a ^ b; //a ^ b ^ a = b
    System.out.println("a:"+a+",b:"+b);
    
    
    //方式3:用變量相加的做法    
    a = a + b; //a=30
    b = a - b; //b=10
    a = a - b; //a=20
    System.out.println("a:"+a+",b:"+b);
    *
    
    //方式4:一句話搞定
    b = (a+b) - (a=b); //b=30-20=10,a=20
    System.out.println("a:"+a+",b:"+b);
  }
}

面試題2:請用最有效率的方式寫出計算2乘以8的結(jié)果。

答案:2 * 8等價于2 << 3

知識回顧:

<<:左移 左邊最高位丟棄,右邊補齊0 >>:右移 最高位是0,左邊補齊0;最高為是1,左邊補齊1 >>>:無符號右移 無論最高位是0還是1,左邊補齊0

6、三目運算符:

格式:(關(guān)系表達式)?表達式1:表達式2;

如果條件為true,運算后的結(jié)果是表達式1;

如果條件為false,運算后的結(jié)果是表達式2;

示例:

獲取兩個數(shù)中大數(shù):

復(fù)制代碼 代碼如下:
int x=3,y=4,z;z = (x>y)?x:y;//z變量存儲的就是兩個數(shù)的大數(shù)。

獲取三個整數(shù)中的最大值:

//方式一:分兩步
    //A:先比較a,b的最大值
    //B:拿a,b的最大值在和c進行比較
    int temp = ((a > b)? a: b);
    //System.out.println(temp);
    int max1 = (temp > c? temp: c);
    System.out.println("max1:"+max1);
    
    //方式二:一步搞定
    int max2 = (a > b)?((a > c)? a: c):((b > c)? b: c);
    //這種做法不推薦:
    //int max2 = a > b?a > c? a: c:b > c? b: c;
    //System.out.println("max2:"+max2);

建議用方式一 。另外,方式二中,第10行和第12行是一樣的,是三目運算符的嵌套使用。

比較兩個整數(shù)是否相等:

//比較兩個整數(shù)是否相等 
    int m = 100;
    int n = 200;
    
    //boolean flag = (m == n)? true: false;
    boolean flag = (m == n);
    System.out.println(flag);

二 、鍵盤錄入數(shù)據(jù)

我們目前在寫程序的時候,數(shù)據(jù)值都是固定的,但是實際開發(fā)中,數(shù)據(jù)值肯定是變化的,所以,我準(zhǔn)備把數(shù)據(jù)改進為鍵盤錄入,提高程序的靈活性。

如何實現(xiàn)鍵盤錄入數(shù)據(jù)呢?(目前先記住使用)

(1)導(dǎo)包(位置放到class定義的上面):import java.util.Scanner;

(2)創(chuàng)建鍵盤錄入對象:Scanner sc = new Scanner(System.in);

(3)通過對象獲取數(shù)據(jù):int x = sc.nextInt();

代碼舉例:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java十分鐘精通進階適配器模式

    Java十分鐘精通進階適配器模式

    適配器模式(Adapter?Pattern)是作為兩個不兼容的接口之間的橋梁。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個獨立接口的功能
    2022-04-04
  • Java 類加載機制詳細介紹

    Java 類加載機制詳細介紹

    這篇文章主要介紹了Java 類加載機制詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java實現(xiàn)一個接口調(diào)取另一個接口(接口一調(diào)取接口二)

    java實現(xiàn)一個接口調(diào)取另一個接口(接口一調(diào)取接口二)

    這篇文章主要介紹了java實現(xiàn)一個接口調(diào)取另一個接口(接口一調(diào)取接口二),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java多線程編程詳細解釋

    Java多線程編程詳細解釋

    這篇文章主要介紹了java多線程編程實例,分享了幾則多線程的實例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下。
    2021-11-11
  • Spring.Net在MVC中實現(xiàn)注入的原理解析

    Spring.Net在MVC中實現(xiàn)注入的原理解析

    這篇文章主要介紹了Spring.Net在MVC中實現(xiàn)注入的原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Java抽象定義以及舉例代碼

    Java抽象定義以及舉例代碼

    這篇文章主要給大家介紹了關(guān)于Java抽象定義以及舉例的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java實現(xiàn)任務(wù)超時處理方法

    Java實現(xiàn)任務(wù)超時處理方法

    任務(wù)超時處理是比較常見的需求,Java中對超時任務(wù)的處理有兩種方式,在文中給大家詳細介紹,本文重點給大家介紹Java實現(xiàn)任務(wù)超時處理方法,需要的朋友可以參考下
    2019-06-06
  • SpringBoot使用@Async注解處理異步事件的方法

    SpringBoot使用@Async注解處理異步事件的方法

    在現(xiàn)代應(yīng)用程序中,異步編程已經(jīng)成為了必備的技能,異步編程使得應(yīng)用程序可以同時處理多個請求,從而提高了應(yīng)用程序的吞吐量和響應(yīng)速度,在SpringBoot 中,我們可以使用 @Async 注解來實現(xiàn)異步編程,本文將介紹 @Async 注解的使用方法和注意事項
    2023-09-09
  • Spring Batch輕量級批處理框架實戰(zhàn)

    Spring Batch輕量級批處理框架實戰(zhàn)

    本文主要介紹了Spring Batch輕量級批處理框架實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Spring Boot 2 Thymeleaf服務(wù)器端表單驗證實現(xiàn)詳解

    Spring Boot 2 Thymeleaf服務(wù)器端表單驗證實現(xiàn)詳解

    這篇文章主要介紹了Spring Boot 2 Thymeleaf服務(wù)器端表單驗證實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11

最新評論