一、輸入有兩種方式。
1.使用Scanner。
使用時要在開始聲明引用import java.util.Scanner包。然后定義Scanner對象:
Scanner input=new Scanner(System.in);
之后再聲明你輸入的數據類型,比如輸入是int類型的:
int intName=input.next();
2.使用BufferedReader。
使用時要在開始聲明引用import java.io.*包(包括import java.io.BufferedReader和import java.io.InputStreamReader),然后定義
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
之后再聲明你要接收的數據類型,比如如虎如是int類型的:
int intName=Integer.parseInt(input.readLine());
注意:因為readLine()這個方法在底層聲明了異常! 我們使用的時候必須要去處理。
示例
import java.io.*;//java.io包括import java.io.BufferedReader和import java.io.InputStreamReader;
public class HelloWorld {
public static void main(String[] args) throws IOException
{
System.out.println("請輸入數字:");
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
int intName=Integer.parseInt(input.readLine());
System.out.println("您輸入的數字是:"+intName);
}
}
3.總結:當BufferedReader在讀取文本文件時,會先盡量從文件中讀入字符數據並置入緩沖區,而之后若使用read()方法,會先從緩沖區中進行讀取。System.in是一個位流,為了轉換為字符流,可使用InputStreamReader為其進行字符轉換,然后再使用BufferedReader為其增加緩沖功能。所以使用BufferedReader input = new BufferedReader(new InputStreamReader(System.in))。
區別:(詳情請見http://blog.sina.com.cn/s/blog_5fd837410100rtwk.html)
BufferedReader:是字符輸入流中讀取文本,緩沖各個字符,從而提供字符、數組和行的高效讀取!速度要比Scanner快!而且也可以設置緩沖區的大小,或者可使用默認的大小。大多數情況下,默認值就足夠大了。
Scanner:用Scanner獲得用戶的輸入非常的方便,但是Scanner取得輸入的依據是空格符,包括空格鍵,Tab鍵和Enter鍵。當按下這其中的任一鍵時,Scanner就會返回下一個輸入.當你輸入的內容中間包括空格時,顯然,使用Scanner就不能完整的獲得你輸入的字符串。
二、輸出的方式。
System.out.println。嗯。。。。這個確實沒什么好說的。大家都知道。而且不用引用命名空間或者包。直接上例子:
1 public class HelloWorld { 2 public static void main(String[] args){ 3 System.out.println("輸出"); 4 } 5 }
三、數據類型。
1.基本數據類型:
1).整型:byte(字節):byte由1個字節8位表示,是最小的整數類型。主要用於節省內存空間關鍵。當操作來自網絡、文件或者其他IO的數據流時,byte類型特別有用。取值范圍[-128,127]
short(短整型):由2個字節16位表示。short類型參與運算的時候,一樣被提升為int或者更高的類型。取值范圍[-2^15,2^15-1]
int(整型):由4個字節32位表示。取值范圍[-2^31,2^31-1]
long(長整型):由8個字節64位表示。當需要計算非常大的數時,如果int不足以容納大小,可以使用long類型。如果long也不夠,可以使用BigInteger類。取值范圍[-2^63,2^63-1]
2).浮點型:
float(浮點型):由4個字節32位表示。 單精度浮點數,運行速度相比double更快,占內存更小,但是當數值非常大或者非常小的時候會變得不精確。精度要求不高的時候可以使用float類型。可以將byte、short、int、long、char賦給float類型,java自動完成轉換(隱式轉換)。取值范圍[-3.4E38,3.4E38]
double(雙精度):由8個字節64位表示。將浮點數賦給某個變量時,如果不顯示在字面值后面加f或者F,則默認為double類型。java.lang.Math中的函數都采用double類型。如果double和float都無法達到想要的精度,可以使用BigDecimal類。取值范圍[-1.7E308,1.7E308]
3).字符型:char:占2個字節16個位。ASCII字符集占用了Unicode的前127個值。當char進行加減乘除運算的時候,也被轉換成int類型,必須顯式轉化回來。取值范圍[0,65535]
4).布爾型:boolean:只有兩個值true和false,默認為false。boolean與是否為0沒有任何關系,但是可以根據想要的邏輯進行轉換。許多地方都需要用到boolean類型。
2.基本類型數據轉換:
3.引用數據類型:類、接口類型、數組類型、枚舉類型、注解類型。這里就不一一贅述。(關鍵我還沒接觸和熟悉。后面熟悉了會列舉出來)