Java基本數據類型
Java變量類型
Java運算符
Java循環語句
Java條件語句
Java switch case
Java Number & Math類
Java Character類
public class Test {
public static void main(String args[]) {
System.out.print("------------------------Java基本數據類型------------------------------------\n");
// byte
System.out.println("基本類型:byte 二進制位數:" + Byte.SIZE);
System.out.println("包裝類:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本類型:short 二進制位數:" + Short.SIZE);
System.out.println("包裝類:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本類型:int 二進制位數:" + Integer.SIZE);
System.out.println("包裝類:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本類型:long 二進制位數:" + Long.SIZE);
System.out.println("包裝類:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本類型:float 二進制位數:" + Float.SIZE);
System.out.println("包裝類:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本類型:double 二進制位數:" + Double.SIZE);
System.out.println("包裝類:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本類型:char 二進制位數:" + Character.SIZE);
System.out.println("包裝類:java.lang.Character");
// 以數值形式而不是字符形式將Character.MIN_VALUE輸出到控制檯
System.out.println("最小值:Character.MIN_VALUE="
+ (int) Character.MIN_VALUE);
// 以數值形式而不是字符形式將Character.MAX_VALUE輸出到控制檯
System.out.println("最大值:Character.MAX_VALUE="
+ (int) Character.MAX_VALUE);
System.out.print("------------------------Java運算符------------------------------------\n");
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println("a + b = " + (a + b) );
System.out.println("a - b = " + (a - b) );
System.out.println("a * b = " + (a * b) );
System.out.println("b / a = " + (b / a) );
System.out.println("b % a = " + (b % a) );
System.out.println("c % a = " + (c % a) );
System.out.println("a++ = " + (a++) );
System.out.println("a-- = " + (a--) );
// 查看 d++ 與 ++d 的不同
System.out.println("d++ = " + (d++) );
System.out.println("++d = " + (++d) );
System.out.print("----------------------Java循環--------------------------------------\n");
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
System.out.print("----------------------這是if語句--------------------------------------\n");
int y = 10;
if( y < 20 ){
System.out.print("這是 if 語句\n");
}
System.out.print("----------------------這是switch語句用法--------------------------------------\n");
char grade = 'C';
switch(grade)
{
case 'A' :
System.out.println("優秀");
break;
case 'B' :
case 'C' :
System.out.println("良好");
break;
case 'D' :
System.out.println("及格");
break;
case 'F' :
System.out.println("你需要再努力努力");
break;
default :
System.out.println("未知等級");
}
System.out.println("你的等級是 " + grade);
System.out.print("---------------------Java Math 類--------------------------------------\n");
System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
System.out.println("0度的餘弦值:" + Math.cos(0));
System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
System.out.println("1的反正切值: " + Math.atan(1));
System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
System.out.println(Math.PI);
System.out.print("---------------------Character 類--------------------------------------\n");
System.out.print("-------------------1--是否是一個字母--------------------------------------\n");
System.out.println(Character.isLetter('c'));
System.out.println(Character.isLetter('5'));
System.out.print("----------------2-----是否是一個數字字符--------------------------------------\n");
System.out.println(Character.isDigit('c'));
System.out.println(Character.isDigit('5'));
System.out.print("----------------3-----是否是一個空白字符--------------------------------------\n");
System.out.println(Character.isWhitespace('c'));
System.out.println(Character.isWhitespace(' '));
System.out.println(Character.isWhitespace('\n'));
System.out.println(Character.isWhitespace('\t'));
System.out.print("------------4---------是否是大寫字母--------------------------------------\n");
System.out.println( Character.isUpperCase('c'));
System.out.println( Character.isUpperCase('C'));
System.out.print("---------------------是否是一個小寫字符--------------------------------------\n");
System.out.println( Character.isLowerCase('c'));
System.out.println( Character.isLowerCase('C'));
System.out.print("---------------------將小寫字符轉換爲大寫--------------------------------------\n");
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toUpperCase('A'));
System.out.print("--------------------- 指定字母的小寫形式--------------------------------------\n");
System.out.println(Character.toLowerCase('a'));
System.out.println(Character.toLowerCase('A'));
System.out.print("--------------------- 返回字符的字符串形式,字符串的長度僅爲1--------------------------------------\n");
System.out.println(Character.toString('a'));
System.out.println(Character.toString('A'));
System.out.print("--------------------- 創建字符串--------------------------------------\n");
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
System.out.println( helloString );
System.out.print("---------------------字符串長度--------------------------------------\n");
String site = "www.runoob.com";
int len = site.length();
System.out.println( "菜鳥教程網址長度 : " + len );
System.out.print("---------------------連接字符串--------------------------------------\n");
String string1 = "菜鳥教程網址:";
System.out.println("1、" + string1 + "www.runoob.com");
double floatVar=111.222;
int intVar=3;
String stringVar="string3";
System.out.printf("浮點型變量的值爲 " +
"%f, 整型變量的值爲 " +
" %d, 字符串變量的值爲 " +
"is %s", floatVar, intVar, stringVar);
}
}
String類:
菜鳥教程中提到不要使用stringbuffer,直接使用stringbuilder,
[1]中提到如何驗證stringbuilder是線程不安全的
下面涉及:
Java數組
Java正則
Java方法
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有數組元素
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// 計算所有元素的總和
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// 查找最大元素
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
// 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(\\D*)(\\d+)(.*)";
// 創建 Pattern 對象
Pattern r = Pattern.compile(pattern);
// 現在創建 matcher 對象
Matcher m = r.matcher(line);
System.out.println("---------------下面是輸出結果----------------------------------\n");
System.out.println(m);
System.out.println("---------------下面是輸出結果----------------------------------\n");
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
} else {
System.out.println("NO MATCH");
}
System.out.println("---------------Java 方法----------------------------------\n");
int num1 = 1;
int num2 = 2;
System.out.println("交換前 num1 的值爲:" +
num1 + " ,num2 的值爲:" + num2);
// 調用swap方法
swap(num1, num2);
System.out.println("交換後 num1 的值爲:" +
num1 + " ,num2 的值爲:" + num2);
}
/** 交換兩個變量的方法 */
public static void swap(int n1, int n2) {
System.out.println("\t進入 swap 方法");
System.out.println("\t\t交換前 n1 的值爲:" + n1
+ ",n2 的值:" + n2);
// 交換 n1 與 n2的值
int temp = n1;
n1 = n2;
n2 = temp;
System.out.println("\t\t交換後 n1 的值爲 " + n1
+ ",n2 的值:" + n2);
}
}
OutputStream以及InputStream的使用:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
// 下面是stream
//
// char c;
// // 使用 System.in 創建 BufferedReader
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// System.out.println("輸入字符, 按下 'q' 鍵退出。");
// // 讀取字符
// do {
// c = (char) br.read();
// System.out.println(c);
// } while (c != 'q');
System.out.println("-----------------------------FileOutputStream(先寫入文件)--------------------------------------\n");
File f = new File("a.txt");
FileOutputStream fop = new FileOutputStream(f);
// 構建FileOutputStream對象,文件不存在會自動新建
OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
// 構建OutputStreamWriter對象,參數可以指定編碼,默認爲操作系統默認編碼,windows上是gbk
writer.append("中文輸入");
// 寫入到緩衝區
writer.append("\r\n");
// 換行
writer.append("English");
// 刷新緩存衝,寫入到文件,如果下面已經沒有寫入的內容了,直接close也會寫入
writer.close();
// 關閉寫入流,同時會把緩衝區內容寫入文件,所以上面的註釋掉
fop.close();
// 關閉輸出流,釋放系統資源
System.out.println("-----------------------------FileInputStream(從文件讀取)--------------------------------------\n");
FileInputStream fip = new FileInputStream(f);
// 構建FileInputStream對象
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
// 構建InputStreamReader對象,編碼與寫入相同
StringBuffer sb = new StringBuffer();
while (reader.ready()) {
sb.append((char) reader.read());
// 轉成char加到StringBuffer對象中
}
System.out.println(sb.toString());
reader.close();
// 關閉讀取流
fip.close();
// 關閉輸入流,釋放系統資源
}
}
下面是Scanner-nextLine/nextInt/nextDouble的用法
import java.util.Scanner;
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
// System.out.println("-------------------下面是nextline的使用-----------------");
//
// Scanner scan = new Scanner(System.in);
// // 從鍵盤接收數據
//
// // nextLine方式接收字符串
// System.out.println("nextLine方式接收:");
// // 判斷是否還有輸入
// if (scan.hasNextLine()) {
// String str2 = scan.nextLine();
// System.out.println("輸入的數據爲:" + str2);
// }
// scan.close();
// System.out.println("-------------------下面是nextInt的使用-----------------");
// Scanner scan = new Scanner(System.in);
// // 從鍵盤接收數據
// int i = 0;
// float f = 0.0f;
// System.out.print("輸入整數:");
// if (scan.hasNextInt()) {
// // 判斷輸入的是否是整數
// i = scan.nextInt();
// // 接收整數
// System.out.println("整數數據:" + i);
// } else {
// // 輸入錯誤的信息
// System.out.println("輸入的不是整數!");
// }
// System.out.print("輸入小數:");
// if (scan.hasNextFloat()) {
// // 判斷輸入的是否是小數
// f = scan.nextFloat();
// // 接收小數
// System.out.println("小數數據:" + f);
// } else {
// // 輸入錯誤的信息
// System.out.println("輸入的不是小數!");
// }
// scan.close();
System.out.println("-------------------下面是nextDouble的使用-----------------");
System.out.println("-------------------控制檯會一直讀取數據直到你輸入非數字的字符串爲止-----------------");
Scanner scan = new Scanner(System.in);
double sum = 0;
int m = 0;
while (scan.hasNextDouble()) {
double x = scan.nextDouble();
m = m + 1;
sum = sum + x;
}
System.out.println(m + "個數的和爲" + sum);
System.out.println(m + "個數的平均值是" + (sum / m));
scan.close();
}
}
#----------------------------------------------------------下面是Java面向對象-------------------------------------------------------------------------
super 與 this 關鍵字
注意區分多繼承 和多重繼承
下面這個是多重繼承(super 與 this 關鍵字):
class Animal { void eat() { System.out.println("animal : eat"); } } class Dog extends Animal { void eat() { System.out.println("dog : eat"); } void eatTest() { this.eat(); // this 調用自己的方法 super.eat(); // super 調用父類方法 } } public class Test { public static void main(String[] args) { Animal a = new Animal(); a.eat(); Dog d = new Dog(); d.eatTest(); } }
重寫與重載之間的區別
區別點 | 重載方法 | 重寫方法 |
---|---|---|
參數列表 | 必須修改 | 一定不能修改 |
返回類型 | 可以修改 | 一定不能修改 |
異常 | 可以修改 | 可以減少或刪除,一定不能拋出新的或者更廣的異常 |
訪問 | 可以修改 | 一定不能做更嚴格的限制(可以降低限制) |
接口與類相似點:
- 一個接口可以有多個方法。
- 接口文件保存在 .java 結尾的文件中,文件名使用接口名。
- 接口的字節碼文件保存在 .class 結尾的文件中。
- 接口相應的字節碼文件必須在與包名稱相匹配的目錄結構中。
接口與類的區別:
- 接口不能用於實例化對象。
- 接口沒有構造方法。
- 接口中所有的方法必須是抽象方法。
- 接口不能包含成員變量,除了 static 和 final 變量。
- 接口不是被類繼承了,而是要被類實現。
- 接口支持多繼承。
枚舉:
public class Test { enum Color { RED, GREEN, BLUE; } // 執行輸出結果 public static void main(String[] args) { Color c1 = Color.RED; System.out.println(c1); } }
上述教程來自[2]
Reference:
[2]Java 教程