luogg_java重新學習_第二章,基本語法01(各種概念)

来源:http://www.cnblogs.com/luogg/archive/2016/07/10/5658366.html
-Advertisement-
Play Games

關鍵字 定義:被java語言賦予了特殊含義,用作專門用途的字元串。 特點:關鍵字所有字母都小寫。 保留字 現有java版本尚未使用,但以後版本會作為關鍵字使用.byValue,cast,future,inner,outer,var,goto,const 標示符 java對各種 變數 , 方法和類 等 ...


關鍵字

  • 定義:被java語言賦予了特殊含義,用作專門用途的字元串。
  • 特點:關鍵字所有字母都小寫。

保留字

  • 現有java版本尚未使用,但以後版本會作為關鍵字使用.byValue,cast,future,inner,outer,var,goto,const

標示符

  • java對各種變數方法和類等要素命名時使用的字元序列稱為標示符。
  • 凡是自己可以起名字的地方都叫標示符

java中名稱命名規範

  • 包名:多單片語成時所有字母都小寫:xxxyyyzzz
  • 類名、介面名:多單片語成時,所有單詞的首字母大寫:XxxYyyZzz
  • 變數名、方法名:多單片語成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz
    int myInt = 1;
  • 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ

變數

  • 數據類型 變數名 = 初始化值;
  • 變數的作用域:一對{}之間

基本數據類型

  • 整型byte,short,int,long(L/l)
    byte 1位元組(8byte), -128~127
    short 2位元組,-2^15~2^15-1
    int 4位元組,-2^31~2^31-1
    long 8位元組,-2^63~2^63-1
  • 浮點型float(F),double
    float 4位元組
    double 8位元組
  • 字元型char(只能表示一個字元,可以是英文中文標點,若要表示多個字元,用String)
    char c1='a';
    String str="abc";
  • 布爾型boolean

  • char類型還可以表示轉義字元和unicode值

    char c1='\n';
    char c2='\t';
    char c3='\u1234';

基本數據類型轉換

  • 自動類型轉換:當容量小的數據和容量大的數據做運算時,容量小的數據會自動轉換為容量大的數據。

    char,byte,short==>int==>long==>float==>double

  • 強制類型轉換:容量大的轉換為容量小的,要使用強制類型轉換。

long l1=12345L;
int i1=(int)l1;

強制類型轉換的問題:導致精度損失。

  • [x] String類型的字元串與基本數據類型之間的運算:只能是連接運算 + 。得到的結果仍然是一個字元串。
String str="abc";
int i1=12345;
String str2=str+i1;//abc12345;

原碼、反碼、補碼

  • 對於正數,原碼反碼補碼三碼合一。
  • 反碼:原碼各個位除符號位外取反。
  • 補碼:反碼+1。
  • 不管正數還是負數,在底層都是以補碼的形式存儲的。

進位之間的轉換

  • 十進位==>二進位:除2取餘數的逆
  • 二進位==>八進位:三個數當做一個數。
    11101001==0351
  • 二進位==>十六進位:四個數當作一個數。

算術運算符

  • +(正號),-(負號),+,-,*,/,%(取模),++,--,+(連接符)
  • i++:先運算,後自增加1。
  • ++i:先自增加1,後運算
    int i1=10;
    int i2=i1++;
    System.out.println(i1);//11
    System.out.println(i2);//10
        
    int i3=10;
    int i4=++i3;
    System.out.println(i3);//11
    System.out.println(i4);//11
int i5=10;
        int i6=i5--;
        System.out.println(i5);//9
        System.out.println(i6);//10
        
        int i7=10;
        int i8=--i7;
        System.out.println(i7);//9
        System.out.println(i8);//9

賦值運算符

  • +=,-=,*=,/=,%=
short s=3;
        s=(short)(s+3);//不建議如此實現

        s+=3;//既可以實現運算,又不會更改s的數據類型。
  • =為賦值符號。==為等號,判斷左右是否相等。

邏輯運算符

  • &邏輯與:不管左邊是ture還是false右邊都會進行運算。
  • &&短路與:當左邊為false時右邊不進行運算。(建議使用&&,)
  • |邏輯或:左端為true時,右端繼續做運算。
  • ||短路或:左端為true時,右端不再做運算。(建議使用||)
  • !邏輯非
  • ^邏輯異或:左右兩邊取值不一樣的時候才為1。

深入理解邏輯與和短路與的區別

boolean c=false;
        int c1=10;
        if(c&(c1++) >0){
            System.out.println("今天是個好天氣");
        }else{
            System.out.println("難得沒有霧霾");//難得沒有霧霾
        }
        System.out.println(c1);//11
        
        int c2=10;
        if (c&&(c2++)>0) {
            System.out.println("今天是個好天氣");
        }else{
            System.out.println("難得沒有霧霾");//難得沒有霧霾
        }
        System.out.println(c2);//10

