第一篇:Java求職寶典
Java求職寶典
我能夠取得今天的成就,與我從小就喜歡電腦是分不開的,回想起來,我不過是選擇了自己喜歡的事,愛做的事。
要么不做,要做就做得最好。
堅持,是每一個成功者的秘訣。
所謂的奇跡,不過是堅持的結果。--比爾·蓋茨
如何在學習和工作中培養編程興趣:在工作中建立高標準;要樹立遠大的夢想,同時要有合理的目標來實施;把別人不愿意做的時做好;要打好基礎,多實踐,多閱讀代碼;不要過于計較個人得失;要有韌性,經受住各種磨難;你到底是想要成功,還是一定要成功?
面試問題的準備:1.回答個人信息時應與簡歷上的信息一致;2.回答問題時多體現工作經驗;
3.正確看待名利與金錢;4.個人的計劃與目標
面試時的心理準備:1.充滿自信;2.做放松練習;3.放慢語速;3.主動與面試官進行親切的眼神交流;5.尋找面試官的缺點,提高心理優勢
面試中的著裝技巧:1.傳統、保守的職業裝;2.避免一身名牌;3.潔凈、平整如新;4.端莊的發型
面試過程中的利益技巧:1.遵時守信;2.如何敲開面試官的門;3.專業化的握手方式;4.語言交流技巧
增加校園現場招聘獲勝概率:有時間觀念,遵守秩序;提前準備好簡歷;保持良好的精神面貌;充滿自信,但不盲目。
第一天上班:1.注意衣著;2.保持好心態;3.想想辦法;4.做到優秀
最初幾周:多問問題;微笑面對每個人;除了日常的相處外,午飯也是非常重要的交流時間;工作中不要喧賓奪主;在社交過程中,難免會聽到一些流言蜚語;千萬不要跟任何人說自己
老板的壞話;剛剛到新公司,要養成早到公司的習慣;上班要早到,下班的時候不要早走;自己要有一份好心情
幾點忠告:1.態度決定高度;2.眼界決定境界;3.心態決定狀態(作為一名員工:歸零的心態;學習的心態;創新的心態;付出的心態);4.細節決定成敗
如何度過試用期:1.謙虛謹慎;2.融入工作氛圍;3.把握機會;4.愛崗敬業;5.工作專心致志(忽略不相關的雜務;量力而為;遠離是非人群);6.加倍努力;7.衣著得體
盡快進入公司的角色:1.學習公司文化;2.虛心加入團隊;3.注重第一印象;4.提出問題與建議;5.調整期望值,提高適應力
與老員工相處:1.面對嚴謹治學的員工;2.面對才華橫溢的員工;3.應對倚老賣老的員工;
4.應對牙尖嘴利的員工
保持激情,提高自己:1.加強學習;2.搞好人際關系;3.保持工作激情
升職加薪六大秘訣:1.掌握最新薪金行情;2.職責擴大理應加薪;3.強調自己新的技能;4.坦白說自己的優點;5.滿懷自信提出要求;6.明確是誰決定你的薪金
升職加薪六大禁忌:1.伴娘型;2.鴿子型;3.幕后型;4.仇視型;5.抱怨型;6.水牛型
你愿意做一個大池塘里的小魚,還是愿意做一個小池塘里的大魚?做一個小池塘里的大魚--那么池塘就是屬于我了,但是在沒有什么可讓我征服的一個大池塘里做一條小魚--這樣的話我就有很多成功的機會!--斯科特
人不能兩次走進同一條河流。--古希臘哲學家赫拉克利特
第二篇:java求職寶典習9
1)http session的原理是什么?
如果能夠回答上來,再問如果服務器是多臺機器,如何解決session的問題?
2)談談什么是繼承,封裝,多態和抽象。
3)Java中的基本數據類型是什么?列舉一下
4)String和StringBuffer有什么區別
5)運行時異常與一般異常有何異同?
6)http協議中post和get的區別
7)final, finally, finalize的區別。
8)HashMap取數據為什么快,描述一下hash算法。[基本清楚]
9)同步和異步有何異同,在什么情況下分別使用他們?舉例說明。
10)heap和stack有什么區別。[清楚]
11)forward 和redirect的區別
12)GC是什么? 為什么要有GC?工作原理。【清楚,回收算法,階段清楚,回收算法不清】
13)描述一下JVM加載class文件的原理機制?
14)Struts干什么的,說說如何配置,配置文件的結構,目錄等
15)Spring干什么的,說說如何配置,配置文件的結構,目錄等
16)Ibatis干什么的,說說如何配置,配置文件的結構,目錄等
17)了解FreeMarker么?如何使用,原理
18)了解Ajax么?說說如何做,如何使用Jquery
19)用過httpwatch/firebug/yslow么?
1、運算符優先級問題,下面代碼的結果是多少?(筆試)
package test;
public class Test {
public static void main(String[] args){
int k = 0;
int ret = ++k + k++ + ++k + k;
// ret的值為多少
System.err.println(ret);
}
}
2.運算符問題,下面代碼分別輸出什么?(筆試)
package test;
public class Test {
public static void main(String[] args){
int i1 = 10, i2 = 10;
os忙,System.err.println(“i1 + i2 = ” + i1 + i2);
System.err.println(“i1 – i2 = ” + i1 – i2);
System.err.println(“i1 * i2 = ” + i1 * i2);
System.err.println(“i1 / i2 = ” + i1 / i2);
}
}
3.下面代碼的結果是什么?還是拋出異常?(筆試)
package test;
public class Test {
public void myMethod(String str){
System.err.println(“string”);
}
public void myMethod(Object obj){
System.err.println(“object”);
}
public static void main(String[] args){
Test t = new Test();
t.myMethod(null);
}
}
4.假設今天是9月8日,下面代碼輸出什么?(筆試)
package test;
import java.util.Date;
public class Test {
public static void main(String[] args){
Date date = new Date();
System.err.println(date.getMonth()+ ” ” + date.getDate());}
}
5.下面代碼的輸出結果是什么?
package test;
public class Test {
public static void main(String[] args){
double val = 11.5;
System.err.println(Math.round(val));
System.err.println(Math.floor(val));
System.err.println(Math.ceil(val));
}
}
6.編程輸出一個目錄下的所有目錄及文件名稱,目錄之間用tab。(筆試)package test;
import java.io.File;
public class Test {
public static void main(String[] args){
new Test().read(“D:/test”, “”);
}
public void read(String path, String tab){
File file = new File(path);
File[] childFiles = file.listFiles();
for(int i = 0;childFiles!= null && i < childFiles.length;i++){ System.err.println(tab + childFiles.getName());
if(childFiles.isDirectory()){
read(childFiles.getPath(), tab + “t”);
}
}
}
}
不要覺得很簡單,最起碼你要記得返回當前文件夾下的所有文件的方法是listFiles(),isDirectory別拼錯了。
7、從鍵盤讀入10個整數,然后從大到小輸出。(筆試)
package test;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
// 注意這里的數組,不是int的Integer[] arr = new Integer[10];
for(int i = 0;i < 10;i++){
arr = in.nextInt();
}
Arrays.sort(arr, new Comparator
@Override
public int compare(Integer o1, Integer o2){
if(o1 > o2)return-1;
if(o1 < o2)return 1;
return 0;
}
});
System.err.println(Arrays.toString(arr));
}
}
自己手寫排序算法的可以無視此題,如果是Arrays.sort()的,請注意Comparator與Comparable接口的區別,別搞混了。
8、下面代碼的結果是什么?
package test;
public class Test extends Base {
public static void main(String[] args){
Base b = new Test();
b.method();
Test t = new Test();
t.method();
}
@Override
public void method(){
System.err.println(“test”);
}
}
class Base {
public void method()throws InterruptedException {
System.err.println(“base”);
}
}
9、以下代碼的結果是什么?
package test;
public class Test extends Base {
public static void main(String[] args){
new Test().method();
}
public void method(){
System.err.println(super.getClass().getName());
System.err.println(this.getClass().getSuperclass().getName());}
}
class Base {
}
10、true or false?
package test;
public class Test {
public static void main(String[] args){
String str1 = new String(“abc”);
String str2 = new String(“abc”);
System.err.println(str1.equals(str2));
StringBuffer sb1 = new StringBuffer(“abc”);
StringBuffer sb2 = new StringBuffer(“abc”);
System.err.println(sb1.equals(sb2));
}
}
第三篇:java求職寶典習題6[最終版]
1.Java語言特點是什么?
Java語言具有如下特性:簡單性、面向對象、分布式、解釋型、可靠、安全、平臺無關、可移植、高性能、多線程、動態性等。
2.什么叫Java虛擬機?什么叫Java平臺?Java虛擬機與Java平臺的關系如何? Java虛擬機(Java Virtual Machine)簡稱JVM。Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。
3.Java程序是由什么組成的?一個程序中必須有public類嗎?Java源文件的命名規則是怎樣的?
一個Java源程序是由若干個類組成。一個Java程序不一定需要有public類:如果源文件中有多個類時,則只能有一個類是public類;如果源文件中只有一個類,則不將該類寫成public也將默認它為主類。源文件命名時要求源文件主名應與主類(即用public修飾的類)的類名相同,擴展名為.java。如果沒有定義public類,則可以任何一個類名為主文件名,當然這是不主張的,因為它將無法進行被繼承使用。另外,對Applet小應用程序來說,其主類必須為public,否則雖然在一些編譯編譯平臺下可以通過(在BlueJ下無法通過)但運行時無法顯示結果。
4.開發與運行Java程序需要經過哪些主要步驟和過程?
(1)下載、安裝J2SDK;
(2)設置運行環境參數:JAVA_HOME、PATH、CLASSPATH;
(3)使用文本編輯器編寫原代碼如HelloWorld.java;
(4)運行命令“javac HelloWorld.java” 編譯HelloWorld.java為HelloWorld.class;
(5)運行“java HelloWorld”生成HelloWorld.exe。
5.怎樣區分應用程序和小應用程序?應用程序的主類和小應用程序的主類必須用public修飾嗎?
Java Application是完整的程序,需要獨立的解釋器來解釋運行;而Java Applet則是嵌在HTML編寫的Web頁面中的非獨立運行程序,由Web瀏覽器內部包含的Java解釋器來解釋運行。
兩者的主要區別是:任何一個Java Application應用程序必須有且只有一個main方法,它是整個程序的入口方法;任何一個Applet小應用程序要求程序中有且必須有一個類是系統類Applet的子類,即該類頭部分以extends Applet結尾。應用程序的主類當源文件中只有一個類時不必用public修飾,但當有多于一個類時則主類必須用public修飾。小應用程序的主類在任何時候都需要用public來修飾。
6.安裝JDK之后如何設置JDK系統的PATH,CLASSPATH?他們的作用是什么?
(1)PATH環境變量。設置環境變量path是因為window xp是多用戶操作系統,支持不同用戶的個性化系統定制,這里設置的信息只影響當前用戶,而不會影響其他用戶。假如只有一個用戶,只是運行.class文件,則也不需要設置path環境,因為JDK安裝之后會把java.exe等幾個關鍵文件復制到c:windowssystem32目錄中,而此目錄已經存在于path變量,所以說用戶變量path隨不同用戶而設置的,設置路徑:“D:jdk1.5bin ”。PATH環境變量作用是指定命令搜索路徑,在命令行下面執行命令如javac編譯java程序時,它會到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現有的PATH變量中,bin目錄中包含經常要用到的可執行文件如
javac/java/javadoc等待,設置好PATH變量后,就可以在任何目錄下執行javac/java等工具了。
(2)CLASSPATH環境變量。作用是指定類搜索路徑,要使用已經編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPTH來尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。設置classpath環境變量是為了運行一些特殊的java程序,如以.jar為后綴的文件或者是javac運行java程序,假如不運行這類程序,也就不必要設置classpath環境變量了,設置方法是:(安裝jdk是的目錄為:d:jdk1.5)那么就在“變量值”文本框中鍵入:
“.;D:jdk1.libdt.jar;D:jdk1.5libtools.jar ”;
第四篇:求職寶典
1“成就你的往往不是你所計劃的”。不記得在哪個面經里看到的一句話,當時就很有感觸。這個人也是夢想去PG,但后來去了強生,留下這句感言。跟我的經歷蠻相似的,也許我的經歷更坎坷。從大三開始,我就夢想去PG,一直在準備,一直在努力,直到夢想破滅。完全沒想到自己最終會從事醫療行業。很有意思的是,在強生秋季招聘中,我投的全是強生中國的職位。而且在筆試就被掛掉了。可以說,我是受害于金融危機,亦受益于金融危機。因為,如果沒有金融危機,強生醫療可能不會春招,我也不會誤打誤撞進入這個行業。而且現在在我看來,醫療器械行業可能在某種程度上優于快消行業。謹慎選擇,選擇后就不動搖。有的同學可能會早早的拿到OFFER,要還是不要?自己一定要想清楚。因為有的時候拿得早不一定是好事,你可能會錯過后面的很多機會。你可能說,拿到了再繼續投唄。但真正到那時,你會發現,你的心態不一樣了,你沒有那么大緊迫感了,沒有那么大的動力了。我也有看到某些同學,拿到很好的OFFER了還在到處投到處面,尤其在這樣的形式下,為什么不留點機會給別人呢?就我自己的經歷來看,放棄也未必是件壞事。試想,如果我接受了廣州移動的OFFER,我的夢想可能永遠都無法實現了。地點flexible一點,贏率會大很多。如果你很想很想進某家企業,不妨地點服從分配,你贏的機會可能更大。武漢生源,如果你想去北京、上海這樣的城市,機會往往很少,因為當地的生源就已經很多了。坦白說,我終面PG感覺還不錯,最后與之無緣,事后我分析了一下,可能跟自己地點的選擇有關。當時面試官問我理想的工作地點是哪?我卻在那傻笑,說自己是武漢人。當然就被人家認為是非武漢不去了。
4Be yourself, be confident, be different.很多人問面經,其實面經并不是那么那么的重要。你只要搞清楚一點,面試就是要解決兩個問題“Why me, why you”。公司會問,“為什么選擇我,為什么我要選擇你”,把這兩個問題準備好了,基本上就沒什么問題了。“企業為什么選擇你”考查得最多。你要用很多例子去告訴他,“你是合適的人選”。大家可以對照企業的職位要求去準備。在這里推薦給大家PG八大題。先把你的經歷梳理一遍,不要說你沒有什么經歷,仔細想,一定有。再用STAR原則去準備這八道題,基本上可以應付任何企業的面試。我個人認為,至少我參加過的企業面試難度都不高于PG。
最后強調,在面試的過程當中,不需要去偽裝自己,表現出一個真實的自己就夠了,自信一些,讓自己與別人區別開來(尤其在群面中)。我在面試中是走親民路線的,我從來不表現太強勢,無論何時,我的臉上都會掛著微笑。這也是平時中的我。如果你真的比較aggressive,也不需要再去偽裝自己了,因為有些公司,有些崗位需要這樣個性的人。比如,我在實習時還面了廣東移動的另一家分公司,直接就被BS了。這也是意料之中的,因為我根本就跟面試官不是同一類型的人。注意,面試官往往在找與他們相似的人。說到自信,不緊張,建議大家在面試前喝足水,做一做深呼吸。誰都會有點緊張,包括我自己,但我會保持臉部最飽滿的笑容。在進入房間的瞬間,我會全心投入,忘掉緊張。注意細節,提高效率。“簡歷怎么做,網申怎么填”容易過,本文不做介紹,因為應屆生里已經說透了,說爛了。在這里,我只想提醒大家,如果有些細節你注意到了,可以大大提高網申的效率。你知道網申就是個體力活兒,搞不好一早上你只能申請一家公司。下面給出了我的一些具體做法,拋磚引玉,其核心思想就是“文檔化,統一管理,隨用隨取”。
1)用Excel做了一個《求職日志》,記錄下自己投遞簡歷的企業相關信息,包括企業名稱、網址、崗位、投遞狀態等等。這么做可以進行系統的管理,否則簡歷投多了,你自己都搞不清楚已經投了哪些公司,而哪些還沒投。
2)提前掃描自己的證書和成績單原件,有的企業要上傳附件。一般有大小限制,所以還需要調整文件大小。
3)做一份證書清單,包括:證書名稱、頒發部門、頒發時間、備注(例如證書編號)等信息,因為網申經常涉及這些內容。雖然中華英才網一般都可以從標準簡歷導入,但不同的企業可能所要求的信息又有所不同。
4)系統地管理簡歷。
(1)制作不同版本的簡歷,例如我們營銷專業,可能投遞的崗位有“銷售型”、“研究型”。前者要側重社會實踐活動,表現出溝通能力;而后者要側重項目經驗,表現出學術能力。
(2)簡歷命名也很有講究,可以幫助你提高效率。如:公司中文全稱-XXX-應聘崗位20090430
5)網申時使用“智能填表”。有時網申過程中,網絡斷掉,而如果你沒有保存的話,大半天的辛苦就白費了。所以建議大家使用傲游的“智能填表”,可以保存填表的數據。具體使用方法:工具-智能填表-保存當前表單。此外,也建議大家網申完后,在預覽模式下,把整個網投簡歷粘貼到word中,然后以企業分別命名。特別是不在中華英才網上網申的企業(例如有企業自己的網站)。因為有的網申問題相似,可以直接ctrl+v過來。由word統一管理,很容易就能找到,而不需要到各大企業網站上找了。
6)開放性問題的積累。從你第一天寫開放問題后,就把它粘在word中,以“開放性問題”或“Open question”命名。此后每次填開放性問題,都記得放在一起。這種積累很重要。因為有些問題可以相互變通,你不需要為每一個問題準備一個答案。而聰明的辦法是,找到以前做的一個相似問題的解答,然后針對本題進行微調。這樣可以大大節省時間。6 有用的資源:
大家注意,我這里列出的資源都是經過自己精心挑選的,絕對的精品中的精品。不建議大家看很多很多的面經,關鍵在于動手去做——動手去回顧自己的經歷,動手去寫簡歷,模擬面試,或者前期找幾個面試練練手。
1)關于職業生涯規劃:
職業生涯步步高:一位資深經理人的職業生涯感悟
(非常好,對你的擇業會有很大幫助。不要別人投什么你也跟著投,想清楚自己到底要什么,想過怎樣的生活。)前HP大中華區總裁孫振耀在從HP退休15天后的九大職場感言
STAR法則的簡歷應用
3)群面:
香港大學何偉幟老師的校內網BLOG
(個人覺得,是所看群面面經之中的佳作,強烈推薦!)
4)綜合:
一個HR人給應屆生的面試建議
5)其他:
聽一位面試官這樣說
說明:如果鏈接不成功,可直接在百度中搜標題
感謝
謹以此文獻給我的父母、GG、以及所有關心和支持我的朋友們~感謝我的父母,你們信任我,無論何時都支持我的選擇,給了女兒很大的自由;感謝GG在這個過程中對我的鼓勵和支持。沒有你,我可能早已放棄和絕望。是你不斷地鼓勵我,幫我調整心態,讓我更客觀地去思考,更理智地去面對得失;還有很多支持和幫助過我的朋友們,包括但不僅限于:梅子、雅莎、小汪、孔姐姐、麗瑞、小南、周迪、王東師兄、呂瑛師姐、阿孟、梁虹、鄭瑞、正奇。。當然還有與我一起并肩作戰的婷婷、小強、旭峰、熹熹、小康、超超。。
感謝廣州移動,感謝你選擇了我,在求職戰前,給我注入了無比的信心。二個月的實習生活非常精彩。最重要的是,我收獲了一幫朋友,藍海鯊魚、倩倩、夢妮、秦鵬、洪程亮、奕林。。感謝裘總、阿孟、郭明、紀哥、成宇姐。。就像我在郵件中寫的那樣,“感謝公司對我的培養,以及貼心地照顧~尤其感謝人力資源部每一位同事的辛勤付出,想念你們,想念08廣州驕陽~”
感謝PG,感謝你放棄了我,因為在這個坎坷的求職道路中,我才能學會和收獲更多。我學會了——如何去選擇?關鍵在于自己想要什么。如何不受外界輿論影響?堅定信念,自我調節。如何不后悔?承擔后果。如何看待機會?看得長遠。。
感謝強生醫療,感謝你選擇了我,讓我重拾新的希望~對于未來,我很期待,雖然我知道工作會很辛苦,但想到是自己真正想要的,就值得為之而努力!
最后,推薦給大家兩首歌,在自己悲傷、難過、無助的時候常聽的歌——《我要的世界》、《I can only imagine》。不論發生什么,樂觀以對,不拋棄不放棄,愿每個人的理想都能實現!
Vivien的求職面經系列文章
接下來,我會陸續整理自己的面經,主要包括以下企業:廣州移動、強生醫療、PG、美孚、TNT、雀巢、招總、中國信保。我的面經大部分是面完當天回憶的,因此會涉及比較多細節,希望對大家更有幫助。
廣州移動(實習):
中國信用保險公司:http://bbs.yingjiesheng.com/viewthread.php?tid=180911&page=1&extra=
懷揣著一顆感恩的心,我寫下了自己的求職面經系列文章(一篇求職經歷總結+8家公司面經)。到今天已經全部發布。這個整理工作相當艱巨,但只要對大家有一點點的啟發,我都會很開心。尤其是回帖當中的很多朋友寫給我的鼓勵,讓我十分感動;還有一些朋友與我有著類似經歷,但現在仍然還在堅持。想對你們說:加油,相信自己,會有好結果!
第五篇:Java程序員面試寶典
第3章
Java語法基礎
基礎類型和語法
1、變量及其作用范圍
Java變量可以分為:靜態變量、成員變量和局部變量3種。
靜態變量:在類中用static修飾的變量,它的生存周期是由類來決定的。
成員變量:在類中沒有用static修飾的變量,它的生存周期由對象來決定。
局部變量:定義在方法里的變量、方法的參數或代碼塊里定義的變量,它們的作用范圍用大括號{}來界定。
2、Java的變量分哪兩種大的數據類型
Java的變量分為基本數據類型和引用數據類型。它們最大的區別在于,引用數據類型存 放的是數據所在的地址,而基本數據類型則是直接存放數據的值。
其他知識點:引用數據類型的變量存的值是一個內存地址。對象一般是通過new語句創
建出來的,它保存在堆空間中,可以被多個引用類型的變量所引用。當引 用a修改了對象的數據以后,其他的引用也是可以看到這些改變的。
3、Java包含哪些基本數據類型及其包裝類
Java一共有8種基本數據類型,分別是byte、short、int、long、float、double、boolean、char;存儲的數據量比較小,用二進制保存。其饈類分別是:Byte、Short、Integer、Float、Double、Boolean、Character。
Eg.Integer itg=new Integer.valueOf(100);
Itg.intValue();
4、如何理解Java中的裝箱和拆箱
從Java 5.0開始,有一種自動裝箱和拆箱的功能,就可以不必顯式的進行類型轉換,系統會自動的按照需要進行數據類型的轉換。
Java中的裝箱和拆箱指的是基本數據類型和包裝類型的自動相互的轉換。
裝箱:基本數據類型——>包裝類型 拆箱:包裝類型——>基本數據類型
5、Java中equal和==的區別是什么
“==”運用在基本數據類型的時候,通過比較它們實際的值來判定是否相同;而用于比較引用類型的時候,則是比較兩個引用的地址是否相等,也就是是否指向同一個對象。
Equal方法是java.lang.Object的方法,也就是所有的Java類都會有的方法。它可以被程序員覆蓋重寫,通過自定義的方式來判定兩個對象是否相等。對于字符串java.lang.String類來說,它的equal方法用來比較字符串的字符序列是否相等。
6、Java中的注釋有哪些
行注釋://
塊注釋:/* */,這種注釋不會出現在HTML文檔中。
文檔注釋:/** /,它的注釋信息可以進入到javadoc文檔中。注釋文檔將用來生成HTML 格式的代碼API報告,還可以用@開頭的關鍵字進行注釋,以達到說明方法參數、返回 值、異常等各種詳細信息。
Annotation:它會進入到編譯層,并對程序結果產生影響。它最變通的作用就是用來替代 XML提供一些配置信息,例如,JPA、Spring等框架的配置信息就可以通過Annotation 來提供。
7、Java的引用和C++的指針有什么區別
Java的引用和C++的指針本質上,它們兩者都是想通過一個叫做引用或者指針的東西,找到要操作的目標,方便在程序中操作。所不同的是Java的辦法更安全、方便,但失去了C++的靈活,也算是對指針的一種包裝和改進。
主要區別是:
對象和類型
1、類和對象有什么區別
類是一種抽象,而對象是類的實現。
Java的類通過class關鍵字進行定義,它代表了一種抽象的集合。在它的里面可以定義各種屬性和方法,它們代表了每個類實例的特定的數據和動作。Java虛擬機對類只加載一次,對它的靜態成員也只加載一次。
對象,指的是某一個特定抽象的實例,它屬于某一種類型,也就是對象是通過類來創建的。它必須從屬于某一個類,通過new關鍵字進行創建,它代表一個特定類型的實例,對象可以被多次創建。
2、Java中如何使用繼承來重用代碼
Java采用的是單繼承制,使用extends關鍵字。通過繼承之后,子類就擁有了父類除開私有成員以外的所有成員,從而達到代碼重用的目的。在繼承過程中,可以通過方法的覆蓋來實現多態,讓子類擁用自己獨特的方法實現方式。
方法的覆蓋(或重寫)和重載是兩個不同的概念。重載是創建一個方法名相同,但參數列表不同的方法;而方法覆蓋則是子類對父類方法的覆蓋和重寫,定義一個名字、參數、返回值一樣的方法即可。
3、簡述Java中的多態
多態是建立在繼承的基礎之上的。
“多態”的本質是,發送消息給某個對象,讓該對象自行決定響應何種行為。通過將子類對象引用賦值給超類對象引用變量來實現動態方法調用。
4、Java中靜態成員的特點
類的靜態成員是通過static關鍵字修飾的成員,主要包括:靜態成員變量、靜態方法和靜態代碼塊,它們具有以下一些特點:
1、在類加載的時候,就進行創建和初始化或執行代碼。
2、它們對于一個類來說,都只有一份。
3、類的所有實例都可以訪問到它們。
靜態代碼塊先執行。
5、Java派生類中的構造方法如何為父類傳遞參數
在Java中,使用super()的形式來為父類的構造方法提供參數,通過參數的數目和類型來決定調用哪一個構造方法。如果調用的是父類的默認的無參數構造方法,則可以不必顯式地使用super()。super()的使用必須放在子類構造方法的第一行,否則編譯時會有語法錯誤。
6、接口和抽象類的區別
包含抽象(abstract)方法的類,就是抽象類。抽象類不能夠實例化。Abstract class 接口所有的方法都是抽象的,它可以包含靜態的變量,這些變量的值不能修改。interface 抽象類是一種功能不全的類,接口只是一個抽象方法聲明和靜態不能被修改的數據的集合,兩者都不能被實例化。從某種意義上說,接口是一種特殊形式的抽象類,在Java語言中,抽象類表示一種繼承關系,一個類吸能繼承一個抽象類,而一個類卻可以實現多個接口。
Class A extends B implements C,D { }
7、簡述一下內部類的實質
包和訪問控制
1、包應該如何被創建及使用
包是Java程序中關于命名空間的一種手段,它可以有效的解決類重名的問題。當需要把一個類定義在某個包下的時候,需要使用package關鍵字進行定義;當需要使用其他包下的類的時候,則需要使用import關鍵字進行導入。
2、說明private、protected、public、default(friendly)的區別
第4章
數據類型及類型轉換
整型數據
1、int 和Integer有什么區別
所有的整型字面量默認為int 型。
裝箱:創建Integer對象:Integer a=new Integer(20);Integer b=Integer.valueOf(30);拆箱:int c=a.intValue();
2、Java中的八制字面量采用0開頭,十六進制采用0x開頭。
3、Int型數據采用4個字節進行存儲,一共是32位。第一位用于表示正負號,這的取值范圍是:-2^31~(2^31-1)。
Long型數據采用8個字節進行存儲,一共是64位。第一位用于表示正負號,這的取值范圍是:-2^63~(2^63-1)。
實型(浮點型)數據
1、float 和double的取值范圍各是多少
Float型定義的數據末尾必須有“f”或“F”,為了和double區別。而double末尾可以有“d”或“D”,也可以不寫。Java的浮點型數默認為double型。
2、如何用BigDecimal類進行精確運算
布爾型數據
1、Java可以用非0來代表true嗎?
Java不能用非0代表true,也不能用0代表 false,只能用布爾型的true和false來進行條件判斷。
2、boolean和它的包裝類的區別在哪里
Boolean變量一般初始化為false。
字符型數據
1、char的取值范圍
Java中的char采用Unicode編碼格式,用兩個字節來表示一個字符,一共16位(bit),它所能表示的范圍是:0~2^16。
2、char能否存儲漢字
char是可以存儲漢字的,每個中文字符都有對應的Unicode編碼。對于英文字母,它們所處的范圍是0~127之間,與ASCII碼相同,這是因為Unicode兼容ASCII碼。
3、如何使用轉義字符
在Java中,使用反斜線“”來代表轉義,它與緊跟在它后面的字符一起組成了轉義字符,從而達到轉義的目的。
String型數據
1、字符串字面量是否自動生成一個String對象
肯定會自動生成。字符串類具有一定的特殊性,JVM在執行雙引號操作符的時候,會自動的創建一個String對象,并返回這個對象的引用。
2、字符串對象池的作用是什么?
Java虛擬機在啟動的時候會實例化9個對象池,這9個對象池分別且來存儲8種基本類型的包裝類對象和String對象,主要是為了效率問題。
對象池的存在是為了避免頻繁的創建和銷毀對象而影響系統性能。當JVM在運行用雙引號引起來的一個字符串的代碼時,會到String的對象池中去檢查是否有一個字符序列相同的對象。如果有,就取現成的對象,如果沒有,則在對象池中創建一個對象,并返回。
3、StringBuffer和StringBuilder存在的作用是什么?
Java的字符串String對象,有一個特性:不變性,它只能被創建,不能改變其中的值。
在Java程序中,如果有大量拼接字符串的需要的話,應該使用StringBuffer和StringBuilder類,它們可以避免不必要的String對象的產生,以提高程序的性能。它們的作用類似,只不過StringBuilder線程是安全的。
StringBuffer sb=new StringBuffer();
Sb.append(a);//用append方法追加字符串
4、如何輸出反轉過后的字符串
實現字符串的反轉一般來說有兩種手段,第一是利用字符串存儲字符數據的原理,取出它的char數組,進行重新排列并保存;第二則是生成StringBuffer對象,直接使用StringBuffer的reverse()方法。