聲明一個變量後必須對變量進行顯式的初始化; 各類數據類型,運算符,表達式的使用; 枚舉是初步瞭解及使用; 字符串String類
java
Q1.使用Eclipse關聯jdk源代碼(截圖),並查看String對象的源代碼?簡單分析String對象的設計思路。
緩存
String對象不變,兩種方式,一種是直接='string';,一種是=new String("string"); 前種方式將字符串放在棧裏,後一種經過new關鍵字,java會把new對象放在堆中,在運行時建立。
函數
Q2.爲何要儘可能頻繁的對字符串的修改操做應該是用StringBuilder而不是String?學習
String的每次使用都要從新創建一個新的對象,因此運行慢,爲提升效率咱們選擇SringBuilder。
ui
Q3.比較兩個字符串的值是否相等?爲何不能用==直接進行比較?spa
當字符串開闢一個新的空間來存儲相同的內容,用==不能判斷內容是否相同,要用equals來判斷。 ==比較引用地址時,若是是一個對象,則能夠;比較引用內容時,若是是兩個對象,即便內容相同,則不能夠。
命令行
Q4.嘗試使用字符串池的概念解釋以下程序段輸出結果,並回答這段代碼建立了幾個字符串對象:
String str1 =「hi「, str2=「hi「;
String str3 = new String(str1)
System.out.println(str1==str2);翻譯
創建了2個字符串對象,str1與str2爲同一個字符串池的「hi」,因此輸出true。
設計
Q5.Integer i = 100;//100是基本類型,i是引用類型,爲何能夠將100賦值給icode
Java在編譯Integer i = 100的時候,會將其翻譯成Integer i=Integer.valueOf(100),即將100值賦給i,即涉及到自動拆箱與自動裝箱。
Q6.嘗試分析下面代碼輸出結果
Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
true,false。 對於-128到127之間的數,會進行緩存,Integer i5 = 127時,會將127進行緩存,下次再寫Integer i6 = 127時,就會直接從緩存中取,就不會new了。Integer i1 = 128由於對象不同,因此爲false。因此結果爲true,false。
Q7.package與javac、 java、 -classpath、 -d
在 com.ibm包中編寫 StringUtil類,內有一方法
public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}
在edu.jmu包中編寫Main類,其中掉了com.ibm.StringUtil的foo1方法
7.1 嘗試用命令行進行編譯並運行,截圖
7.2 將生成的StringUtil.class放到d:\lib正確的目錄結構下,將Main.class在d:\test正確的目錄結構,嘗試在命令行下運行,並截圖。
7.3 Eclipse中源代碼放在哪一個目錄、class文件放在哪一個目錄。在Eclipse項目中按一下ctrl+f11就能夠直接運行Main,嘗試分析背後實現的原理。
源代碼放在src中,class文件放在bin中
Q8.本身在這門課的目標與計劃
請描述一下你的技術基礎(會什麼語言,都寫了多少行代碼)
一週準備花多少時間在這門課上?一週準備寫多少行代碼?採用怎樣的學習方式?遇到困難打算怎樣解決?
關於這門課的smart目標.
目前僅僅學會基礎C語言,並剛開始學習JAVA。代碼行數沒記過,最多的是C語言課設幾人一塊兒寫的兩百多行。 一週課餘時間的百分之六七十都講花在Java身上,目前準備好好解決課堂及做業問題,以後選擇多看多寫的方法,遇到困難不會的必定要問清楚,找會的同窗,找老師。 Smart目標,寫個全文字對話系列選擇小遊戲。
JAVA中的函數很是多,可用於不少解決方法,遇到不少基本而且很難用繁瑣代碼解決的問題,必定要上網尋找是否有相關函數能夠直接調用。 在決定數據類型後,必定要統一須要本數據地方的數據類型 再次提醒本身,class用Main
沒作...