位運算符

  • <<左移,左移幾位,相當於成2的幾次方
  • >> 右移,不足的用與最高位相同的數字補齊,0或1。
  • >>>:無符號右移,不足的都用0補全。
  • &:與運算,6&3=2;用2進位表示,上下相等用為1,否則為0。
  • |:或運算,6|3=7。用二進位表示,上下有一個為1,則為1。
  • ^:異或運算,6|3=5.用二進位表示,上下兩邊不一樣時用1表示。
  • ~:反碼。~6=-7。用二進位表示,直接各位取反。

    交換兩個元素的值

int m=5;
int n=10;

方法一:提供一個臨時變數
        int temp;
        temp=m;
        m=n;
        n=temp;
方法二:當m和n較大時,有可能出現精度損失
        m=m+n;
        n=m-n;
        m=m-n;
方法三:優點:沒有上面兩種方法的缺點。 缺點:難,想不到。
        m = m ^ n;
        n = m ^ n;//(m^n)^n=m
        m = m ^ n;//(m^n)^m
練習:以手動的方式,從控制台輸出60的2進位8進位16進位
int i=60;
        //將十進位的數轉換為二進位
        String binary=Integer.toBinaryString(i);
        System.out.println(binary);//111100
        //將十進位的數轉換為八進位
        String octal=Integer.toOctalString(i);
        System.out.println(octal);//74
        //將十進位的數轉換為十六
        String hex=Integer.toHexString(i);
        System.out.println(hex);//3c
三元運算符
  • 三元運算符:(條件表達式)?表達式1:表達式2;
  • 要求:表達式1與表達式2必須是同種數據類型。
  • 三元運算符可以轉換為if-else,反之不成立。因為三元運算符必須有一個運算結果,而if-else不一定需要有運算結果。
    ```
    int i=10,j=20;
    int max=(i>j)?i:j;
    System.out.println(max);//20

    String str=(i>j)?"i大":"j大";
    System.out.println(str);//j大

int i1=10,j1=10;
String str1=(i1>j1)?"i1大":(i1==j1)?"相等":"j1大";
System.out.println(str1);//相等

//用三元運算符輸出三個數中的最大值
int a=5,b=100,c=20;
int max1=(a>b)?a:(b>c)?b:c;
System.out.println(max1);//100
```


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、MVC概要 MVC是模型(Model)、視圖(View)、控制器(Controller)的簡寫,是一種軟體設計規範,用一種將業務邏輯、數據、顯示分離的方法組織代碼,MVC主要作用是降低了視圖與業務邏輯間的雙向偶合。MVC不是一種設計模式,MVC是一種架構模式。當然不同的MVC存在差異。 在web ...
  • 本節進一步介紹對異常的處理,finally的詭異之處,checked/unchecked exception的區別,異常的來源,以及處理的思維邏輯 ... ...
  • 介紹了sparklyr在Linux下的安裝和使用,包括如何解決遇到的問題,如何部署本地spark和集群spark,並給出了官方示例! ...
  • 迴圈結構 <!--EndFragment--> <!--EndFragment--> 【寫在開頭:】 『 生活中的迴圈: C語言中的迴圈: 迴圈結構是程式中一種很重要的結構。其特點是,在給定的條件成立時,反覆執行某程式段,直到條件不成立為止。 C語言中提供了多種迴圈語句: 1)goto語句和if構成 ...
  • 在Qt中,如何響應動作。這會用到Qt的信號和槽機制。 我的理解:它和Win32程式的消息響應機制差不多吧。 信號,簡單理解就是:當我們點擊一個按鈕時,這個按鈕自身就會產生一個叫作"單擊"的信息,這個信息說明瞭剛剛我們點擊了這一個按鈕。產生的這個信息就相當於自己發射了一個信號,表明一個用戶動作已經發生 ...
  • R語言在Linux下安裝一不小心就容易出錯,本文給出了Ubuntu 16.04LTS版本下的R和RStudio Server的安裝方法,不需要自己下載相關包,方便,快捷! ...
  • python-super 由Python的super()函數想到的 首先看一下super()函數的定義: 返回一個代理對象, 這個對象負責將方法調用分配給第一個參數的一個父類或者同輩的類去完成. parent or sibling class 如何確定? 第一個參數的__mro__屬性決定了搜索的順 ...
  • 程式流程式控制制 順序結構 分支結構:if else,switch case 迴圈結構:while,do while,for if else三種格式 //列印九九乘法表 for(int i = 1;i 費時太多,需要優化,首先在flag底下加break,然後將flag==false改為!flag,再將j ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...