久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Java編程語言面試題

時間:2019-05-14 19:05:03下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《Java編程語言面試題》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Java編程語言面試題》。

第一篇:Java編程語言面試題

西安英泰移動通信學院S2級Java編程語言測試題 1

Java編程語言面試題

一、簡答題

1、簡述用Java編程語言編寫、編譯、解釋和執行過程。

2、簡述在Java JDK中,java.exe程序的作用。

3、簡述Java編程語言中的數組和C編程語言中定義數組有什么區別。

4、簡述類與對象的關系。對象的方法和類的方法是否為一回事?

5、JVM在解析代碼Person p1=new Person()和new Person()時有什么區別?

6、簡述this關鍵字的四中用途。

7、簡述構造函數的作用。

8、分別簡述static和final關鍵字的意義。

9、簡述抽象類和接口的區別,并闡明抽象類和接口的用途。

10、簡述多態的概念和意義。

11、簡述異常和錯誤的區別。

12、簡述如何創建和啟動一個線程的兩種方法

13、簡述棧內存和堆內存分別用來做什么。

14、簡述throw關鍵字在程序中拋出的是什么。

15、在一個類的public static void method()中,能夠直接使用該類什么類型的成員。

二、計算題

1、在類Runner中定義一個方法move(),要求這個方法的參數是一個實現了接口Runnable的匿名內部類的對象,該接口中的方法中的內容自己可以決定。

2、類Outer中與方法屬性平行定義的內部類為Inner{ public void doStuff(){}},寫出在另一個類TestInner的public static void main(String s)中調用方法doStuff()的代碼。

3、類Book{ public void insert(String id)throws Exception{…}}中的方法被類TestBook中public void testInser()方法調用,寫出該方法中的主要代碼。

4、兩個頂級包test1和test2,需要將它們壓縮成一個文件myjava.jar,再用WinRaR打開時,會在瀏覽器上看到下列層次;

◎META-INF

◎test1

◎test2

注:◎為文件夾

請寫出操作過程,并寫出運行的命令行程序(提示:用jar.......).5、同一個線程類ThreadTest中定義了:

public synchronized void sale(){...}

synchronized(str){...}

寫出能使這兩個類成員保持同步的改進代碼。

6、解釋類class Q{

private String name=“李四”;

private String sex=“女”;

boolean bFull=false;

public synchronized void put(String name,String sex){

if(bFull)

try{

wait();

this.name=name;

}catch(InterruptedException e){}

try{

Thread.sleep(10);

}catch(Exception e){

System.out.println(e.getMessage());

}

this.sex=sex;

bFull=true;

notify();

}

public synchronized void get()

{

if(!bFull)

try{

wait();

}catch(InterruptedException e){}

System.out.println(name + “----” + sex);

bFull=false;

notify();

}

}

中wait()、notify()、sleep()諸方法的作用。

7、在類class TestInteger{

public static void main(String[] args){

int w =。。。。。。。。。。。。。。。。。。。。// 將args[0]轉換int型的方法

int h =。。。。。。。。。。。。。。。。。。。。//將args[1]轉換int型的另一種方法//int h = Integer.valueOf(args[1]).intValue();//第三種方法

for(int i=0;i

StringBuffer sb=new StringBuffer();

for(int j=0;j

sb.append('*');

}

System.out.println(sb.toString());

}

}

}

中,args[0]的值為:“1234”,args[1]的值為:“5678”,請上面代碼塊中的……………處填寫代碼。

8、下面類

import java.util.*;

