1)int類型最常用 2)表示地球上的人數,就要用long型了 3)byte和short類型主要用于特定場合 4)Java中整型的范圍與運行Java代碼的機器無關。這就解決了軟件在不同平臺或同平臺不同操作系統間移植的問題。由于Java程序必須保證在所有機器上都能夠得到相同的運行結果,所以每種數據類型的取值范圍必須固定。 5)長整型數值有一個后綴L(如4000000000L) 6)十六進制數有一個前綴0x(如0xCAFE) 7)八進制數有一個前綴0(如010) 8)二進制數有一個前綴(如0b1001,就是9) 【Java7開始】 9)可以為數字字面量加下劃線,,(如1_000_000或0b1111_0100_0010_0000 表示1百萬),只是為了更易讀,Java編譯器會去除這些下劃線。 10)Java沒有任何無符號類型(unsighed)
1)double表示這種類型的數據精度是float類型的兩倍,絕大部分應用程序都采用double類型 2)只有很少情況下,使用使用float類型 3)float類型的數值有一個后綴F(如3.14F),沒有后綴F的浮點數值(如3.14)默認為double型 4)三個特殊的浮點數值 ---- 用于表示溢出和出錯的情況 a)正無窮大 ---- 對應常量Double.POSITIVE_INFINITY 一個正整數除以0的結果為正無窮大 b)負無窮大 ---- 對應常量Double.NEGATIVE_INFINITY c)NaN(不是一個數字) ----- 對應常量Double.NaN 0/0或者負數的平方根結果為NaN 5)所有非數值的值都是不相同的,可以使用Double.isNaN方法來檢驗某個值是否為NaN if(Double.isNaN(x)) 而不能使用如下方式檢驗 if(x==Double.NaN) 6)如果需要在數值計算中不含任何舍入誤差,就用該使用BigDecimal類
2)強烈建議不要在程序中使用char類型,最好將需要處理的字符串用抽象數據類型表示。
1)上圖6個實心箭頭,表示無信息丟失的轉換。有三個虛箭頭,表示可能有精度損失的轉換。 當兩個數值進行二元操作時,先要將兩個操作數轉換為同一種類型,然后再進行計算。 如果兩個操作數中有一個是double類型,另一個操作數就會轉換為double類型。 否則,如果其中一個操作數是float類型,另一個操作數將會轉換為float類型。 否則,如果其中一個操作數是long類型,另一個操作數將會轉換為long類型。 否則,兩個操作數都會被轉換成int類型。
public class InputTest {
public static void main(String[] args) {Scanner in = new Scanner(System.in); //構造一個Scanner對象,并于標準輸入流關聯System.out.print("What's your name?");String name = in.nextLine(); //輸入一行System.out.print("How old are you?");int age = in.nextInt(); //輸入一個整型數值System.out.println("Hello, " + name + ". Next year, you'll be" + (age + 1));}
}
package corejava;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintWriter;import java.nio.file.Paths;import java.util.*;public class FileInOutput {public static void main(String[] args) throws FileNotFoundException,IOException {
//PrintWriter out = new PrintWriter("F://Java//corejava//book.txt"); 絕對路徑寫法PrintWriter out = new PrintWriter("book.txt"); //相對路徑寫法out.println("code complete");out.println("Spring in action");out.close();//Scanner in = new Scanner(Paths.get("F://Java//corejava//book.txt"));Scanner in = new Scanner(Paths.get("book.txt"));String book1 = in.nextLine();String book2 = in.nextLine();in.close();System.out.println("book1:" + book1);System.out.println("book2:" + book2);System.out.println(System.getProperty("user.dir")); //Java虛擬機啟動路徑為F:/Java/corejava/ 因此上面的絕對路徑和相對路徑寫法是等價的。}
}3.8 控制流程
1)塊(即復合語句),是指由以對花括號括起來的若干簡單的Java語句。2)塊確定了變量的作用域3)一個塊可以嵌套在另一個塊中,但是不能在兩個嵌套的塊中聲明同名的變量。
import java.math.BigInteger;
public class BigIntegerTest {3.10 數組public static void main(String[] args) {BigInteger a = BigInteger.valueOf(5);BigInteger b = BigInteger.valueOf(6);BigInteger c = a.add(b);BigInteger d = a.multiply(b);System.out.println(c);System.out.println(d);}}
public class CommandLineArgs {
public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(args.length);for(String s:args){System.out.println(s);}
}}java CommandLineArgs -jrr tmac -lbj
import java.util.Arrays;public class SortTest {
public static void main(String[] args) {// TODO Auto-generated method stubint[] a = {1,3,2,5,9,7};System.out.println(Arrays.toString(a));Arrays.sort(a); //采用優化的快速排序法,對數組進行排序System.out.println(Arrays.toString(a));}
}
Arrays.binarySearch
新聞熱點
疑難解答