第一天
-
eclipse使用中文語(yǔ)言包及設(shè)置中文api提示 可提高開(kāi)發(fā)效率 參考鏈接:
- 設(shè)置Eclipse里面的api提示為中文:https://jingyan.baidu.com/article/c275f6bacb4425e33d7567b6.html
Alt+/ 呼出代碼輔助(輸入main + Alt+/ 可快速創(chuàng)建main方法)
comand+. 呼出首選項(xiàng)窗口
-
java控制臺(tái)輸入
System.out.print("請(qǐng)輸入"); Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); System.out.println("輸入的值為:"+ line + "\t長(zhǎng)度為"+ line.length());
- nextLine() 獲取輸入的一行文本周叮;
- nextLong()獲取輸入的整數(shù)
第二天
-
重定向輸出流 以日志文件存儲(chǔ)輸出內(nèi)容
//導(dǎo)入庫(kù) import java.io.FileNotFoundException; import java.io.PrintStream; public class RedirectOutputStream { public static void main(String[] args) { // TODO 自動(dòng)生成的方法存根 try { //保存原輸出流 PrintStream out = System.out; //創(chuàng)建文件輸出流 項(xiàng)目目錄下 PrintStream ps = new PrintStream("./log.txt"); //設(shè)置使用新的輸出流 System.setOut(ps); int age = 18; System.out.println("定義年齡變量 初始值為18"); String sex = "女"; System.out.println("定義性別變狼 初始值為女"); //整合兩個(gè)變量 String info = "這是個(gè)" + sex + "孩子,年齡為" + age + "歲艰争。"; System.out.println("整合兩個(gè)變量為info字符串 值為:"+ info); //恢復(fù)原有輸出流 System.setOut(out); System.out.println("程序運(yùn)行完畢改鲫,請(qǐng)查看日志文件"); } catch (FileNotFoundException error){ error.printStackTrace(); } } }
異或運(yùn)算臂容、位運(yùn)算
-
異或加密/解密 此處用err錯(cuò)誤輸出流,是利用控制臺(tái)以紅色顯示的特性
Scanner scan = new Scanner(System.in); System.out.println("輸入要加密的字符串"); //獲取用戶輸入 String password = scan.nextLine(); //獲取字符數(shù)組 char[] array = password.toCharArray(); //對(duì)數(shù)組中每個(gè)元素進(jìn)行 對(duì)20000的異或(^)運(yùn)算 for (int i = 0; i < array.length; i++) { array[i] = (char)(array[i]^20000); } System.out.println("加密結(jié)果如下:"); System.err.println(new String(array)); System.out.println("解密結(jié)果如下:"); //對(duì)數(shù)組中每個(gè)元素進(jìn)行 對(duì)20000的異或(^)運(yùn)算 for (int i = 0; i < array.length; i++) { array[i] = (char)(array[i]^20000); } System.err.println(new String(array));
-
使用異或運(yùn)算可以使兩個(gè)變量哩治,不通過(guò)第3個(gè)變量交換值猿规。例:
long a = 10; long b = 12; a = a^b; b = b^a; a = a^b;
-
位移運(yùn)算芬萍,一個(gè)整數(shù)每次執(zhí)行位移運(yùn)算:
- 左移n位==整數(shù)*2的n次方; number<<1
- 右移n位== 整數(shù)除以2的n次方; number>>1
3搔啊、 浮點(diǎn)型進(jìn)行運(yùn)算會(huì)有誤差 需要使用BigDecimal類進(jìn)行精確運(yùn)算 且構(gòu)造時(shí)必須為數(shù)字字符串柬祠,如果為數(shù)字 也會(huì)造成不精確。方法聲明如下
public BigDecimal add(BigDecimal augend) 加法
public BigDecimal subtract(BigDecimal subtrahend) 減法
public BigDecimal multiply(BigDecimal multiplicand) 乘法
public BigDecimal divide(BigDecimal divisor) 除法 如果結(jié)果為無(wú)限循環(huán)小數(shù)時(shí) 會(huì)報(bào)錯(cuò)
-
public BigDecimal divide(BigDecimal divisor, Int scale, roundingMode) 除法:結(jié)果為無(wú)限小數(shù) ,scale 保留小數(shù)后幾位 , roundingMode 舍入模式 一般為BigDecimal.ROUND_HALF_UP(四舍五入)
double money = 2; double price = 1.1; double result = money - price; System.err.println("非精確計(jì)算double類型2-1.1結(jié)果:" + result); //精確浮點(diǎn)數(shù)的解決辦法 BigDecimal money1 = new BigDecimal("2"); BigDecimal price1 = new BigDecimal("1.1"); //加法 BigDecimal result1 = money1.subtract(price1); //減法 BigDecimal result2 = money1.add(price1); //乘法 BigDecimal result3 = money1.multiply(price1); //除法 此處需要注意 除法可能出現(xiàn)無(wú)限小數(shù)問(wèn)題 需要定義保留小數(shù)后幾位(此處保留2位小數(shù)) 舍入模式(四舍五入) BigDecimal result4 = money1.divide(price1, 2, BigDecimal.ROUND_HALF_UP); System.err.println("精確計(jì)算double類型2和1.1 加減乘除結(jié)果為:" + result1 + "," + result2 + "," + result3 + "," + result4);
4负芋、 字符串比較不能使用== 用 str.equals(str2)
5瓶盛、str.hashCode() 獲取字符串的哈希碼整數(shù)值
6、 for :
-
foreach:
//創(chuàng)建集合 List<String> list = new ArrayList<String>(); list.add("1111"); list.add("22"); list.add("333"); System.out.print("foreach遍歷集合:\n\t"); for (String string : list) { System.out.print(string); } System.out.println(); //創(chuàng)建數(shù)組 String[] strs = new String[list.size()]; list.toArray(strs); System.out.print("foreach遍歷數(shù)組:\n\t"); for (String string:list) { System.out.print(string+ "\t"); }
-
終止雙重for循環(huán)
No1: for(int i=0;i<10;i++) { System.out.println(); for (int j=0;j<10;j++){ System.out.print(i+" "+j+ "\t"); if (i==5 && j==5) { System.out.print("\n終止雙層循環(huán)"); break No1; } } }
字符串
-
去除左右空格字符示罗,注意不會(huì)去除字符串中間的空格
數(shù)組與集合
- 獲取輸入框