《瘋狂Java講義》 3-數據類型與運算符
總結
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-數據類型與運算符