1. 程式人生 > >《瘋狂Java講義》 3-數據類型與運算符

《瘋狂Java講義》 3-數據類型與運算符

標識 註釋 32位 lis 默認 fin ger 單行註釋 parse

總結

  Java是強類型語言:變量想聲明後使用,類型要匹配。

1、註釋

  Java的單行註釋與多行註釋與C++類似,//  /*  */

  Java還提供了文檔註釋,使用javadoc工具可以直接將註釋提取為API文檔。(好多好多好多類,指導如何使用)

    • javadoc只處理在類最前部的註釋,默認只處理public、protected修飾的類。
    • javadoc -private
    • 文檔註釋以/**開始,以*/結束
    • javadoc的參數

    技術分享圖片

    技術分享圖片

    技術分享圖片

    *Test.java 所有以Test結尾的程序

    技術分享圖片

    技術分享圖片

    javadoc默認不提取@author,@version,如要則加-author等參數

    技術分享圖片

    包?首行的 package yeeku; 對包的註釋。

    包註釋並非在java源文件中,需另外指定。標準的HTML文件,文件名為package.html

    技術分享圖片

2、標識符與關鍵字

  分隔符與C#.net類似。命名的標識符還可以用$作為開頭。

  Java所有關鍵字都是小寫的。

  技術分享圖片

3、數據類型

  變量相當於一個有名稱的容器(內存),用於裝各種不同類型的數據。

  • 基本類型:boolean型,數值型。char相當於無符號整數類型。
  • 引用類型:類,接口,數組(String),null。實際相當於指針

  技術分享圖片

  註意:要想將大數(超出int範圍)當作long來處理,必須在數字後加L標註。因Java自動當作int來處理。

  0b開頭:二進制;0開頭:8進制;0x開頭:16進制;之後字符倒是不區分大小寫。

  技術分享圖片

  總之,如果用二進制表示,最高位是符號位!對long來說也是。默認右邊都是32位,溢出?

  \uxxxx:Unicode值

  char類型可以當做字符對應的編碼參與運算。16位。可以用String類來表示字符串,雙括號。

  Java的浮點數采用科學計數法(符號位+指數+尾數),用精確可用BigDecimal類

  Java默認是double,float要用F在末尾標記。

  除0.0得三個特殊的浮點數:double類的POSITIVE_INFINITY,NEGATIVE_INFINITY,NAN(與任何數不相等,甚至NAN)

  可以在數值中使用下劃線分隔來數位數。

  Java的布爾型只能true,false,不能0或非0(所以不能通過數值轉換得到)

  +可作為字符串連接符,且從左到右執行。3+4+“”

  強制類型轉換的數值變化應當註意一下。

  生成隨機字符串->生成多個特定範圍內的數字,再轉換

  float a=5.6 是錯的。5.6默認是double型,得接F或(float)

  基本類型對應的包裝類。int的Integer有parseInt方法可以直接轉換字符串

  表達式類型保持與表達式中最高等級操作數相同的類型。23/3=7,這點和C++一樣誒

  這裏主要字符串和數值的加法,與字符(自動提升為int)與int數值的加法的區別。從左至右,註意書上的例子。

  技術分享圖片

  常量池:編譯器被確定,保存在.class 中的數據。故同樣的字符串可以用==判斷,只有一個該常量,全都是它的引用。

  運算符一些要註意的:3/2 3.2%2.1 a++ ++a Math.pow(3,2) Math.random Math.sin

  Java支持連續賦值,表達式值等於右邊的值。

  註意復數的取反~,對計算機底層的二進制碼進行操作,復數是補碼。

  >>(填充符號位) >>>(補0) 位移不超限的話,可以用來作為*2 /2

  技術分享圖片

  可以用+=等 可防止右端表達式類型不同。底層運行機制不同

  技術分享圖片

  > >=只支持數值類型(char也ok吧),==可用於同一對象的引用,以及false==true返回false,具體可見P95

  &&和&的區別,&不短路,&前是0了仍計算後面的,4<5 & a++>10 ||與|類似

  是否? 1:2  這個在Java裏也有。可多重嵌套

問題

1、文檔註釋?

  描述部分+標記部分。這篇文章比較詳細:https://blog.csdn.net/garfielder007/article/details/54959587

2、包級別的註釋?

  和python的包有何異同?

3、數字的計算機表示方法:原碼,反碼,補碼。

《瘋狂Java講義》 3-數據類型與運算符