Java程式員筆試面試之String4,java程式員string4
如何刪除String中重複的字元good?
思想一:蠻力法,進行雙重迴圈,此演算法的複雜度為O(n^2),n是指字串的長度
public class RemoveSameChar { public static String removeDuplicate(String s){ char[] c=s.toCharArray(); for(int i=0;i<c.length;i++){ if(c[i]=='\0'){ continue; } for(int j=i+1;j<c.length;j++){ if(c[i]=='\0'){ continue; } if(c[i]==c[j]){ c[j]='\0'; } } } int n=0; for(int i=0;i<c.length;i++){ if(c[i]!='\0'){ c[n++]=c[i]; } } return new String(c, 0, n); } public static void main(String args[]){ String s="good"; s = removeDuplicate(s); System.out.println(s); String s1="aabbcc"; s1=removeDuplicate(s1); System.out.println(s1); }}
結果:godabc
java程式員筆試面試都考什呀?
1)物件導向的基礎知識
2)java寫一段程式,通常是排序或者計算後輸出的
3)關於web開發的基礎知識,比如什麼是jsp,servlet與jsp的區別,session與cookie的區別
4)對常用的開源架構的瞭解,如struts,spring,hibernate,ibatis等
java程式員面試題
java異常機制的原理與應用
答:每當程式出現異常之後,如果程式沒有進行相應的處理,則程式會出現中斷現象。
實際上,產生了異常之後,JVM會拋出一個異常類的執行個體化對象,如果此時使用了try語句捕獲的話,則可以進行異常的處理,否則,交給JVM進行處理。當try語句捕獲異常之後,將與catch語句的異常類型進行匹配,如果匹配成功則執行catch內的語句。簡單的應用:在所以throws語句的地方加入try-catch。標準應用程式:try-catch-finally-throw-throws一起使用。
2. 記憶體回收機制的優點
答:釋放無用的對象所佔用的空間。方式:自動回收,手動回收。使用System.gc(),實際上調用Runtime.getRuntime().gc()
3. Error與Exception區別
答:Error是jvm進行處理,是jvm出錯
exception是可以由程式處理的,可以用try-catch捕獲的
4. final,finally,finallize
答:final定義的變數的值不能改變,定義的方法不能被覆蓋,定義的類不能被繼承
finally是異常的統一出口,finallize是記憶體回收前的收尾工作,是Object類定義的
5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允許繼承和實現,因為匿名內部類就是在抽象類別和介面的基礎上發展起來的
6. Static Nested Class 與Inner Class的區別
答:使用Static定義的Class就是外部類,可以通過外部類. 內部類直接存取
而Inner Class是不能被外部存取的,只能通過外部類的執行個體再找到內部類執行個體。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)採用非同步處理方式,效能較高,是非安全執行緒的 3)允許null
HashTable:1)released in jdk 1.0 ,old Class 2)採用同步處理方式,效能低,是安全執行緒的3)不允許null
8. assert代表什嗎?
答:asserts是jdk 1.4之後發布的新關鍵字,表示斷言,即程式執行到某個地方肯定是預計的值,一般開發很少使用。要使用assert,必須加上 -ea參數
9. gc是什嗎?
答:gc是garbage collection,記憶體回收,使用gc可以進行垃圾空間的釋放
10. String s = new String("xyz")產生了幾個對象?
答:一個匿名對象xyz,在棧空間內。一個new執行個體化的對象,在堆空間內。
11. sleep() and wait()?
答:sleep()是Thread類定義方法,表示線程的休眠,可以自動喚醒
wait()方法是Object類定義的方法,需要手動notify()和notifyAll()//sleep()不釋放資源,wait()釋放資源
12. java中存在goto,但不能使用
13.數組有沒有length(),String有沒有length()?
答:數組有length屬性,String有length()
14. Overload與Override的區別
答:Overload:重載
|- 在一個類中定義的若干方法
|- 所有的方法名相同,但參數類型或個數不同
|- 只有參數有關,與傳回型別無關
Overrid......餘下全文>>