public class TestVector{

public static void main(String [] args){

int b=0;

Vector v=new Vector();System.out.println(“Please Enter Number:”);

while(true){

try{

b= System.in.read();//……….} catch(Exception e){

System.out.println(e.getMessage());

}

if(b=='r' || b== 'n')

break;

else{

int num=b-'0';

v.addElement(new Integer(num));//………..}

}

int sum=0;

Enumeration e=v.elements();//…………………

while(e.hasMoreElements()){

Integer intObj=(Integer)e.nextElement();//………………..sum += intObj.intValue();

}

System.out.println(sum);

}

}

中,請在諸單行注釋//。。。。中解釋其左邊一行代碼的意義。

9、下面類

import java.io.*;

public class DataStreamTest{

public static void main(String[] args){

try{

FileOutputStream fos=new FileOutputStream(“c:hello.txt”);//…….BufferedOutputStream bos= new BufferedOutputStream(fos);//……

DataOutputStream dos= new DataOutputStream(bos);//……..dos.writeUTF(“ab中國”);//………

dos.writeBytes(“ab中國”);

dos.writeChars(“ab中國”);

dos.close();//…………

FileInputStream fis=new FileInputStream(“hello.txt”);//…….BufferedInputStream bis=new BufferedInputStream(fis);//…….DataInputStream dis=new DataInputStream(bis);//…….System.out.println(dis.readUTF());

dis.close();

}catch(Exception e){

System.out.println(e.getMessage());

}

}

}

中,請在諸單行注釋//。。。。中解釋其左邊一行代碼的意義。

10、已知接口:interface PCI {

voidstart();

voidstop();

}

要求:寫兩個類:NetWorkCard,SoundCard分別實現上面接口的方法(內容自編),并寫第三個類MainBoard,該類中的方法install(PCI p)應用NetWorkCard,SoundCard兩個類對象的方法。根據上面的要求,填寫下面的代碼:

class Assembler

{

public static void main(String []args)

{

//在下面寫代碼….}

}

class NetWorkCard ….{

}

class SoundCard…………{

}

class MainBoard…………………………………..{

install(PCI p){

}

}

第二篇:Java編程語言基礎總結

第一章初識Java 1.程序是為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合。

2.Java包括編程語言和相關的技術。

3.Java主要用于開發,桌面應用程序和Internet應用程序。4.開發一個Java應用程序的基本步驟:編寫源程序,編譯程序和運行程序。源程序以.java為擴展名,編譯后生成的文件以.class為擴展名。使用javac命令可以編譯.java文件,使用java命令可以運行編譯后生成的.class文件。

5.編寫Java程序要符合Java編碼規范,為程序編寫注釋可大大增加程序的閱讀性。

6.MyEcplise是一個功能強大的集成開發環境(IDE)。它的各種窗口便于Java程序的開發,調試和管理。

第二章變量、數據類型和運算符

1.變量是一個數據存儲空間的表示,它是存儲數據的基本單元。變量的命名規則:

(1)必須以字母,“_”,“$”開頭。(2)可以包括數字,但不能以數字開頭(3)不能包括除“_”,“$”以外的特殊符號(4)不能使用Java語言關鍵字或者保留字(goto)

2.Java中數據類型分為基本數據類型和引用數據類型,基本數據類型有整型(int),雙精度浮點型(double),字符型(char)和字符串(String)。3.變量要先聲明并賦值,才能使用。4.Java提供各種類型的運算符,具體如下。

(1)賦值運算(=)(2)算術運算符(+,-,*,/,%)(3)關系運算符(>,>=,<,<=,==,!=)(4)條件運算符(條件?表達式1:表達式2)(5)邏輯運算符(&& , || ,!, & , |)&&(短路與)與&的區別:&&進行判斷時,當第一個條件為假,則不需要判斷第二個條件,結果為假。&進行判斷時,即使第一個條件為假時,也需要判斷完第二個條件才能給出結果為假。||(短路或)與|的區別:與上同理(5)位運算符(&, | , << , >> , >>>)5.數據類型轉換是為了方便不同類型的數據之間進行運算

6.數據類型轉換包括了自動類型轉換和強制類型轉換,自動類型轉換需要滿足類型兼容且目標類型大于源類型的條件

7.Java中使用boolean類型表示真假,boolean類型的兩個值為true和false。

8.Java中的關系運算符可以用于來比較大小,高低,多少等,比較厚的結果是boolean類型。

9.Java提供Scanner類,可以實現從控制臺獲取鍵盤上輸入的信息

第三章選擇結構(一)Java中的if選擇結構,包括以下形式

(1)基本的if選擇結構:可以處理單一或組合條件的情況(2)if-else選擇結構:可以處理簡單的條件分支情況(3)多重if選擇結構:可以處理連續區間的條件分支情況(4)嵌套if選擇結構:可以處理復雜的條件分支情況

第四章選擇結構(二)1.switch選擇結構適用于進行等值判斷

2.switch關鍵字后面小括號里表達式的值可以是int , short , byte , char , 枚舉 , String(JDK1.7開始支持)

第五章循環結構(一)1.循環結構由循環結構和循環操作構成,只要滿足循環條件,循環操作就會反復執行

2.使用循環結構解決問題問題的步驟:分析循環條件和循環操作,套用循環結構的語法寫出代碼,檢查循環能否退出

3.while循環結構是先判斷后執行,do-while是先執行,后判斷。Do-while至少執行一次。

4.debug調試:設置斷點,單步運行,觀察變量

第六章循環結構(二)1.for循環結構的語法結構如下

for(表達式1:表達式2:表達式3){

} //循環體

表達式1:循環結構的初始部分,為循環變量賦初值 表達式2:循環結構的循環條件

表達式3:循環條件的迭代部分,通常用來修改循環變量的值 2.用break和continue語句控制流程

(1)break語句用于終止某個循環,程序跳轉到循環體外的下一條語句。Break也可以在switch語句中使用

(2)continue語句用于跳出本次循環,進入下一次循環

(3)return可以結束當前方法的執行并退出,返回調用該方法的語句處

第七章數組

1.數組是可以在內存中連續存儲多個元素的結構,數組中的所有元素必須屬于相同的數據類型

2.數組中的元素通過數組的下標進行訪問,數組的下標從0開始 3數組可用一個循環為元素賦值,或用一個循環輸出數組中的元素信息

4.通過數組名.length可獲得數組長度

5.利用Arrays.提供的sort()方法可以方便的對數組中的元素進行排序 6.二維數組實際上就是一個一維數組,他的每個元素又是一個一維數組。

第八章循環結構進階

1.數組的輸入排序,選擇排序,冒泡排序

2.在二重循環中可以使用break、continue語句控制程序的執行 選擇排序:

思路:每次循環得到最小值的下標,然后交換數據。如果交換的位置等于原來的位置,則不交換。插入排序:

思路:將數據插入到已排序的數組中。

第三篇:關于Java不適做主要編程教學語言

關于Java不適做主要編程教學語言.txt38當烏云布滿天空時,悲觀的人看到的是“黑云壓城城欲摧”,樂觀的人看到的是“甲光向日金鱗開”。無論處在什么厄運中,只要保持樂觀的心態,總能找到這樣奇特的草莓。最近有一篇文章,說兩位退休的美國大學教授上書反對將Java作為編程教學語言,對此我表示高度認同。對于Java,我并不反感,而且相信它在工業應用中的地位不可取代,但是,我一直反對將Java作為主要的編程教學語言,因為教學語言承擔著與生產語言不同的任務,它必須能夠幫助學生奠定堅實的技術基礎,塑造核心技術能力。在這方面,Java不能夠勝任。

1990年代中期以前,美國的計算機編程入門教育以Pascal為主。我的一位美國程序員朋友至今還懷念他與Pascal為伴的高中年代。到了1990年代中后期,由于ANSI C語言“糾正”了早期C語言的一些不適合編程教學的問題,因此成為很多美國高中和大學編程入門課的教學語言。1998年,美國指導編程教學的一個協會推薦將C++作為入門教學語言,在當時引起很大的反響,認為是編程教育方面的一個重要進步。但遺憾的是,C++非常復雜,而當時C++語言的教育體系又非常不成熟,因此很多地方的教學方法不得當,把學生迅速拖入無邊無際的語言細節當中,引起了學生痛苦的抱怨。大約經過兩三年不成功的實踐之后,在本世紀初,美國計算機教育界普遍接受Java作為編程入門語言。此后在很短的時間里,Java迅速成為美國高中和大學里的首選編程教學語言,老師教得輕松,學生學得甜蜜,所以這個局面一直持續到現在。

而在中國,BASIC語言及其變體一直到1990年代中期都還是“算法語言”課程的主要教學內容,充分折射出當時中國計算機教學與工業應用之間的脫節。只是到了1990年代后期,C語言才確立了在中國工科計算機編程入門教育中的主流地位。到現在為止,大部分工科學生都“必修”“C程序設計語言”這門課程。不過事實上,根據我的了解,這門課程的總體教學質量相當糟糕,大部分學生可以說是滿懷希望而來,兩手空空而去。在這種情況下,中國高校計算機編程入門教育已經開始悄悄向Java過渡了。據我所知,有一些名校已經開始將Java設為編程入門課程,并且認為這是與國際接軌進步標志。

在我的朋友圈子里,大多數真正的一線開發者和技術領導者,對于將Java作為入門教學語言的“發展方向”都持質疑態度。他們中很多人目前主要的工作都集中在Java上,因此這種態度并非來自所謂語言宗教情緒,而是來自他們招聘和實際工作中的感受。他們發現,只學習Java、C#、VB等“現代”編程語言的學生,精于拿來主義,長于整合和快速開發,思維活躍,生產效率高,讓他們來做直截了當的、有章可循的、非研究性和非創新性的工作比較合適,但是基礎不扎實,對計算機系統的理解薄弱,處理細節和矛盾的能力不足,一旦他們熟悉的套路用不上,則缺少自主分析問題、解決問題的知識、能力和經驗。

今天看到兩位教授的“上書”,才知道原來他們也有同感。只不過這兩位教授說的更直白,直接反對將Java作為入門編程語言,而是冒天下之大不韙,公然號召開歷史倒車,要求退回到C、C++、Lisp和Ada去。

我是支持兩位教授的。我認為,Java、C#、VB和其它虛擬機之上的語言都不適合作為專業程序員的入門教學語言。在中國還非常缺乏具有創新和獨立解決問題的高水平程序員的局面下,我們應該認真做好的事情是努力提高C/C++的教學質量,而不是圖快活轉向Java。

教學語言的選擇是至關重要的事情。作為大多數學生第一種需要認真學習理解的編程語

言,教學語言將會成為他們中間很多人的“編程母語”,深深地烙印在學生的思維方式中。這個編程母語要幫助學生破除計算機和軟件的神秘感,建立對于程序的基本認識和對計算機模型的最初理解。在后續專業基礎課和專業課程的學習中,這門編程語言應該作為主要工具貫穿始終,幫助學生認識計算機系統,掌握算法與數據結構技能,熟悉操作系統概念,理解編譯原理知識,理解軟件抽象及軟件設計的基本思想,完成一定量的課程及課外項目實踐,建立正確的軟件開發實踐習慣。不但如此,這種教學語言必須是工業界的主流語言,否則學生學非所用,學習動力無法保證。

按照這個標準來衡量,Java適合于作為主要的編程教學語言嗎?我不這么認為。首先,我承認Java在教學上有一些優勢,比如其開發環境和工具支持非常成熟,有助于培養學生正確的編程習慣;Java是當今第一工業主流語言,標準類庫非常全面,可以迅速地開發具有實際用途的程序,有助于激發和保持學生的興趣;而在數據結構、算法、編譯原理的教學方面,Java也毫不落于下風,在軟件抽象設計(面向對象)方面,Java還有著明顯的優勢;特別是在并行編程的教學方面,Java 1.5 concurrency包提供的優勢是壓倒性的。盡管有如上這些優勢,但Java作為教學語言存在著一個致命的缺陷,即它是一個虛擬機語言,這一點就足以把它從教學語言的名單上去掉。

作為一個虛擬機語言,Java對開發者隔絕了下層的真實系統,從而構造了一個近乎完美的環境,在這個環境里,世界上只有一種機器,一個操作系統,內存是無限的,所有的機器都具有相同的字節順序和一致的類型約定,為了設計的優美而犧牲速度永遠是正義行為,從反射到運行時自動加載,從完備的容器類到統一字符編碼,一大堆漂亮的功能都可以不費吹灰之力唾手而得。要是這個世界上每臺計算機都是一個Java機器,每項編程任務都可以在這樣一個近乎完美的環境中開發,那毫無以為,Java是最合適的編程教學語言。但是事實上呢?這樣一個完美的環境是Java力量的源泉,但這卻不是真實的世界。在真實世界里,我們可能面對非常原始的環境,苛刻的運行時限制,復雜多變的系統環境,令人窒息的細節魔鬼,要對付這些東西,需要開發者具有在應對復雜性,自己構造環境,在諸多限制條件下尋找解決方案的能力。而這種能力,被無數人無數次地證明是軟件開發、特別是軟件創新的核心能力。把Java作為教學語言,恰恰會導致這種核心能力的缺失。除此之外,如果耐心觀察的話,不難發現,幾乎在任何軟件領域里的創新性成果都首先是由C/C++語言實現的,原因很簡單,Java是站在C/C++基礎之上的,只有C/C++先把大路趟開,Java才能夠順勢而上。

相反,盡管C/C++語言作為教學語言有很多的不足,比如不同環境下開發模式差異大,細節繁多,開發效率低,容易犯錯,測試和調試困難,學習者難以保持動力,等等,但是這些問題都可以解決。而C/C++的關鍵優點,是能夠讓學習者在真實的計算機抽象上、在大量的細節和矛盾中學會思考,學會解決問題,學會了解真實的系統,知輕重,明生死,從而建立核心能力。掌握了C/C++語言,再去學習和理解Java、C#、Python、Ruby和其它語言,就比較容易達到更高的境界。反之,如果習慣了舒舒服服躺在完美世界里當闊少,那就很難有勇氣面對真實的世界。當然,很多開發者認為,現在更重要的能力是理解業務、整合現有資源的能力,而不是處理底層細節的技術。這種說法放在個人身上沒有問題,但是不能成為整個編程教育的指導思想。我們需要各個層面上的人才,精通業務和設計的架構師固然很重要,但能夠在底層作出創新成果的編程高手實際上更為稀缺和珍貴,很多時候也能夠創造更大的價值。而且,更重要的是,一個精通系統知識的開發者在往上走的時候不會遇到大的障礙,而一個只知道拼裝組合的“高級設計師”,往往連往下看的勇氣都沒有。

Java的另外一個問題,是其所倡導的繁瑣設計風格,一個對象套一個對象,一個對象疊一個對象,概念之間彼此橫七豎八地互相依賴,人為制造出一大堆貌似精美、實則累贅的所謂設計。這個問題我已經批評過多次,并且相信這股歪風一定會最終被人們拋棄,Java最終會歸于質樸。但是在這一天到來之前,Java對于初學者來說,很可能蒙住他們的雙眼,使他們看不到軟件設計中最可貴的簡單性和優美的統一,體會不到數據和程序的統一。在這一點上,C表現的非常好,而C++如果教學得體,可以做的更好。

當然,這并不是為現在的C/C++教學辯護。恰恰相反,從我了解的情況來看,目前普通高校的C/C++教學質量非常令人擔憂。學生學不會,而且越學越沒有興趣,老師則感到教起來很棘手,迫于現實情況往往選擇敷衍了事。反而是教Java,無論如何學生還能學到一點東西,對就業也有直接的幫助。至于學生的核心能力確實,發展后勁不足等問題,就讓他們在現實工作中自己解決吧。坦率地說,這種想法也很有道理。不過,從教學角度來說,我認為老師們還是應該積極考慮如何提高C/C++的教學質量。畢竟學生階段是十分寶貴的,基礎不在這個時期夯實,將來想彌補,就算不是完全不可能,也將付出十倍的代價。本著對學生職業生涯的負責態度,還是應該幫助學生達到這個階段應該達到的目標。在兩位教授的公開信里,也充分表達出這個意思。

我贊成的編程教育過程,應當是以C/C++(基本上是C)為主線,貫穿起算法、數據結構、系統原理、編譯和數據處理、軟件設計和組件技術等關鍵知識領域,讓學生能夠從根本上理解現代軟件系統的原理和構造,并通過有效的練習建立正確的軟件設計觀念和良好的工程實踐習慣。在這個基礎上,無論將來是深入學習C++,還是進入Java的繁榮世界,或者擁抱Python、Ruby,甚至于走向Web開發,都會心領神會,勢如破竹。

第四篇:JAVA面試題

1、面向對象的四個特征:封裝、繼承、多態、抽象

封裝:

繼承:子類繼承父類,除private修飾以外的所以方法和屬性 多態:一個對象多種狀態,可以把子類對象當作父類對象來看,一旦這樣做了,就只能

去調用父類中原有定義的屬性和方法,也就是子類中擴展的方法或屬性就不能調用了。

抽象:

2、abstractclass 和interface的區別

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對象上調用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。

3、final、finally、finalize的區別

final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結構的一部分,表示總是執行。

finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。

4、匿名內部類是否可以作為父類被其他類繼承,或做為接口被實現?

匿名內部類不被繼承也不能被實現,因為它沒有名字,而一個內部類只要有名字就可以作為父類被繼承,也可以作為借口被實現。

5、多線程有幾種實現方法,同步有幾種實現方法,都是什么?

多線程有兩種實現方法,分別繼承繼承Thread類與實現runnable借口。

同步的實現方法有兩種,分別是synchronized,wait與notify。

6、string 與 stringbuffer的區別?

String的長度是不可變的,而stringbuffer的長度是可變的。如果你對字符中的內容經常進行操作,特別是內容修改時,那么就要使用stringbuffer,如果最后需要使用string,那么使用stringbuffer的tostring()方法。

7、解析XML文件的幾種方式和區別

DOM:處理大型文件時其性能下降的非常厲害

SAX:SAX是事件驅動型的XML解析方式,它是順序讀取XML文件,不需要一次性全部裝載整個文件。

8、sleep()和wait()有什么區別?

sleep是線程類(Thread)的方法,導致此線程暫停執行指定時間,給執行機會給其他線程,但是監控狀態依然保持,到時后會自動恢復。調用sleep不會釋放對象鎖。

wait是Object類的方法,對此對象調用wait方法導致本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)后本線程才進入對象鎖定池準備獲得對象鎖進入運行狀態。

9、數組有沒有length這個方法?string有沒有length這個方法?

數組沒有length()這個方法,有length這個屬性

String有length()這個方法

10、LinkedList、ArrayList和Vector的區別? ArrayList和Vector是采用數組方式存儲數據,此數組元素總數大于實際存儲的數據個數以便增加和插入元素,二者都允許直接序號索引元素,但是插入數據要移動數組元素等內存操作,所以它們索引數據快、插入數據慢。

Vector由于使用了synchronized同步方法(如add、insert、remove、set、equals、hashcode等操作),因此是線程安全,性能上比ArrayList要差。

LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行向前或向后遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入數度較快!LinkedList雙向鏈表,是指可以從first依次遍歷至last(從頭到尾),也可以從last遍歷至first(從尾到頭),但首尾沒有構成環,不同于雙向循環鏈表(注意區分):

11、hashmap與hashtable的區別?

都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。

HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。

Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,因為它是同步的。

12、Jsp有哪些內置對象,作用分別是什么?(至少能說出五個)

request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header, 和session數據的有用的方法。

response表示HttpServletResponse對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如cookies,頭信息等)

