java 循环结构和常用的类 总结笔记
這里主要總結:Number 類、Character 類、String 類、StringBuffer 和 StringBuilder 類
java循環結構比較簡單,這里只總結Java 增強 for 循環。
1. Java 增強 for 循環
Java5 引入了一種主要用于數組的增強型 for 循環。
Java 增強 for 循環語法格式如下:
聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。
2. Java Number 類
在實際開發過程中,我們經常會遇到需要使用對象,而不是內置數據類型的情形。為了解決這個問題,Java 語言為每一個內置數據類型提供了對應的包裝類.
所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類 Number 的子類。
這種由編譯器特別支持的包裝稱為裝箱,所以當內置數據類型被當作對象使用的時候,編譯器會把內置類型裝箱為包裝類。相似的,編譯器也可以把一個對象拆箱為內置類型。Number 類屬于 java.lang 包。
/** * java中的自動裝箱與拆箱 * 簡單一點說,裝箱就是自動將基本數據類型轉換為包裝器類型;拆箱就是自動將包裝器類型轉換為基本數據類型。 */ public class Number {public static void main(String[] args) {/**Integer i1 = 128; // 裝箱,相當于 Integer.valueOf(128);int t = i1; //相當于 i1.intValue() 拆箱System.out.println(t);*//**對于–128到127(默認是127)之間的值,被裝箱后,會被放在內存里進行重用但是如果超出了這個值,系統會重新new 一個對象*/Integer i1 = 200;Integer i2 = 200;/**注意 == 與 equals的區別== 它比較的是對象的地址equals 比較的是對象的內容*/if(i1==i2) {System.out.println("true");} else {System.out.println("false");}} }注意:
== 它比較的是對象的地址
equals 比較的是對象的內容
3. Character 類
Character類提供了一系列方法來操縱字符。你可以使用Character的構造方法創建一個Character類對象,例如:
Character ch = new Character('a');在某些情況下,Java編譯器會自動創建一個Character對象。
例如,將一個char類型的參數傳遞給需要一個Character類型參數的方法時,那么編譯器會自動地將char類型參數轉換為Character對象。 這種特征稱為裝箱,反過來稱為拆箱。
4. String 類
4.1 創建字符串
創建字符串最簡單的方式如下:
String greeting = "菜鳥教程";在代碼中遇到字符串常量時,這里的值是 “菜鳥教程”“,編譯器會使用該值創建一個 String 對象。
和其它對象一樣,可以使用關鍵字和構造方法來創建 String 對象。
以上實例編譯運行結果如下:
runoob注意:
String 類是不可改變的,所以你一旦創建了 String 對象,那它的值就無法改變了。
如果需要對字符串做很多修改,那么應該選擇使用 StringBuffer & StringBuilder 類。
String 類是不可改變的解析,例如:
String s = "Google"; System.out.println("s = " + s);s = "Runoob"; System.out.println("s = " + s);輸出結果為:
Google Runoob從結果上看是改變了,但為什么門說String對象是不可變的呢?
原因在于實例中的 s 只是一個 String 對象的引用,并不是對象本身,當執行 s = “Runoob”; 創建了一個新的對象 “Runoob”,而原來的 “Google” 還存在于內存中。
4.2 length()方法,length屬性和size()的方法的區別:
1.length()方法是針對字符串來說的,要求一個字符串的長度就要用到它的length()方法;
2.length屬性是針對Java中的數組來說的,要求數組的長度可以用其length屬性;
3.java中的size()方法是針對泛型集合說的,如果想看這個泛型有多少個元素,就調用此方法來查看!
4.3
1.對整數進行格式化:%[index$][標識][最小寬度]轉換方式
格式化字符串由4部分組成,特殊的格式常以%index$開頭,index從1開始取值,表示將第index個參數拿進來進行格式化,[最小寬度]的含義也很好理解,就是最終該整數轉化的字符串最少包含多少位數字。剩下2個部分的含義:
標識:
‘-’ 在最小寬度內左對齊,不可以與”用0填充”同時使用
‘#’ 只適用于8進制和16進制,8進制時在結果前面增加一個0,16進制時在結果前面增加0x
‘+’ 結果總是包括一個符號(一般情況下只適用于10進制,若對象為BigInteger才可以用于8進制和16進制)
’ ’ 正值前加空格,負值前加負號(一般情況下只適用于10進制,若對象為BigInteger才可以用于8進制和16進制)
‘0’ 結果將用零來填充
‘,’ 只適用于10進制,每3位數字之間用”,”分隔
‘(’ 若參數是負數,則結果中不添加負號而是用圓括號把數字括起來(同’+’具有同樣的限制)
轉換方式:
d-十進制 o-八進制 x或X-十六進制
上面的說明過于枯燥,我們來看幾個具體的例子。需要特別注意的一點是:大部分標識字符可以同時使用。
2.對浮點數進行格式化:%[index$][標識][最少寬度][.精度]轉換方式
我們可以看到,浮點數的轉換多了一個”精度”選項,可以控制小數點后面的位數。
標識:
‘-’ 在最小寬度內左對齊,不可以與”用0填充”同時使用
‘+’ 結果總是包括一個符號
’ ’ 正值前加空格,負值前加負號
‘0’ 結果將用零來填充
‘,’ 每3位數字之間用”,”分隔(只適用于fgG的轉換)
‘(’ 若參數是負數,則結果中不添加負號而是用圓括號把數字括起來(只適用于eEfgG的轉換)
轉換方式:
‘e’, ‘E’ – 結果被格式化為用計算機科學記數法表示的十進制數
‘f’ – 結果被格式化為十進制普通表示方式
‘g’, ‘G’ – 根據具體情況,自動選擇用普通表示方式還是科學計數法方式
‘a’, ‘A’ – 結果被格式化為帶有效位數和指數的十六進制浮點數
3.對字符進行格式化:
對字符進行格式化是非常簡單的,c表示字符,標識中’-‘表示左對齊,其他就沒什么了。
5. StringBuffer 和 StringBuilder 類
當對字符串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。
和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,并且不產生新的未使用對象。
StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。
由于 StringBuilder 相較于 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程序要求線程安全的情況下,則必須使用 StringBuffer 類。
總結:
Java 中 StringBuffer 和 String 是有一定的區別的,首先,String 是被 final 修飾的,他的長度是不可變的,就算調用 String 的
concat 方法,那也是把字符串拼接起來并重新創建一個對象,把拼接后的 String 的值賦給新創建的對象,而 StringBuffer 的長度是可變的,調用StringBuffer 的 append 方法,來改變 StringBuffer 的長度,并且,相比較于 StringBuffer,String 一旦發生長度變化,是非常耗費內存的!
摘自:http://www.runoob.com/java/java-tutorial.html
總結
以上是生活随笔為你收集整理的java 循环结构和常用的类 总结笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南邮(说一说南邮的简介)
- 下一篇: java嵌套类笔记