Java筆記(一)
將 java 源文件編譯為 class 字節碼文件
javac HelloWorld.java java HelloWorld //運行
簡單例子(模板)
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
變量命名:
允許字母、下划線、數字(不允許寫在開頭)、美元符號$構成。
保留字:
常量前綴為 final。
Java修飾符:
- 訪問控制修飾符 : default, public , protected, private
- 非訪問控制修飾符 : final, abstract, static, synchronized
數據類型轉換:
基本數據類型:byte,short,long,int,double,float,boolean,char 沒有String,String是一個對象
失精度用強制轉換,不失精度自動轉換。
整型、實型(常量)、字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算。
自動轉換:
轉換從低級到高級。
低 --------------------------------> 高 byte,short,char—>int—>long—>float—>double
邏輯運算符:
用T/F表示 True 和 False
a | b | !a | a&b | a|b | a^b | a&&b | a||b |
T | T | F | T | T | F | T | T |
T | F | F | F | T | T | F | F |
F | T | T | F | T | T | F | F |
F | F | T | F | F | F | F | F |
輸入與輸出:
輸入方式(import java.util.Scanner):
Scanner sc = new Scanner(System.in); System.out.println("請輸入一個整數:"); int i = sc.nextInt(); System.out.println("請輸入一個浮點數:"); double j = sc.nextDouble(); System.out.println("請輸入一個字符串:"); String s = sc.next(); String s = sc.nextLine(); //按行讀入 sc.close();
主要的兩種輸出方式:
int j; System.out.println("該數字為"+j); //println實現輸出到控制台,各項數據間用‘+’連接 int k; System.out.printf("該數字為%d",j); //占位符輸出,關於占位符的對應使用,后面放一個表格吧
主要占位符(想知道更多的可以去搜,寫題基本上這四個夠了):
占位符 | 數據類型 |
%s | string |
%d | int |
%f | double,float |
%c | char |
關於占位符的使用其實有很多,像我經常用到的還有一個取小數的功能,有興趣的可以去學一學。
這里要和C++中的 printf 做個區分,C++中 double 要用 %lf ,而Java的double和float一樣使用%f。其余的我就不多講了,畢竟我關於C++中的 printf 和 scanf 也只是平時用用而已。
窗口的數據讀入與顯示(import java.swing.JOptionPane)
String r_str= JOptionPane.showInputDialog("請輸入圓的半徑:"); r= Double.parseDouble(r_str); //窗口讀入的都默認為string型 JOptionPane.showMessageDialog(parentComponent,message); //parentComponent一般情況使用null,message為你要輸出的信息,方式類似於System.out.println System.exit(0); //記得要有這句話
偽隨機數的使用(import java.util.Random):
double rand1 = Math.random(); //[0,1.0) int rand2 = (int)(Math.random()*2); //{0,1} int rand3 = 1+(int)(Math.random()*10); //1-10的整數
創建數組:
dataType[] array = new dataType[Size]; dataType[] array = {value0, value1, ..., valuek}; //二維數組: type[][] typeName = new type[Length1][Length2]; //length2可為空
區別於C++中可以使用 int c[10] ; 這樣的句子,Java中需要使用 new 賦予存儲空間。
數組的拷貝:
System.arraycopy(Object src, srcPos,Object dest,destPos,int length); //從數組src的第srcPos項開始的length個項目拷貝到目標數組,從destPos的length個位置
數組的排序(import java.util.Arrays):
Arrays.sort(a); //a是一個數組
字符串常用方法:
s1.length(); //返回s1的長度 s1.indexof(s2,i); //在s1內從第i位開始查找s2,返回找到的首地址,若找不到返回-1 s1.contains("7"); //判斷s1內是否包含某個字符函數 if(s1.equals(String s2))System.out.println("yes"); //將此字符串與字符串比較 if(s1.equalsIgnoreCase(String s2))System.out.println("yes"); //將此 String 與另一個 String 比較,不考慮大小寫
parseInt() 方法:
int x =Integer.parseInt("9"); double c = Double.parseDouble("5");
split():
- split() 方法根據匹配給定的正則表達式來拆分字符串
- 注意: . 、 $、 | 和 * 等轉義字符,必須得加 \\
- 注意:多個分隔符,可以用 | 作為連字符
- 語法
public String[] split(String regex) //regex為正則表達式分隔符。
- 返回值:字符串數組。
StringBuffer:一種可以修改的字符串
public class RunoobTest{ public static void main(String args[]){ Scanner sc=new Scanner(System.in); String a = sc.next(); StringBuffer str = new StringBuffer(a); //復制a創建StringBuffer int i=0; str.deleteCharAt(i); //i為下表,返回字符 str.append("Runoob.."); //將指定的字符串追加到此字符序列 str.insert(2, "Java"); //將字符串插入此序列中,使J下標為2 str.delete(5,8); //移除此序列的子字符串中的字符。[5,8) str.reverse(); // 將此字符序列用其反轉形式取代 String a = str.toString(); //返回字符串表示形式 sc.close(); } }
隨便做做,感覺一篇比較長了就開下一篇
制作:BDT20040