out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。

pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。

session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態信息

applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的信息

config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數。

page表示從該頁面產生的一個servlet實例

13、Javaservletapi中forward()與redirect()的區別?

前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。

14、重載(overload)與重寫(override)的區別?

Overload:方法名相同,參數不同,與返回值無關

Override:方法名相同,參數相同,相同的返回值,建立在繼承的基礎之上

15、什么是單例模式,在程序中如何使用?

單例模式確保一個類只有一個實例 餓漢式單例類

public class Singleton {

private Singleton(){}

private static Singleton instance = new Singleton();

public static Singleton getInstance(){

return instance;

}

}

懶漢式單例類

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance(){

if(instance==null)

instance=new Singleton();

return instance;

}

}

16、Servlet生命周期?

加載和實例化

初始化init()

請求處理service()

服務終止destroy()

17、spring中IOC與AOP的含義?

IOC:控制反轉,是一種設計模式,一層含義控制權的轉移,由傳統的在程序中控制依賴轉移到由容器來控制,第二層是依賴注入將互相依賴的對象分離,在spring配置文件中描述它們的依賴關心,它們的依賴關系只是在使用的時候才建立

AOP:面向切面,是一種編程思想,oop的延續,將系統中非核心的業務提取出來,進行單獨的處理,比如事務、日志和安全等

Spring的AOP和IOC都是為了解決系統代碼耦合度過高的問題,使用代碼重用性高,易于維護,不過AOP和IOC并不是spring中特有的,只是spring把它們應用的更靈活方便。

18、hibernate與JDBC的區別?

相同點:

1>兩者都是JAVA的數據庫操作中間件。

2>兩者對于數據庫進行直接操作的對象都不是線程安全的,都需要及時關閉。

3>兩者都可以對數據庫的更新操作進行顯式的事務處理。

不同點:

1>使用的SQL語言不同:JDBC使用的是基于關系型數據庫的標準SQL語言,Hibernate使用的是HQL(Hibernate query language)語言

2>操作的對象不同:JDBC操作的是數據,將數據通過SQL語句直接傳送到數據庫中執行,Hibernate操作的是持久化對象,由底層持久化對象的數據更新到數據庫中。3>數據狀態不同:JDBC操作的數據是“瞬時”的,變量的值無法與數據庫中的值保持一致,而Hibernate操作的數據是可持久的,即持久化對象的數據屬性的值是可以跟數據庫中的值保持一致的。

19、struts中的標簽庫有幾種,分別是?

有5種標簽,分別是:bean標簽庫、html標簽庫、logic標簽庫、tiles標簽庫nested標簽庫

20、Error與Exception有什么區別?

Error表示系統級的錯誤和程序不必處理的異常,Exception表示需要捕捉或者需要程序進行處理的異常。

21、Collection和Collections的區別。

Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作

22、GC是什么?為什么要有GC?(基礎)。

GC是垃圾收集器。Java程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。

要請求垃圾收集,可以調用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

23、啟動一個線程是用run()還是start()?

啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處于可運行狀態,這意味著它可以由JVM調度并執行。這并不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。

24、&和&&的區別。

&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。

25、heap和stack有什么區別。

棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進先出的方

式進行處理。

堆是棧的一個組成元素

26、List, Set, Map是否繼承自Collection接口?

List,Set是,Map不是

27、MVC的各個部分都有那些技術來實現?如何實現?

MVC 是Model-View-Controller的簡寫?!癕odel” 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現),“View” 是應用的表示面(由JSP頁面產生),“Controller” 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。

28、Static Nested Class 和 Inner Class的不同。

Static Nested Class是被聲明為靜態(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。

29、接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承實體類

(concrete class)?

接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數

30、JSP和Servlet有哪些相同點和不同點,他們之間的聯系是什么?

JSP 是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點在于,Servlet的應用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重于視圖,Servlet主要用于控制邏輯

31、當一個線程進入一個對象的一個synchronized方法后,其它線程是否可進入此對象的其它方法? 不能,一個對象的一個synchronized方法只能由一個線程訪問。

32、運行時異常與一般異常有何異同?

異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

33、JSP中動態INCLUDE與靜態INCLUDE的區別?

動態INCLUDE用jsp:include動作實現 它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數。

靜態INCLUDE用include偽碼實現,定不會檢查所含文件的變化,適用于包含靜態頁面<%@ include file=“included.htm” %>

第五篇:JAVA編程心得體會

JAVA編程心得

計算機3班

竇金霞

20104773

最近幾周一直在弄程序,說實話真的很累,但累中也有成功的快樂。我覺得學到了很多東西,這是只看課本知識所不能學到的。

說實話,以前我一直沒學過JAVA雖然我也知道JAVA的重要性,可是即使上課聽了,不實踐還是掌握不了。因為種種原因,今年我沒有買筆記本。沒有機器,僅僅靠每周一次的上機練習是絕對不夠的。所以我就插空調程序,在舍友們不用的時候自己再接她們的電腦調。

調上一個WEB版的通訊錄程序時我已經感覺到學的很吃力,好多東西都不懂。這次做的這個學生成績管理系統更復雜了,所以一開始調的時候感覺特別吃力.所以我告訴自己不能放棄,慢慢來,就這樣我從最基本的sql語句session對象開始學起,我覺得我還有太多不懂得所以要比別人付出更多的努力。就這樣我一點一點的學著??

說心里話,在做上一個web版的通訊錄時,我就感覺到成功的喜悅。好多地方我都是一點一點的問的,在問的過程中,我也學會了很多,像:Servlet和jsp之間跳不過去時有兩種解決辦法,一是關閉底層類中的db.close;二是將Servlet中的throws Exception改成try catch以捕捉異常;我還學到了集中查找錯誤的方法,可以加上兩個雙斜杠“//”將具體的方法屏蔽掉,一檢查是方法錯誤還是Servlet錯誤,還有就是寫上System.out.println()將獲得的數據輸出,用來檢查數據傳輸過程有沒有錯誤等等。

雖然在別人看來,這些方法可能都很常規,但是確實我自己學會的,我覺得很有成就感。我已經做好計劃了,暑假的時候去買本本用自己的本本練習一下JAVA,雖然下學期不學JAVA了,但是我對JAVA的熱情不會因為這個而削減的!

做完這個學生成績管理系統后,我覺得我對JAVA的看法已經改變了。一前總以為JAVA很繁瑣很難,聽同學說JAVA不好學,開始又有一些聽不懂,所以一直很畏懼JAVA。但真正做了這個系統以后我才感覺到其實任何事都沒有難與不難之分,只要你肯努力的去做,世上無難事只怕有心人!

我現在對java學習充滿了熱情,我知道我還有很多的不足

還有很多需要努力的地方,所以我的JAVA之旅將繼續進行??

下載Java編程語言面試題word格式文檔
下載Java編程語言面試題.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    java語言深入:究竟什么叫面向接口編程

    Java:Java語言深入:究竟什么叫面向接口編程 [ 來源:Java | 作者:Java | 時間:2007-7-20 | 去論壇] 在一個面向對象的系統中,系統的各種功能是由許許多多的不同對象協作完成的。......

    編程語言Android java CC++的對比

    編程語言Android java C/C++的對比 如果你想成為一名前景光明的程序員,則需選擇一個適合自己同時熱門的編程技術,現在最火的編程技術無非就是java、ios、android、c++了,那么,我......

    java程序員面試題

    1、 你怎樣理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 實現低耦合,便于程序的維護~ 配置文件控制......

    Java就業面試題大全

    第 1 頁 共 137 頁 1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制? 可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致。3、說說&和&......

    java工程師面試題

    西安三元數碼軟件有限公司 外派JAVA軟件工程師筆試題4303 返回上級目錄 選擇題 1:在軟件生命周期中,下列哪個說法是不準確的? A.軟件生命周期分為計劃、開發和運行三個階......

    Java程序員面試題

    Java程序員面試題 1、面向對象的特征有哪些方面? 答:面向對象的特征主要有以下幾個方面:1)抽象2)繼承3)封裝4)多態性 2、作用域public,private,protected,以及不寫時的區別 答......

    JAVA程序員面試題

    JAVA程序員面試題 第一,談談final, finally, finalize的區別。 final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不......

    Java程序員面試題

    北京千渡網訊科技有限公司博寶藝術網http:// Java程序員面試題 1. 下列程序段執行后,t5的結果是_____. int t1=5,t2=6,t3=7,t4,t5; t4 = t1 6)x = sb.indexOf("b"); sb.delet......

