Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。
java
若是要把大的轉成小的,或者在short與char之間進行轉換,就必須強制轉換,也被稱做縮小轉換(narrowing conversion),由於必須顯式地使數值更小以適應目標類型。強制轉換採用轉換操做符()。嚴格地說,將byte轉爲char不屬於narrowing conversion),由於從byte到char的過程實際上是byte-->int-->char,因此widening和narrowing都有。強制轉換除了可能的精度損失外,還可能使模(overall magnitude)發生變化。數組
String name = new String("星星");
或者安全
String name = "星星";
用於獲取有關對象的信息的方法稱爲訪問器方法。
String 類的一個訪問器方法是 length()
方法,它返回字符串對象包含的字符數。多線程
String 類提供了鏈接兩個字符串的方法:app
string1.concat(string2);
返回 string2 鏈接 string1 的新字符串。也能夠對字符串常量使用 concat() 方法,如:ide
"星星".concat("star");
更經常使用的是使用'+'操做符來鏈接字符串,如:性能
"Hello," + " star" + "!"
咱們知道輸出格式化數字可使用 printf() 和 format() 方法。
String 類使用靜態方法 format() 返回一個String 對象而不是 PrintStream 對象。
String 類的靜態方法 format() 能用來建立可複用的格式化字符串,而不單單是用於一次打印輸出。ui
使用equals()方法,區分大小寫線程
System.out.println("star".equals("star"));
使用equalsIgnoreCase()方法,忽略大小寫指針
System.out.println("star".equalsIgnoreCase("Star"));
String blog = "star and moon"; String sub1 = string.substring(2); String sub2 = blog.substring(2, 4); System.out.println(sub1); System.out.println(sub2);
String string2 = "I love Java"; String string3 = "o"; int serindex1 = string2.indexOf(string3); //從String2開始位置查找string3字符串 int serindex2 = string2.indexOf(string3,5); //從String2字符串第二個位置查找string3字符串 System.out.println(serindex1); //從0開始 System.out.println(serindex2); //查詢不到顯示-1
char oldChar = 'I'; char newChar = 'U'; string2.replace(oldChar, newChar); System.out.print(string2.replace(oldChar, newChar));
String hellostring = "hello"; char[] helloArray = hellostring.toCharArray();
簡單的來講:String 類中使用 final 關鍵字修飾字符數組來保存字符串,private final char value[],因此 String 對象是不可變的。而StringBuilder 與 StringBuffer 都繼承自 AbstractStringBuilder 類,在 AbstractStringBuilder 中也是使用字符數組保存字符串char[]value 可是沒有用 final 關鍵字修飾,因此這兩種對象都是可變的。
StringBuilder 與 StringBuffer 的構造方法都是調用父類構造方法也就是 AbstractStringBuilder 實現的,你們能夠自行查閱源碼。
AbstractStringBuilder.java
abstract class AbstractStringBuilder implements Appendable, CharSequence { char[] value; int count; AbstractStringBuilder() { } AbstractStringBuilder(int capacity) { value = new char[capacity]; } }
String 中的對象是不可變的,也就能夠理解爲常量,線程安全。AbstractStringBuilder 是 StringBuilder 與 StringBuffer 的公共父類,定義了一些字符串的基本操做,如 expandCapacity、append、insert、indexOf 等公共方法。StringBuffer 對方法加了同步鎖或者對調用的方法加了同步鎖,因此是線程安全的。StringBuilder 並無對方法進行加同步鎖,因此是非線程安全的。
對於三者使用的總結:
操做少許的數據: 適用String
單線程操做字符串緩衝區下操做大量數據: 適用StringBuilder
多線程操做字符串緩衝區下操做大量數據: 適用StringBuffer
在 Java 中提供了大數字的操做類,即 java.math.BigInteger 類與 java.math.BigDecimal 類。這兩個類用於高精度計算, BigInteger 類是針對大整數的處理類,而 BigDecimal 類則是針對大小數的處理類。
使用靜態的valueOf方法能夠將普通的數值轉換成大數值。
Java 語言中提供的數組是用來存儲固定大小的同類型元素。
數組中的元素能夠是任何數據類型,包括基本數據類型和引用數據類型。
數組屬引用類型,數組型數據是對象(object),數組中的每一個元素至關於該對象的成員變量。
數組是多個相同類型數據的組合,實現對這些數據的統一管理。一個數組實際上就是一連串的變量,數組按照使用能夠分爲一維數組、二維數組、多維數組。
首先必須聲明數組變量,才能在程序中使用數組。下面是聲明數組變量的語法:
dataType[] arrayRefVar; // 首選的方法
或 dataType arrayRefVar[]; // 效果相同,但不是首選方法
Java語言使用new操做符來建立數組 dataType[] arrayRefVar = new dataType[arraySize];
JDK 1.5 引進了一種新的循環類型,被稱爲 For-Each 循環或者增強型循環,它能在不使用下標的狀況下遍歷數組。
語法格式以下:
for(type element: array) { System.out.println(element); }
多維數組能夠當作是數組的數組,好比二維數組就是一個特殊的一維數組,其每個元素都是一個一維數組,例如:
String str[][] = new String[3][4];
java.util.Arrays 類能方便地操做數組,它提供的全部方法都是靜態的。
具備如下功能: