『壹』 誰有比較全面的Java程序員面試題(附答案),請發到[email protected],謝謝
一、Java基礎知識
1.Java有那些基本數據類型,String是不是基本數據類型,他們有何區別。
答案: 8種基本類型
char byte short int long float double boolean
String和他們的區別你從首字母就能看出來了,String的首字母是大寫,因為它是一個類,String和8種基本類型的包裝類都屬於類基本數據類型(primitive)的引用和引用所指的對象都存儲在棧(stack)中,
而其他類型(object)的引用存儲在棧(stack)中,他所指的對象存儲在堆(heap)中。
2.字元串的操作:
寫一個方法,實現字元串的反轉,如:輸入abc,輸出cba
public static String reverseString(String str){
String result="";
for(int i=0;i<str.length();i++){
result=result+str.substring(str.length()-i-1,str.length()-i);
}
return result;
}
public static void main(String arg[]){
System.out.println(reverseString("abcdef"));
}
寫一個方法,實現字元串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
java 中這不需要自己寫方法
String s = "bbbwlirbbb";
s.replaceAll("wlirbbb","hhtccc");
3.數據類型之間的轉換
如何將數值型字元轉換為數字(Integer,Double)
String number="5";
int i=Integer.parseInt(number);或者
char c='9';
int i = c -'0'; 就是將變數c的字元的ASCII碼值與'0 '的ASCII碼值相減就可以得到數字了。因為'0'的ASCII碼值是48,'1'為49……'9'為57。相減就可以得到數值了。
//有小數點
double d = Double.parseDouble("123.0");
//無小數點
int i = Integer.parseInt("123");
//如果嫌麻煩,管它有沒有小數點,統統用第一種也可以
如何將數字轉換為字元
String aa = 1+"";
如何取小數點前兩位,並四捨五入。
public static void main(String[] args)
{
double a = 12.54;
int i = (int)a;
i = i % 100;
double b = a - i;
b = java.lang.Math.round(b);
System.out.print(b);
}
4.日期和時間
如何取得年月日,小時分秒
如何取得從1970年到現在的毫秒數
如何獲取某個日期是當月的最後一天
如何格式化日期
5.數組和集合
6.文件和目錄(I/O)操作
如何列出某個目錄下的所有文件
如何列出某個目錄下的所有子目錄
判斷一個文件或目錄是否存在
如何讀寫文件
7.Java多態的實現(繼承、重載、覆蓋)
8.編碼轉換,怎樣實現將GB2312編碼的字元串轉換為ISO-8859-1編碼的字元串。
9.Java中訪問資料庫的步驟,Statement和PreparedStatement之間的區別。
步驟:
1、 通過驅動器管理器獲取連接介面。
2、 獲得Statement或它的子類。
3、 限制Statement中的參數。
4、 執行Statement。
5、 查看返回的行數是否超出范圍。
6、 關閉Statement。
7、 處理其它的Statement
8、 關閉連接介面。
Statement是直接發SQL語句到資料庫
PreparedStatement是將你用過的SQL語句進行預編譯,如果下次你執行相同的SQL語句時,資料庫就會調用以前預編譯過的SQL語句。所以Statement速度沒 PreparedStatement快。
二、JSP&Servlet技術
1.描述JSP和Servlet的區別、共同點、各自應用的范圍
2.在Web開發中需要處理HTML標記時,應做什麼樣的處理,要篩選那些字元(< > & 「」)
3.在JSP中如何讀取客戶端的請求,如何訪問CGI變數,如何確定某個Jsp文件的真實路徑。
4.描述Cookie和Session的作用,區別和各自的應用范圍,Session工作原理。
5.列出Jsp中包含外部文件的方式,兩者有何區別。
6.說明Jsp中errorPage的作用,應用范圍。
7.介紹在Jsp中如何使用JavaBeans。
8.簡單介紹JSP的標記庫
9.Jsp和Servlet中的請求轉發分別如何實現。
三、J2EE相關知識
1.介紹J2EE、J2SE、J2SE的區別。
2.J2EE是一種技術還是一種平台,他提供了那些技術。
3.什麼是Application Server,它有什麼功能和優點。
4.簡單介紹連接池的優點和原理。
5.Web.xml的作用
四、其他
1.Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮)
2.簡單介紹您所了解的MVC。
3.簡單介紹所了解的XML。
4.文檔和編碼規范
5.Java中的分頁、效率考慮。
6.簡單介紹您所了解的structs。
________________________________________
1.xml在項目中的作用
2.s-EJB 與 e-EJB的區別
3.會話面的作用
4.cmp與bmp的優缺點
5.j2me程序的必需的幾個部分
6.c/s與b/s的區別
7.構建一個connect pool,然後再調用它,
8.j2ee平台與dotnet平台的區別
9.ejb的life cycle
10.session bean 和 entity bean的區別
11.ejb中的transaction機制
12.synchronized (生產者和消費)
13.String 和 StringBuffer
14.Serializable
15.MVC (Struts的工作流程)
16.什麼是MDA
17.tcp與udp的區別
18.鏈表與散列表和數組的區別
19.堆和棧的區別
20.ejb的分類及區別
21.你對現在軟體業以及國內軟體業的看法
22.談談java多線程
23.談談文件加密技術
24.軟體開發生命周期
25.路由協議種類及特點
26.java的awt和swing組件的GUI設計的關鍵
27.對於java流的認識
28.簡單描述一下awt與swing區別。
29.簡述java編程中事件處理模式。
30.你編寫過applet嗎?applet的安全許可權如何?試列舉java application或者applet中與servlet/jsp通信可以採用的方式。
31.簡述邏輯操作(如&,|)與條件操作(如&&,||)的區別。
32.簡述 Java Server Page 和 Servlet 的聯系和區別。
33.簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
34.EJB規范規定EJB中禁止的操作有哪些?
35.java除了8種基本類型外,在虛擬機里還有哪一種,有什麼作用?
36.除了使用new關鍵字創建對象意外,試列舉另外三種以上創建實例的方式?
37.classloader中,JDK的API、Classpath中的同web-inf中的class載入方式有什麼區別?
38.列舉三種以上垃圾回收演算法,並比較其優缺點?
39.編寫代碼實現一個線程池
40.描述一下JVM載入class文件的原理機制?
41.試舉例說明一個典型的垃圾回收演算法?
42.請用java寫二叉樹演算法,實現添加數據形成二叉樹功能,並以先序的方式列印出來.
43.請寫一個java程序實現線程連接池功能?
44.給定一個C語言函數,要求實現在java類中進行調用。
45.如何獲得數組的長度?
46.訪問修飾符「public/private/protected/預設的修飾符」的使用
47.用關鍵字final修飾一個類或者方法時,有何意義?
48.掌握類和對象的概念,掌握面向對象編程的本質
49.靜態變數和靜態方法的意義,如何引用一個類的靜態變數或者靜態方法?
50.JAVA語言如何進行異常處理,關鍵字:thorws,throw,try,catch,finally
51.Object類(或者其子類)的finalize()方法在什麼情況下被調用?
52.一個「.java」原文件中是否可以包括多個類(不是內部類)?
53.掌握內部類和介面的概念
54.StringTokenizer類的使用
55.數據結構,如何遍歷List中的元素?
如果要按照鍵值保存或者訪問數據,使用什麼數據結構?
要掌握Collection相關的介面和類的使用
56.使用StringBuffer類與String類進行字元串連接時有何區別?
57.調用Thread類的destroy()方法有什麼後果?
58.多線程,用什麼關鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用?
59.使用socket建立客戶端與伺服器的通信的過程
60.JAVA語言國際化應用,Locale類,Unicode
61.描述反射機制的作用
62.如何讀寫一個文件?
63.在圖形界面中,一個按鈕如何處理滑鼠點擊事件?
64.在圖形界面中,一個表格,如何實現編輯單元格時彈出下拉框?
65.如何載入圖片?
66.什麼是模態對話框?
67.闡述MVC的概念
68.GUI布局管理器的使用,FlowLayout,BorderLayout,GridBagLayout
69.如何構造一棵樹?選擇樹的一個節點時,如何得到這個節點?
70.向編輯框中輸入字元時,如何控制只輸入整數?
71.描述使用JDBC連接資料庫的過程
72.EJB分為幾類?什麼是BMP,CMP?
73.什麼是JNDI?
74.ADO是什麼?ActiveX數據對象,是一個應用級程序介面.
75.四種JDBC方式?目前的版本?
76.EJB有哪幾種?區別是什麼?
77.JavaBean與EJB有什麼區別?
78.軟體開發生命周期有哪幾個階段?
79.軟體開發有哪些因素?
80.軟體開發中如何進行版本控制?
81.UML中,類視圖如何表示類中的繼承與聚合?
82.客戶端游標與伺服器端游標的區別?
83.動態游標與靜態游標的區別?
84.dotnet由哪幾個基本框架組成?
85.Oracle中SGA是什麼?
86.web servers是什麼?
87.UNIX中QT是什麼意思?
88.在軟體開發生命周期中的哪個階段開始測試?
89.dotnet與J2EE的比較?
90.什麼是ActiveX?
91.Java中IDL是什麼?
92.ISO9000和CMM是什麼?IS09000和CMM(軟體能力成熟度模型)認證是國際上通用的軟體質量評估方法.CMM的五個成熟度等級。
________________________________________
第一,談談final, finally, finalize的區別。
final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實現。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上。具體可見http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象
第四,&和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
第五,HashMap和Hashtable的區別。
都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
第六,Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面。
『貳』 作為java程序員筆試或者面試oracle一般考些什麼
Java程序員應聘一般要經過筆試和面試。作為一個技術人員,特別是剛出道的,筆試的成績是比較重要。以下是我經過幾次筆試總結的一些經驗教訓。
一般來說,試題會分為三個部分,Java基礎、資料庫基礎和綜合題。
首先是Java基礎,這個很簡單,也就是考考你對Java語言本身的理解,包括語法,類庫的使用等。有選擇題,也會有寫代碼題。寫代碼的時候認真仔細就是了。基礎題答案一般都比較死,所以盡量不要錯。在這,出一道我遇到的題考考大家,Java編程:把American,Japan,China,France,Brazil按英文字母排序。說說思路就行了:)
其次是資料庫。准確的說,考的不是資料庫,而是SQL語句。一般題型是,給兩三個表,然後讓你根據需求寫SQL。最普通的就是學生表、選課表和成績表。要掌握的就是連接查詢,還有就是一些函數(建表、表操作等就不說了哈)。其實這些都相當簡單,但是往往被新手忽略。我就遭過,因為有半年沒寫過SQL了,連接查詢搞忘完了,有兩次筆試都空起,結果可想而知。這些是必備技術,千萬不能空起啊!
然後是綜合題。之所以說是綜合題,是因為包含的內容比較多,一般都是主觀題。這里,人家是想看看你對Java高級技術以及周邊技術的了解程度和運用能力,說白了,就是考概念和考應用題。這里說的Java高級技術,也就是J2EE架構中的技術,這些不會的話,人家是不得要你的。如果你會一些流行的技術框架,那就更好了。所謂Java周邊技術,包括HTTP,HTML,XML,UML,JavaScript,CSS等,要求一般不是很高,要了解,比如讓你用HTML寫個表單你要會。關於剛才提到的技術或者框架,希望要了解其工作的原理和機制,一般要考,比如讓你說說Struts的MVC。關於應用題,可能出一道網路應用來考。
以上就是我筆試的經驗,一般是這樣,不過我也遇到過變態的。一次筆試,就被徹底甩翻,C/C++、資料庫、Java技術、Shell編程、網路協議、Unix、軟體工程全部上了。
如果筆試做的好,那就成功大半了,不過不要輕視面試哦!
關於面試技巧,網上太多了,我就不多說。作為技術人員,雖說以技術為主,但溝通能力同樣重要,面試時要主動,表達要清楚,要微笑,要誠實,要穩重。
關於價錢,說實話,我們中國的程序員是世界上最好的程序員,我們拿最少的錢,干最多的活。剛出道的程序員,在成都,一般來說,試用不會超過2000,多半是1500左右,做好被資本家剝削的心理准備吧。
祝你旗開得勝!!!
『叄』 求:JAVA程序員面試題
哎 我應聘了N家公司 給你一些題好了
華為的
第一部分:選擇題
NO: 1
1、public class Test {
public static void changeStr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
Please write the output result :
QUESTION NO:2
1. public class Test {
2. static boolean foo(char c) {
3. System.out.print(c);
4. return true;
5. }
6. public static void main( String[] argv ) {
7. int i =0;
8. for ( foo('A'); foo('B')&&(i<2); foo('C')){
9. i++ ;
10. foo('D');
12. }
13. }
14. }
What is the result?
A. ABDCBDCB
B. ABCDABCD
C. Compilation fails.
D. An exception is thrown at runtime.
QUESTION NO: 3
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
QUESTION NO: 4
1. public class Outer{
2. public void someOuterMethod() {
3. // Line 3
4. }
5. public class Inner{}
6. public static void main( String[]argv ) {
7. Outer o = new Outer();
8. // Line 8
9. }
10. }
Which instantiates an instance of Inner?
A. new Inner(); // At line 3
B. new Inner(); // At line 8
C. new o.Inner(); // At line 8
D. new Outer.Inner(); // At line 8//new Outer().new Inner()
QUESTION NO: 5
Which method is used by a servlet to place its session ID in a URL that is written to the servlet』s response output stream?
A. The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C. The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.
QUESTION NO: 6
Which two are equivalent? (Choose two)
A. <%= YoshiBean.size%>
B. <%= YoshiBean.getSize()%>
C. <%= YoshiBean.getProperty("size")%>
D.
E.
F.
G.
QUESTION NO: 7
Which of the following statements regarding the lifecycle of a session bean are correct?
1. java.lang.IllegalStateException is thrown if SessionContext.getEJBObject() is invoked when a stateful session bean instance is passivated.
2. SessionContext.getRollbackOnly() does not throw an exception when a session bean with bean-managed transaction demarcation is activated.
3. An exception is not thrown when SessionContext.getUserTransaction() is called in the afterBegin method of a bean with container-managed transactions.
4. JNDI access to java:comp/env is permitted in all the SessionSynchronization methods of a stateful session bean with container-managed transaction demarcation.
5. Accessing resource managers in the SessionSynchronization.afterBegin method of a stateful session bean with bean-managed transaction does not throw an exception.
第二部分:概念題
1. 描述Struts體系結構?對應各個部分的開發工作主要包括哪些?
3. JSP有哪些內置對象和動作?它們的作用分別是什麼?
4、SQL問答題
SELECT * FROM TABLE
和
SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
的檢索結果為何不同?
5、SQL問答題
表結構:
1、 表名:g_cardapply
欄位(欄位名/類型/長度):
g_applyno varchar 8;//申請單號(關鍵字)
g_applydate bigint 8;//申請日期
g_state varchar 2;//申請狀態
2、 表名:g_cardapplydetail
欄位(欄位名/類型/長度):
g_applyno varchar 8;//申請單號(關鍵字)
g_name varchar 30;//申請人姓名
g_idcard varchar 18;//申請人身份證號
g_state varchar 2;//申請狀態
其中,兩個表的關聯欄位為申請單號。
題目:
1、 查詢身份證號碼為440401430103082的申請日期
2、 查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數
3、 將身份證號碼為440401430103082的記錄在兩個表中的申請狀態均改為07
4、 刪除g_cardapplydetail表中所有姓李的記錄
");
『肆』 java 程序員筆試中資料庫部分都考些什麼,哪位大哥能給提供一些題,謝謝了.............
select 考的較多
當然 內連接 外連接 相關子查詢..
給你一些參考題 只當參考
比如像在 oracle 的 scott 下的 表空間里求
部門平均薪水等級
哪些人是經理
不用組函數 求最高薪水
平均薪水最高的部門編號與名稱.....
萬變不離其宗
『伍』 關於JAVA考試試題(簡答題部分)
21:抽象方法是必須實現的方法。就象動物都要呼吸。但是魚用鰓呼吸,豬用肺呼吸。
動物類要有呼吸方法。怎麼呼吸就是子類的事了。
現在有很多討論和建議提倡用interface代替abstract類,兩者從理論上可以做一般性的混用,但是在實際應用中,他們還是有一定區別的。抽象類一般作為公共的父類為子類的擴展提供基礎,這里的擴展包括了屬性上和行為上的。而介面一般來說不考慮屬性,只考慮方法,使得子類可以自由的填補或者擴展介面所定義的方法,就像JAVA王子所說的事件中的適配器就是一個很好的應用。
用一個簡單的例子,比如說一個教師,我們把它作為一個抽象類,有自己的屬性,比如說年齡,教育程度,教師編號等等,而教師也是分很多種類的,我們就可以繼承教師類而擴展特有的種類屬性,而普遍屬性已經直接繼承了下來。
而介面呢~還是拿教師做例子,教師的行為很多,除了和普通人相同的以外,還有職業相關的行為,比如改考卷,講課等等,我們把這些行為定義成無body的方法,作為一個集合,它是一個interface。而教師張三李四的各自行為特點又有不同,那麼他們就可以擴展自己的行為body。從這點意義上來說,interface偏重於行為。
總之,在許多情況下,介面確實可以代替抽象類,如果你不需要刻意表達屬性上的繼承的話。
23:在Java 1.0中,圖形用戶介面(GUI)庫最初的設計目標是讓程序員構建一個通用的GUI,使其在所有平台上都能正常顯示。
但遺憾的是,這個目標並未達到。事實上,Java 1.0版的「抽象Windows工具包」(AWT)產生的是在各系統看來都同樣欠佳的圖形用戶介面。除此之外,它還限制我們只能使用四種字體,並且不能訪問操作系統中現有的高級GUI元素。同時,Jave1.0版的AWT編程模型也不是面向對象的,極不成熟。這類情況在Java1.1版的AWT事件模型中得到了很好的改進,例如:更加清晰、面向對象的編程、遵循Java Beans的範例,以及一個可輕松創建可視編程環境的編程組件模型。Java1.2為老的Java 1.0 AWT添加了Java基礎類(AWT),這是一個被稱為「Swing」的GUI的一部分。豐富的、易於使用和理解的Java Beans能經過拖放操作(像手工編程一樣的好),創建出能使程序員滿意的GUI。軟體業的「3次修訂版」規則看來對於程序設計語言也是成立的(一個產品除非經過第3次修訂,否則不會盡如人意)。
24:通過URLConnection對URL裡面所包含的資源進行利用。比如得到URL中的參數、得到一個cookie文件,製作蜘蛛爬蟲等等。具體要看他下面的方法。
25:A:小應用程序只能在與Java兼容的容器中運行,可以嵌入在HTML網頁內,在網路上發布,當網頁被瀏覽時,在瀏覽器中運行。小應用程序的運行還受到嚴格的安全限制,例如它不能訪問用戶計算機上的文件。Java應用程序沒有這些限制,也不支持網頁嵌入和下載運行。
B:小應用程序和應用程序在代碼編寫上也有很大的差異。一個小應用程序必須定義成一個Applet類的子類,應用程序可以是Applet類的子類,也可以不是。應用程序必須在一個類中定義一個main()方法,該方法代表應用程序的入口。而小應用程序不必定義main()方法,它的執行由Applet類中定義的多個方法控制。
22和26,直接在可視化窗口裡拖拽。代碼我在此就不寫了。
『陸』 接到了高偉達公司的筆試通知(初級java工程師),有誰有相關筆試題、面試經驗的,請談談,謝謝!!!
第一,談談final, finally, finalize的區別。
final 修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally 再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實現。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上。具體可見http: //www.frontfree.net/articles/services/view.asp?id=704&page=1
註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象
第四,&和&&的區別。
&是位運算符。&&是布爾邏輯運算符。
第五,HashMap和Hashtable的區別。
都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
第六,Collection 和 Collections的區別。
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
Collection是個java.util下的介面,它是各種集合結構的父介面。
第七,什麼時候用assert。
斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為 false,那麼系統會報告一個 AssertionError。它用於調試目的:
assert(a > 0); // throws an AssertionError if a <= 0
斷言可以有兩種形式:
assert Expression1 ;
assert Expression1 : Expression2 ;
Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式。這個值用於生成顯示更多調試信息的 String 消息。
斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:
javac -source 1.4 Test.java
要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。
要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。
要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。
可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的參數。不過,斷言不應該用於驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任何方式改變程序的狀態。
第八,GC是什麼? 為什麼要有GC? (基礎)。
GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
第九,String s = new String("xyz");創建了幾個String Object?
兩個對象,一個是「xyx」,一個是指向「xyx」的引用對象s。
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;
第十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
第十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類(concrete class)?
介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
第十三,啟動一個線程是用run()還是start()?
啟動一個線程是調用start()方法
JAVA程序員面試的經典十三問,他們就以聊天的形式問你 不要緊張 要有自信 要表現出自己對編程的喜歡,當然你要真喜歡這個行業 如果不喜歡編程 這是個很痛苦的事
一樓說的對啊 在筆試的時候有很多邏輯題目 很變態的邏輯題目 一般是數字 字母啊 最後還有選擇題 我還記得我當年的筆試就是那樣的
建議你去的時候吧 1^9 的二次方 三次方都記得很熟 還有26個字母 如果看不出來 就寫在紙上看
一道題上別花費太多的時間
總之好運吧 個人經驗 呵呵
『柒』 招java程序員的公司考題都是什麼
應屆畢業生應聘時一般只會考一些java的基礎知識,比如final,finally,finalize的區別了這一類無聊的問題。如果是用java做網站,那還會考一些jsp和javascript技術,比如Sevelet的生命周期啦之類的。
我有一些java面試題,比較全,但也比較多,都是些基礎知識,你要是需要就發封郵件給我,然後我發給你。
『捌』 本人跪求java題庫,sun公司認證程序員考試的題庫,有人有的話還望發過來
我有題庫,電子版全套的。我就是看那過的。可是我怎麼知道我給你發過去,你就能給我加分呢
『玖』 軟體公司,Java程序員筆試中資料庫部分都考什麼啊
Student學生表(學號,姓名,性別,年齡,組織部門)
Course課程表(編號,課程名稱)
Sc選課表(學號,課程編號,成績)
1)寫一個SQL語句,查詢選修了』計算機原理』的學生學號和姓名(3分鍾)
2)寫一個SQL語句,查詢』周星馳』同學選修了的課程名字(3分鍾)
3)寫一個SQL語句,查詢選修了5門課程的學生學號和姓名(9分鍾)
答:1)SQL語句如下:
selectstu.sno,stu.snamefromStudentstu
where(selectcount(*)fromscwheresno=stu.snoandcno=
(selectcnofromCoursewherecname='計算機原理'))!=0;
2)SQL語句如下:
selectcnamefromCourse
wherecnoin(selectcnofromscwheresno=
(='周星馳'));
3)SQL語句如下:
selectstu.sno,stu.snamefromstudentstu
where(selectcount(*)fromscwheresno=stu.sno)=5;
我面試的日本富士通,大概就這個難度吧
『拾』 誰能給我些最新的招聘JAVA程序員的面試題
Java基礎方面:
1、作用域public,private,protected,以及不寫時的區別
答:區別如下:
作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不寫時默認為friendly
2、ArrayList和Vector的區別,HashMap和Hashtable的區別
答:就ArrayList與Vector主要從二方面來說.
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
就HashMap與HashTable主要從三方面來說。
一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實現
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value
3、char型變數中能不能存貯一個中文漢字?為什麼?
答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char佔16個位元組,所以放一個中文是沒問題的
4、多線程有幾種實現方法,都是什麼?同步有幾種實現方法,都是什麼?
答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable介面
同步的實現方面有兩種,分別是synchronized,wait與notify
5、繼承時候類的執行順序問題,一般都是選擇題,問你將會列印出什麼?
答:父類:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結果:
C:>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
6、內部類的實現方式?
答:示例代碼如下:
package test;
public class OuterClass
{
private class InterClass
{
public InterClass()
{
System.out.println("InterClass Create");
}
}
public OuterClass()
{
InterClass ic = new InterClass();
System.out.println("OuterClass Create");
}
public static void main(String[] args)
{
OuterClass oc = new OuterClass();
}
}
輸出結果:
C:>java test/OuterClass
InterClass Create
OuterClass Create
再一個例題:
public class OuterClass {
private double d1 = 1.0;
//insert code here
}
You need to insert an inner class declaration at line 3. Which two inner class declarations are
valid?(Choose two.)
A. class InnerOne{
public static double methoda() {return d1;}
}
B. public class InnerOne{
static double methoda() {return d1;}
}
C. private class InnerOne{
double methoda() {return d1;}
}
D. static class InnerOne{
protected double methoda() {return d1;}
}
E. abstract class InnerOne{
public abstract double methoda();
}
說明如下:
一.靜態內部類可以有靜態成員,而非靜態內部類則不能有靜態成員。 故 A、B 錯
二.靜態內部類的非靜態成員可以訪問外部類的靜態變數,而不可訪問外部類的非靜態變數;return d1 出錯。
故 D 錯
三.非靜態內部類的非靜態成員可以訪問外部類的非靜態變數。 故 C 正確
四.答案為C、E
7、垃圾回收機制,如何優化程序?
希望大家補上,謝謝
8、float型float f=3.4是否正確?
答:不正確。精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4
9、介紹JAVA中的Collection FrameWork(包括如何寫自己的數據結構)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│└Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射
10、Java中異常處理機制,事件機制?
11、JAVA中的多形與繼承?
希望大家補上,謝謝
12、抽象類與介面?
答:抽象類與介面都用於抽象,但是抽象類(JAVA中)可以有自己的部分實現,而介面則完全是一個標識(同時有多重繼承的功能)。
13、Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀伺服器幾個字元,再寫入本地顯示?
15、編程:編寫一個截取字元串的函數,輸入為一個字元串和位元組數,輸出為按位元組截取的字元串。 但是要保證漢字不被截半個,如「我ABC」4,應該截為「我AB」,輸入「我ABC漢DEF」,6,應該輸出為「我ABC」而不是「我ABC+漢的半個」。
16、JAVA多線程編程。 用JAVA寫一個多線程程序,如寫四個線程,二個加1,二個對一個變數減一,輸出。
希望大家補上,謝謝
17、STRING與STRINGBUFFER的區別。
答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字元串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法
Jsp方面
1、jsp有哪些內置對象?作用分別是什麼?
答:JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
request 用戶端請求,此請求會包含來自GET/POST請求的參數
response 網頁傳回用戶端的回應
pageContext 網頁的屬性是在這里管理
session 與請求有關的會話期
application servlet 正在執行的內容
out 用來傳送回應的輸出
config servlet的構架部件
page JSP網頁本身
exception 針對錯誤網頁,未捕捉的例外
2、jsp有哪些動作?作用分別是什麼?
答:JSP共有以下6種基本動作
jsp:include:在頁面被請求的時候引入一個文件。
jsp:useBean:尋找或者實例化一個JavaBean。
jsp:setProperty:設置JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器類型為Java插件生成OBJECT或EMBED標記
3、JSP中動態INCLUDE與靜態INCLUDE的區別?
答:動態INCLUDE用jsp:include動作實現
<jsp:include page="included.jsp" flush="true" />它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數
靜態INCLUDE用include偽碼實現,定不會檢查所含文件的變化,適用於包含靜態頁面
<%@ include file="included.htm" %>
4、兩種跳轉方式分別是什麼?有什麼區別?
答:有兩種,分別為:
<jsp:include page="included.jsp" flush="true">
<jsp:forward page= "nextpage.jsp"/>
前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完後還會回來,相當於函數調用。並且可以帶參數.後者完全轉向新頁面,不會再回來。相當於go to 語句。
Servlet方面
1、說一說Servlet的生命周期?
答:servlet有良好的生存期的定義,包括載入和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet介面的init,service和destroy方法表達。
2、Servlet版本間(忘了問的是哪兩個版本了)的不同?
希望大家補上,謝謝
3、JAVA SERVLET API中forward() 與redirect()的區別?
答:前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向後的地址;後者則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉後的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,並且,這樣也有助於隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它伺服器上的資源,則必須使用sendRedirect()方法。
4、Servlet的基本架構
public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
}
Jdbc、Jdo方面
1、可能會讓你寫一段Jdbc連Oracle的程序,並實現數據查詢.
2、Class.forName的作用?為什麼要用?
答:調用該訪問返回一個以字元串指定類名的類的對象。
3、Jdo是什麼?
答:JDO是Java對象持久化的新的規范,為java data object的簡稱,也是一個用於存取某種數據倉庫中的對象的標准化API。JDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系資料庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關系資料庫、文件、XML以及對象資料庫(ODBMS)等等,使得應用可移植性更強。
4、在ORACLE大數據量下的分頁解決方法。一般用截取ID方法,還有是三層嵌套方法。
答:一種分頁方法
<%
int i=1;
int numPages=14;
String pages = request.getParameter("page") ;
int currentPage = 1;
currentPage=(pages==null)?(1):{Integer.parseInt(pages)}
sql = "select count(*) from tables";
ResultSet rs = DBLink.executeQuery(sql) ;
while(rs.next()) i = rs.getInt(1) ;
int intPageCount=1;
intPageCount=(i%numPages==0)?(i/numPages):(i/numPages+1);
int nextPage ;
int upPage;
nextPage = currentPage+1;
if (nextPage>=intPageCount) nextPage=intPageCount;
upPage = currentPage-1;
if (upPage<=1) upPage=1;
rs.close();
sql="select * from tables";
rs=DBLink.executeQuery(sql);
i=0;
while((i<numPages*(currentPage-1))&&rs.next()){i++;}
%>
//輸出內容
//輸出翻頁連接
合計:<%=currentPage%>/<%=intPageCount%><a href="List.jsp?page=1">第一頁</a><a
href="List.jsp?page=<%=upPage%>">上一頁</a>
<%
for(int j=1;j<=intPageCount;j++){
if(currentPage!=j){
%>
<a href="list.jsp?page=<%=j%>">[<%=j%>]</a>
<%
}else{
out.println(j);
}
}
%>
<a href="List.jsp?page=<%=nextPage%>">下一頁</a><a href="List.jsp?page=<%=intPageCount%>">最後頁
</a>
Xml方面
2、EJB與JAVA BEAN的區別?
答:Java Bean 是可復用的組件,對Java Bean並沒有嚴格的規范,理論上講,任何一個Java類都可以是一個Bean。但通常情況下,由於Java Bean是被容器所創建(如Tomcat)的,所以Java Bean應具有一個無參的構造器,另外,通常Java Bean還要實現Serializable介面用於實現Bean的持久性。Java Bean實際上相當於微軟COM模型中的本地進程內COM組件,它是不能被跨進程訪問的。Enterprise Java Bean 相當於DCOM,即分布式組件。它是基於Java的遠程方法調用(RMI)技術的,所以EJB可以被遠程訪問(跨進程、跨計算機)。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創建和管理。客戶通過容器來訪問真正的EJB組件。
3、EJB的基本架構
答:一個EJB包括三個部分:
Remote Interface 介面的代碼
package Beans;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
public interface Add extends EJBObject
{
//some method declare
}
Home Interface 介面的代碼
package Beans;
import java.rmi.RemoteException;
import jaax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface AddHome extends EJBHome
{
//some method declare
}
EJB類的代碼
package Beans;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javx.ejb.SessionContext;
public class AddBean Implements SessionBean
{
//some method declare
}
J2EE,MVC方面
1、MVC的各個部分都有那些技術來實現?如何實現?
答:MVC是Model-View-Controller的簡寫。"Model" 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現), "View" 是應用的表示面(由JSP頁面產生),"Controller" 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
2、應用伺服器與WEB SERVER的區別?
希望大家補上,謝謝
3、J2EE是什麼?
答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基於組件(component-base)的企業級應用模型(enterpriese application model).在這樣的一個應用系統中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,並且處於相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業信息系統(EIS)層。
4、WEB SERVICE名詞解釋。JSWDL開發包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。
答:Web Service描述語言WSDL
SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼信息的輕量級協議。
UDDI 的目的是為電子商務建立標准;UDDI是一套基於Web的、分布式的、為Web Service提供的、信息注冊中心的實現標准規范,同時也包含一組使企業能將自身提供的Web Service注冊,以使別的企業能夠發現的訪問協議的實現標准。
5、BS與CS的聯系與區別。
希望大家補上,謝謝
6、STRUTS的應用(如STRUTS架構)
答:Struts是採用Java Servlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework。 採用Struts能開發出基於MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:
一.包含一個controller servlet,能將用戶的請求發送到相應的Action對象。
二.JSP自由tag庫,並且在controller servlet中提供關聯支持,幫助開發員創建互動式表單應用。
三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。
設計模式方面
1、開發中都用到了那些設計模式?用在什麼場合?
答:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。主要用到了MVC的設計模式。用來開發JSP/Servlet或者J2EE的相關應用。簡單工廠模式等。
2、UML方面
答:標准建模語言UML。用例圖,靜態圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現圖,
JavaScript方面
1、如何校驗數字型?
var re=/^d{1,8}$|.d{1,2}$/;
var str=document.form1.all(i).value;
var r=str.match(re);
if (r==null)
{
sign=-4;
break;
}
else{
document.form1.all(i).value=parseFloat(str);
}
CORBA方面
1、CORBA是什麼?用途是什麼?
答:CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫為 OMG)標准化。它的組成是介面定義語言(IDL), 語言綁定(binding:也譯為聯編)和允許應用程序間互操作的協議。 其目的為:
用不同的程序設計語言書寫
在不同的進程中運行
為不同的操作系統開發
LINUX方面
1、LINUX下線程,GDI類的解釋。
答:LINUX實現的就是基於核心輕量級進程的"一對一"線程模型,一個線程實體對應一個核心輕量級進程,而線程之間的管理在核外函數庫中實現。
GDI類為圖像設備編程介面類庫。