1.Eclipse關聯jdk源代碼的方法
1).右鍵項目,依次選擇 構建路徑->配置構建路徑->Java構建路徑->庫->JRE系統庫->rt.jar->源代碼鏈接。編輯「源代碼鏈接」,設置「外部文件」的路徑爲JDK安裝路徑下的src.zip。如圖
2).String類的equals()方法及其實現方法,如圖
3).equals方法和==的區別
==用來比較地址,例如java
public static void main(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println("str1 == str2 --> " + (str1 == str2)); }
equals方法能夠直接比較內容,例如git
public static void main(String[] args) { String str1 = "hello"; String str2 = new String("hello"); System.out.println("str1 equals str2 --> " + (str1.equals(str2))); }
2.構造方法:就是他的名稱與類名同樣的方法
構造方法的重載:方法名同樣,但參數個數或參數類型不一樣
下面的程序是否能夠經過編譯?爲何?數組
public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(int intValue){ value = intValue; } }
不能編譯,沒有定義無參的構造函數,不能調用。改爲app
public class Test { public static void main(String args[]) { Foo obj = new Foo(); } } class Foo{ int value; public Foo(){ } public Foo(int intValue){ value = intValue; } }
3.運行下列程序,結果是什麼?查閱資料,分析爲何。函數
public class Test { public static void main(String args[]) { double a = 0.1; double b = 0.1; double c = 0.1; if((a + b + c) == 0.3){ System.out.println("等於0.3"); }else { System.out.println("不等於0.3"); } } }
結果爲不等於0.3,精度損失。修改以下性能
import java.math.BigDecimal; public class Test { public static void main(String args[]) { double a = 0.1; double b = 0.1; double c = 0.1; double n=MyMath.add(a, b); if(MyMath.add(n,c) == 0.3){ System.out.println("等於0.3"); }else { System.out.println("不等於0.3"); } } } class MyMath{ public static double add(double d1,double d2){ BigDecimal b1=new BigDecimal(d1); BigDecimal b2=new BigDecimal(d2); return b1.add(b2).doubleValue(); } }
4.運行下列程序,結果是什麼?分析緣由,應如何修改.學習
public class Test { public static void main(String[] args) { MyClass[] arr=new MyClass[3]; arr[1].value=100; } } class MyClass{ public int value=1; }
結果測試
緣由:數組越界了,沒有實例化。
修改以下.net
public class Test { public static void main(String[] args) { MyClass[] arr=new MyClass[3]; for(int i=0;i<3;i++){ arr[i]=new MyClass(); } arr[1].value=100; } } class MyClass{ public int value=1; }
5.在一個10000次的循環中,須要進行字符串的鏈接操做,那麼,應該使用String類仍是StringBuffer類,爲何?性能有差別嗎?可否寫出測試代碼證實你的結論。(可查閱資料)
用StringBuffer類
緣由:String類要一個一個的連接,而StringBuffer類能夠直接調用append()方法。
性能:StringBuffer類比String類效率高
例如設計
public class Test { public static void main(String[] args){ String str = "Hello"; String b=fun(str); System.out.println(b); } public static String fun(String s){ for(int i=0;i<10000;i++){ a=s+" World"; } return a; } } public class Test { public static void main(String[] args){ StringBuffer buf = new StringBuffer("Hello"); fun(buf); System.out.println(buf); } public static void fun(StringBuffer s){ for(int i=0;i<10000;i++){ s.append(" World"); } } }
1.評分系統
實驗問題分析:
問題1:數組越界了
實驗問題分析:
問題1:判斷是否以com|cn|net|gov|edu|org結尾用的是if嵌套
緣由:應該是或者關係
3.字符串統計
4.身份證識別
緣由:由於你的return值是在循環的if條件裏面,也就是if條件成立的時候返回了String
對象,可是若是if條件不成立的話,就沒有返回值了。
解決方案:加上return null;
代碼行數(新增/累積) | 學習時間(新增/累積) | 本週學習內容 | |
---|---|---|---|
目標 | 5000行 | 300小時 | |
第2-4周 | 100/100 | 20/20 | 學習了數組和方法 |
第5周 | 200/300 | 30/50 | 學習了String類和StringBuffer類 |
第6周 |