主站蜘蛛池模板: 乱色欧美激惰| 亚洲综合av一区二区三区| 亚洲日本va中文字幕久久| 国产破外女出血视频| 亚洲成a人v在线蜜臀| 亚洲精品成人网久久久久久| 国产精品99久久久久久宅男小说| 亚洲午夜理论无码电影| 理论片午午伦夜理片久久| 制服丝袜一区二区三区| 四虎成人精品在永久在线| 麻豆av一区二区天美传媒| 国产极品美女高潮无套在线观看| 亚洲欧美成人一区二区三区| 饥渴少妇高潮视频大全| 97人洗澡从澡人人爽人人模| 国产成年无码av片在线| 亚洲欧美成人久久综合中文网| 两根大肉大捧一进一出好爽视频| 免费看婬乱a欧美大片| 四虎精品成人a在线观看| 午夜熟女插插xx免费视频| 免费视频爱爱太爽了| 亚洲一区中文字幕日产乱码| 成人一区二区免费视频| 国内露脸少妇精品视频| 免费国产拍久久受拍久久| 国产亚洲精品a在线观看下载| 中文字幕精品无码一区二区三区| 四虎影视永久地址www成人| 中文字幕一区二区三区日韩精品| 久久综合精品国产一区二区三区无码| 在线看片免费人成视频电影| av无码国产精品色午夜| 无码夜色一区二区三区| 欧美一区二区三区啪啪| 无码精品国产一区二区免费| 国产内射爽爽大片| 亚洲色欲综合一区二区三区| 国产成人无码精品午夜福利a| 国产乱码精品一区二区三区中文|