北京一家JAVA開發公司面試題(留給後人)


一、jsp有哪些內置對象?做用分別是什麼?javascript

二、描述一下servlet的生命週期和基本架構。html

三、多線程有幾種實現方法,都是什麼?java

      同步有幾種實現方法,都是什麼?linux

四、做用域public   private   protected以及不寫時的區別?c++

五、用JAVA實現數據庫查詢(寫一段完整的程序)。程序員

六、用正則表達式判斷123456_78不是一個數字。web

七、排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序。面試

---------------------------------------------------------------ajax

以上是北京一家JAVA開發公司出的面試題,在這裏貼出來是想留給剛出道且正在找工做的JAVA兄弟。正則表達式

也但願這裏的高高手給出正確答案,以給後人一些借鑑,造福於後人! 

 

out---Jsp.jspWriter的對象,在html上顯示內容

request---HttpServlet的對象,包含請求信息

response---HttpServlet的對象,對請求所做出的響應

session---HttpSession的對象,每一個客戶與當前請求創建的惟一的會話

exception--throwable的子類,請求發生錯誤時拋出的異常

page--至關於this

 

servelt的生命自web服務器啓動時開始至服務器關閉時結束,jvm第一次加載後駐留在內存中,全部請求共享同一個servlet,包括init(),service(),start(),stop(),destrop(),doGet(),doPost()等方法,第一次加載時首先call   init()方法,而後service()方法,不說了不說了,太羅嗦了, 

 

1。當一個線程進入moniter(也就是說站用一個object),另外一個線程只有等待或返回,而咱們把返回就稱爲一種模式,這種模式的英文是Balking。   

 

2。這兩個線程能夠是有序的執行,而不是讓OS來調度,這時咱們要用一個object來調度,這種模式稱爲Scheduler。(這個詞及其含義其實OS中就有)。   

 

3。若是這兩個線程同時讀一個資源,咱們可讓他們執行,但若是同時寫的話,你閉着眼睛都會知道可能出現問題,這時咱們就要用另外一種模式(Read/Write   Lock)。   

 

4。若是一個線程是爲另外一個線程服務的話,好比IE中負責數據傳輸的線程和界面顯示的線程,當一個圖片沒有傳完時,另外一個線程就沒法顯示,至少是部分沒有傳完。那麼這時咱們要用一個模式稱爲生產者和消費者,英文是Producer-Consumer。   

 

5。兩個線程的消亡也能夠不是徹底又OS來控制的,這時咱們須要給出一個條件,使得每一個線程在符合條件是才消亡,也就是有序的消亡,咱們稱爲Two-Phase   Termination。 

 

1.       JSP有哪些內置對象?做用分別是什麼?

(1)   HttpServletRequest類的Request對象

做用:表明請求對象,主要用於接受客戶端經過HTTP協議鏈接傳輸到服務器端的數據。

(2)   HttpServletResponse類的Respone對象

做用:表明響應對象,主要用於向客戶端發送數據

(3)   JspWriter類的out對象

做用:主要用於向客戶端輸出數據;   

                Out的基類是JspWriter

(4)   HttpSession類的session對象

做用:主要用於來分別保存每一個用戶信息,與請求關聯的會話;

                  會話狀態維持是Web應用開發者必須面對的問題。

(5)   ServletContex類的application對象

做用:主要用於保存用戶信息,代碼片斷的運行環境;

                它是一個共享的內置對象,即一個容器中的多個用戶共享一個application對象,故其保存的信息被全部用戶所共享.

(6)   PageContext類的PageContext對象

做用:管理網頁屬性,爲JSP頁面包裝頁面的上下文,管理對屬於JSP中特殊可見部分中已命名對象的訪問,它的建立和初始化都是由容器來完成的。

(7)   ServletConfig類的Config對象

做用:代碼片斷配置對象,表示Servlet的配置。

(8)   Object類的Page(至關於this)對象

做用:處理JSP網頁,是Object類的一個實例,指的是JSP實現類的實例,即它也是JSP自己,只有在JSP頁面範圍以內纔是合法的。

(9)Exception

做用:處理JSP文件執行時發生的錯誤和異常

 

第8份JAVA面試題(出自北京一家JAVA公司,留給後人)

cnliutian (手起刀落,小日本雞雞被砍掉)     2004-11-12 16:06:30 在 Java / Web 開發 提問

一、要建立一個物理表,包括字段(id   整型   長度30   主鍵,title   字符型   長度200,content   大字段),請分別寫出在Oracle和DB2環境下的建表SQL語句。

 

二、在Oracle數據庫中有一張叫作content的表,該表結構以下

 

字段名       類型                     長度     主鍵

------         ------     ----       ------

  id BigDecimal           是

Title         Varchar2                     500

content         clob

 

假設該表中有50條數據,要求查出第1000至第1100條之間的數據,請給出查詢SQL語句。

 

三、請描述HashMap和Hashtable的區別及各自用途。

 

四、如何保證在JAVA應用程序中,一個類class只有一個實例存在,並給出示例代碼。

 

五、try{}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會不會被執行,何時被執行,在return前仍是後?

 

六、一個try{}後最多能夠有多少個catch()語句

 

七、給出一個含有匿名內部類的JAVA類文件示例代碼。

 

八、分析下面代碼:

 

1   interface   Inter{}

2   class   A{}

3   class   B   extends   A   implements   Inter{}

4   class   C   extends   B{

5 public   static   void   main(String[]   args){

6 A   a   =   new   A();

7 B   b   =   new   B();

8 C   c   =   new   C();

9 if(a   instanceof   B)

10 System.out.println("Hello");

11 if(b   instanceof   A)

12 System.out.println("Hello");

13 if(c   instanceof   C)

14 System.out.println("Hello");

15 if(c   instanceof   Inter)

16 System.out.println("Hello");

}

    }

當運行class   C時,程序中第10.12.14.16地中哪一行代碼將被執行。

 

 

④JAVA高級程序員面試題(留給後人)

cnliutian (手起刀落,小日本雞雞被砍掉)     2004-10-30 14:39:34 在 Java / Web 開發 提問

一、簡單描述一下awt與swing區別。

二、簡述java編程中事件處理模式。

三、你編寫過applet嗎?applet的安全權限如何?試列舉java   application或者applet中與servlet/jsp通訊能夠採用的方式。

 

2.採用動態事件驅動(直接事件驅動)

1.applet的安全機制在java中有個稱沙箱的安全機制這樣也就限制了它:

        如:不容許它調   其餘程序。

                文件讀寫(本地磁盤)。

          等等。

JAVA程序員面試題

cnliutian (手起刀落,小日本雞雞被砍掉)     2004-11-11 14:11:42 在 Java / 非技術區 提問

一、數據庫

表a和表b具備徹底相同的結構,主鍵爲indexid。寫出一個sql語句把表b中不存在而表a中存在的數據插入到表b中。

二、javascript部分

頁面中有一個名稱都爲unitprice的type=text對象。要求輸入的數據不能爲空,寫一個函數實現該功能,若是爲空時給出提示。

三、JSP部分

①session中存儲一個String變量,變量名稱爲studentname,寫出在jsp中如何獲得這個session變量的值的語句。

②在jsp中引用使用<jsp:useBean   id="   "   ...scope="   "/>來引用javabean.

Ⅰscope的值有哪些,這些值的區別是什麼?

Ⅱ不一樣的jsp頁面中引用javabean時,id可否相同,若是能相同,對scope的值有什麼要求?

四、JAVA部分

①輸入一個維數,輸出如下形式的矩陣和數列,以維數n=4爲例:

0000

0111

0122

0123

②寫出下面這段程序的運行結果

int   a=2,b=3,c=1

a+=--b+c;

c-=b+a++;

System.out.println("a="+a+",b="+b+",c="+c);

五、有一個Vector對象,其中每個元素都是一個String對象,請用for循環或while循環輸出Vector中的元素,要求格式爲:"第i個元素爲:aaa"

六、有一個HashMap其中key爲String對象,value爲Integer對象,寫一個方法打印出此Map中的全部鍵值   對形如   key--value

七、有一個String   str="001,A001;002,A002;003,A003"的串,寫一個方法,把此串存入列   一個HashMap或Hashtable中,說明:如001爲key,A001則爲value。

八、面向對象概念:

①面向對象基本特徵

②什麼叫多態和重載,它們有什麼區別?

③用你本身的話描述你理解的j2ee的本質特徵是什麼? 

 

第一題:  寫一個方法,實現刪除鏈表中某個節點的操做(其餘條件本身假設,補充)

public void delete()

{

 if(front>=rear)

 { 

 s[front] =0;

 front--;

 System.out.println("\ndelete successful");

 }

 else

 {

  System.out.println("the link is empty ,can't delete");

 }

}

第二題:  寫一個方法,實現堆棧的入棧操做 (其餘條件本身假設,補充)

 

public class stack{

 private int[] s;

 int top,bottom;

 public stack(int size){

  s = new int[size];

  top = size-1;

  bottom = size-1;

  System.out.println("Size of the stack is:"+size);

 }

 public boolean isEmpty()

 {

  if(top==s.length-1)

  return true;

  else 

  return false;

 }

 public void push(int n)

 {

  if(top<0)

  {

  System.out.println("The stack is full now,you can't push your data!");

  return;

  }

  else

  {  

  s[top] = n;

  top--;

  return ;

  }

 }

 public void pop()

 {

  if(top>=s.length-1)

  {

   System.out.println("The stack is empty,Can't pop now!");

   return;

  }

  else

  {

   top++;

  }

 }

 public void print()

 {

  System.out.println("State of the stack:");

  for(int i=s.length-1;i>top;i--)

  {

   System.out.print(s[i]+"  ");

  }

 }

 public static void main(String[] a)

 {

  stack st = new stack(5);

  System.out.println("List of the action to the stack:");

  System.out.println("push(3):");

  st.push(3);

  st.print();

  System.out.println("  ");

  System.out.println("push(6)");

  st.push(6);

  st.print();

  System.out.println("  ");

  System.out.println("push(10)");

  st.push(10);

  st.print();

  System.out.println("  ");

  System.out.println("pop()");

  st.pop();

  st.print();

  System.out.println("  ");

  

 }

}

 

 

 

第三題: 使用任意排序算法,寫一個排序示例程序

 

import java.io.*;

class SelectionSort{

 

 public static void main(String[] args){

  int[] a={4,54,8,7,6,98,42,};

  sort(a);

  for(int i=0;i<a.length;i++){

   System.out.print(a[i]+"   ");

   }

   System.out.println("");

}

 

   static void sort(int[] data){

  int next, indexOfNext=0,n;

    for (next=0;next<data.length-1;next++)

    {

    

        indexOfNext=min(data,next,(data.length)-1);

     swap(data,indexOfNext,next);

  }

  }

  

  static int min(int[] data,int start,int end){

   int indexOfMin=start;

   for (int i=start+1;i<=end;i++)

   if(data[i]<data[indexOfMin])

   indexOfMin=i;

   

   return indexOfMin;

  }

  static void swap(int[] data,int first,int second){

   int temp;

   temp=data[first];

   data[first]=data[second];

   data[second]=temp;

   }

 

}

 

第四題:

編寫一個servlet,把servlet源碼和此servlet在服務器上的配置文件web.xml做爲附件發送到指定的郵箱

      servlet的功能要求:記錄訪問該servlet的客戶端的ip和訪問時間,把記錄寫入client_ip.log文件。 client_ip.log裏的格式大體以下:

 

 9:36 2005-4-8 192.168.0.1

 9:36 2005-4-8 127.0.0.1

 

<BR>獲取客戶的IP地址

 

 

第五題 

 數據庫中有兩個表tableA和tableB,他們都有一個int型的字段id,請寫出一個sql語句,實現查詢id在tableA中有,而tableB中沒有的記錄

 例如tableA中有以下記錄

 ----------------------------

 tableA.id tableA.name

 3  Mary

 4  Jack

 5  Lily

 ----------------------------

 tableB.id

 3

 5

 查詢的結果應該是

 ----------------------------

 tableA.id tableA.name

 4  Jack

 

 

select *

from tableA

where not exists

(select *

from tableB

where tableA.id=tableB.id)

第六題   簡述jsp和servlet的聯繫

 

Java Servlet是JSP技術的基礎,並且大型的Web應用程序的開發須要Java Servlet和JSP配合才能完成。如今許多Web服務器都支持Servlet,即便不直接支持Servlet的Web服務器,也能夠經過附件的應用服務器和模塊來支持Servlet,這得益於Java的跨平臺特性。另外,因爲Servlet內部以線程方式提供提供服務,沒必要對於每一個請求都啓動一個進程,而且利用多線程機制能夠同時爲多個請求服務,所以Servlet的效率很是高。

 

第七題   什麼是sql注入漏洞,採用什麼方法來堵住sql注入漏洞

 

 

隨着B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員也愈來愈多。可是因爲這個行業的入門門檻不高,程序員的水平及經驗也良莠不齊,至關大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶能夠提交一段數據庫查詢代碼,根據程序返回的結果,得到某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入

 

第八題:簡述你對xml的認識,舉例說明xml能幹什麼,應該怎麼作

 

XML是Extensible Markup Language的縮寫,意思是可擴展置標語言沒有於置標電子文檔,使起數據具備結構化的置標語言。在我目前淺顯的認識裏:,

XML 是用來傳遞數據的 ,

XML 讓這些數據有告終構 -- 一個樹型結構  ,

xml 有全套的操做這種結構的方法    

xml 規範(或者說的實際點,xml parser)幫你肯定你建立的字符串是合法的     

xml 規範(或者說的實際點,xml parser)中有辦法驗證這個合法性   

對於XML能用來作什麼,我以爲XML能夠用來下面幾個方面

--------------------------------------------------------------------------

1:有利於開發靈活的web應用軟件

使用XML來描述數據,可使數據具備贊成的組織結構,其餘應用軟件,對象,中間層和服務器均可以對使用XML描述的數據作進一步的處理。並能夠提交到瀏覽器中讓讀者閱讀

2:能夠輕鬆的實現數據在web上發佈

由於XML自己是純文本格式的,它能夠不作任何修改就和HTML文檔同樣在網絡中傳輸。

3:有利於信息的集成

由於使用XML,能夠把不一樣來源的結構化數據很容易地組織到一塊兒。應用軟件能夠在中間層的服務器上對來自於後段數據庫和其餘的數據進行集成。最後,數據以XML格式發送到客戶端或者是在其餘服務器作進一步處理。

4:可使用豐富的樣式來顯示數據

XML採用結構化的方式來組織數據,描述的是數據自己,不涉及到數據的表現形式。一般來講,使用CSS和 XSL以及XSLT爲數據的顯示提供分佈的機制,也就是說數據的顯示方式能夠根據客戶的要求制定。

5:可大大加強服務器的可伸縮性

XML將數據自己和數據的顯示徹底分離,從而能夠在結構化的數據中嵌套數據的顯示方式描述。這樣,能儘量地減小客戶端與服務器之間的數據交換,減小服務器的工做量才能大大提升服務器的性能。

6:採用統一的XML文檔格式來描述多種應用的數據

7:支持本地數據處理

由於XML文檔中的數據格式是統一的,當客戶受到數據後,即可以使用客戶本身的應用軟件來解析數據,並對數據進行進一步的編輯和處理。

8:可使搜索變得更加簡單和富有成效

採用統一的XML標識來組織來自不一樣數據庫的數據,就能夠在不瞭解數據庫數據組織形式的狀況下進行數據的檢索。

9:能夠實現數據的獨立更新

10:開放式的標準

雖然XML的初衷是爲了使具備不一樣結構的數據文件採用統一的XML格式 在Internet上傳輸,

 

第九題

介紹你作的一個項目,包括實現了什麼功能,經過什麼方法來實現(算法,邏輯結構...),怎麼來保證它的安全和健壯性等.

( )

 

 

選作

第十題:

 

如何察看linux當前系統正在運行什麼服務?

 

第十一題:

 

linux系統的用戶賬號保存在那一個或哪幾個文件裏?

 

第十二題

 

簡述MVC是什麼

 

MVC是 Model-View-Controller 的簡稱,也就是 模型-視圖-控制器

MVC用來處理驗證、流程控制和更新應用程序的狀態等問題。

Model(模型)

模型包含應用程序的核心功能。模型封裝了應用程序的狀態。有時它包含的惟一功能就是狀態。它對視圖或控制器一無所知。

View(視圖)

視圖提供模型的表示。它是應用程序的外觀。視圖能夠訪問模型的讀方法,但不能訪問寫方法。此外,它對控制器一無所知。當更改模型時,視圖應獲得通知。

Controller(控制器)

控制器對用戶的輸入做出反應。它建立並設置模型。 

 

 

 

 

 

java面試題集

 

基礎知識: 

1.C++或Java中的異常處理機制的簡單原理和應用。 

 

當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示爲一個異常。違反語義規則包括2種狀況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引起IndexOutOfBoundsException;訪問null的對象時會引起NullPointerException。另外一種狀況就是JAVA容許程序員擴展這種語義檢查,程序員能夠建立本身的異常,並自由選擇在什麼時候用throw關鍵字引起異常。全部的異常都是java.lang.Thowable的子類。 

 

2. Java的接口和C++的虛類的相同和不一樣處。 

 

因爲Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裏面的方法或屬性,現有的單繼承機制就不能知足要求。與繼承相比,接口有更高的靈活性,由於接口中沒有任何實現代碼。當一個類實現了接口之後,該類要實現接口裏面全部的方法和屬性,而且接口裏面的屬性在默認狀態下面都是public static,全部方法默認狀況下是public.一個類能夠實現多個接口。 

 

3. 垃圾回收的優勢和原理。並考慮2種回收機制。 

 

Java語言中一個顯著的特色就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候再也不須要考慮內存管理。因爲有個垃圾回收機制,Java中的對象再也不有「做用域」的概念,只有對象的引用纔有「做用域」。垃圾回收能夠有效的防止內存泄露,有效的使用可使用的內存。垃圾回收器一般是做爲一個單獨的低級別的線程運行,不可預知的狀況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或全部對象進行垃圾回收。回收機制有分代複製垃圾回收和標記垃圾回收,增量垃圾回收。 

 

4. 請說出你所知道的線程同步的方法。 

 

wait():使一個線程處於等待狀態,而且釋放所持有的對象的lock。 

 

sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。 

 

notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM肯定喚醒哪一個線程,並且不是按優先級。 

 

Allnotity():喚醒全部處入等待狀態的線程,注意並非給全部喚醒線程一個對象的鎖,而是讓它們競爭。 

 

5. 請講一講析構函數和虛函數的用法和做用。 

 

6. Error與Exception有什麼區別? 

 

Error表示系統級的錯誤和程序沒必要處理的異常, 

 

Exception表示須要捕捉或者須要程序進行處理的異常。 

 

7. 在java中一個類被聲明爲final類型,表示了什麼意思? 

 

表示該類不能被繼承,是頂級類。 

 

8. 描述一下你最經常使用的編程風格。 

 

9. heap和stack有什麼區別。 

 

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

 

堆是棧的一個組成元素 

 

10. 若是系統要使用超大整數(超過long長度範圍),請你設計一個數據結構來存儲這種超大型數字以及設計一種算法來實現超大整數加法運算)。 

 

public class BigInt() 

 

 

int[] ArrOne = new ArrOne[1000]; 

 

String intString=""; 

 

public int[] Arr(String s) 

 

 

intString = s; 

 

for(int i=0;i<ArrOne.leght;i++) 

 

 

11. 若是要設計一個圖形系統,請你設計基本的圖形元件(Point,Line,Rectangle,Triangle)的簡單實現 

 

12,談談final, finally, finalize的區別。 

 

  final?修飾符(關鍵字)若是一個類被聲明爲final,意味着它不能再派生出新的子類,不能做爲父類被繼承。所以一個類不能既被聲明爲 abstract的,又被聲明爲final的。將變量或方法聲明爲final,能夠保證它們在使用中不被改變。被聲明爲final的變量必須在聲明時給定初值,而在之後的引用中只能讀取,不可修改。被聲明爲final的方法也一樣只能使用,不能重載。 

 

  finally?再異常處理時提供 finally 塊來執行任何清除操做。若是拋出一個異常,那麼相匹配的 catch 子句就會執行,而後控制就會進入 finally 塊(若是有的話)。 

 

  finalize?方法名。Java 技術容許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去以前作必要的清理工做。這個方法是由垃圾收集器在肯定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,所以全部的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其餘清理工做。finalize() 方法是在垃圾收集器刪除對象以前對這個對象調用的。 

 

13,Anonymous Inner Class (匿名內部類) 是否能夠extends(繼承)其它類,是否能夠implements(實現)interface(接口)? 

 

  匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類能夠做爲一個接口,由另外一個內部類實現。 

 

 

 

14,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內部類的一個對象訪問一個外部類對象 

 

第四,&和&&的區別。 

 

  &是位運算符。&&是布爾邏輯運算符。 

 

15,HashMap和Hashtable的區別。 

 

 

 

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

 

 

 

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

 

  Hashtable 相似於 HashMap,可是不容許 null 鍵和 null 值。它也比 HashMap 慢,由於它是同步的。 

 

16,Collection 和 Collections的區別。 

 

  Collections是個java.util下的類,它包含有各類有關集合操做的靜態方法。 

 

  Collection是個java.util下的接口,它是各類集合結構的父接口。 

 

17,何時用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 標記。還能夠在包的基礎上啓用或者禁用斷言。 

 

  能夠在預計正常狀況下不會到達的任何位置上放置斷言。斷言能夠用於驗證傳遞給私有方法的參數。不過,斷言不該該用於驗證傳遞給公有方法的參數,由於無論是否啓用了斷言,公有方法都必須檢查其參數。不過,既能夠在公有方法中,也能夠在非公有方法中利用斷言測試後置條件。另外,斷言不該該以任何方式改變程序的狀態。 

 

18,GC是什麼? 爲何要有GC? (基礎)。 

 

  GC是垃圾收集器。Java 程序員不用擔憂內存管理,由於垃圾收集器會自動進行管理。要請求垃圾收集,能夠調用下面的方法之一: 

 

System.gc() 

 

Runtime.getRuntime().gc() 

 

19,String s = new String("xyz");建立了幾個String Object? 

 

  兩個對象,一個是「xyx」,一個是指向「xyx」的引用對象s。 

 

20,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 

 

  Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11; 

 

21,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯? 

 

  short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化爲short型。可修改成s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。 

 

22,sleep() 和 wait() 有什麼區別? 搞線程的最愛 

 

  sleep()方法是使線程中止一段時間的方法。在sleep 時間間隔期滿後,線程不必定當即恢復執行。這是由於在那個時刻,其它線程可能正在運行並且沒有被調度爲放棄執行,除非(a)「醒來」的線程具備更高的優先級 (b)正在運行的線程由於其它緣由而阻塞。 

 

  wait()是線程交互時,若是線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。 

 

23,Java有沒有goto? 

 

  Goto?java中的保留字,如今沒有在java中使用。 

 

 

 

24,數組有沒有length()這個方法? String有沒有length()這個方法? 

 

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

 

  String有有length()這個方法。 

 

25,Overload和Override的區別。Overloaded的方法是否能夠改變返回值的類型? 

 

  方法的重寫Overriding和重載Overloading是Java多態性的不一樣表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。若是在一個類中定義了多個同名的方法,它們或有不一樣的參數個數或有不一樣的參數類型,則稱爲方法的重載(Overloading)。Overloaded的方法是能夠改變返回值的類型。 

 

26,Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==仍是equals()? 它們有何區別? 

 

  Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。 

 

  equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。

 

 

 

  說明,爲了節省你們的時間和提升學習效率,一些過期知識點和被筆試機率極低的題目再也不被收錄和分析。

回 答問題的思路:先正面敘述一些基本的核心知識,而後描述一些特殊的東西,最後再來一些錦上添花的東西。要注意有些不是錦上添花,而是多此一舉的東西,不要 隨便寫上。把答題像寫書同樣寫。我要回答一個新技術的問題大概思路和步驟是:咱們想幹什麼,怎麼幹,乾的過程當中遇到了什麼問題,如今用什麼方式來解決。其 實咱們講課也是這樣一個思路。

例如,講ajax時,咱們但願不改變原來的整個網頁,而只是改變網頁中的局部內容,例如,用戶名校驗,級聯下拉列表,下拉樹狀菜單。用傳統方式,就是瀏覽器本身直接向服務器發請求,服務器返回新頁面會蓋掉老頁面,這樣就不流暢了。

對本面試寶典中的題目有信心嗎?原本有信心的,結果聽你講完後,就沒信心了!我很是理解。由於他以爲個人太深,他想記住個人些東西,但是記不住,因此沒信心了。我又問:聽懂了嗎?他說聽懂了。你到如今只要把你的理解儘可能清晰地、有條理地表達出來,就很棒了。

 

這套面試題主要目的是幫助那些尚未java軟件開發實際工做經驗,而正在努力尋找java軟 件開發工做的朋友在筆試時更好地贏得筆試和麪試。因爲這套面試題涉及的範圍很泛,很廣,很雜,你們不可能一天兩天就看完和學完這套面試寶典,即便你已經學 過了有關的技術,那麼至少也須要一個月的時間才能消化和掌握這套面試寶典,因此,你們應該早做準備,從拿到這套面試寶典之日起,就要堅持在天天閒暇之餘學 習其中幾道題目,日積月累,等到出去面試時,一切都水到渠成,面試時就天然會遊刃有餘了。

 

答題時,先答是什麼,再答有什麼做用和要注意什麼(這部分最重要,展示本身的心得)

 

答案的段落分別,井井有條,條理清晰都很是重要,從這些表面的東西也能夠看出一我的的習慣、辦事風格、條理等。

要講你作出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想着是辯論賽。答題就是給別人講道理、擺事實。答題不侷限於什麼格式和形式,就是要將本身的學識展示出來!

別由於人家題目原本就模棱兩可,你就內心膽怯和沒底氣了,不敢回答了。你要大膽地指出對方題目很模糊和你的觀點,不要把面試官想得有多高,其實他和你就是差很少的,你想一想,若是他把你招進去了,大家之後就是同事了,可不是差很少的嗎?

關於就業薪水,若是你是應屆生,那不能要高工資,比如大餅的故事,沒有文憑還想拿高工資,就去中關村缺什麼補什麼吧!少數人基礎確實很好,在校期間確實又作過一些項目,那仍然是能夠要到相對高的工資的。

 

公司招聘程序員更看重的要用到的編碼技術、而不是那些業務不太相關的所謂項目經歷:

1.公司想招什麼樣的人2.公司面試會問什麼,.3.簡歷怎麼寫4怎樣達到簡歷上的標準(培訓中心教項目的目的)

 

對 於一些公司接到了一些項目,想招聘一些初中級的程序員過來幫助寫代碼,完成這個項目,你更看重的是他的專業技術功底,仍是之前作過幾個項目的經歷呢?咱們 先排除掉那些編碼技術功底好,又正好作過類似項目的狀況,實際上,這種魚和熊掌兼得的狀況並不常見。其實公司很清楚,只要招聘進來的人技術真的很明白,那 他什麼項目均可以作出來,公司招人不是讓你去重複作你之前的項目,而是作一個新項目,業務方面,你只要進了項目團隊,天然就能掌握。因此,大多數招聘單位 在招聘那些編碼級別的程序員時也沒期望能招聘到作過相似項目的人,也不會刻意去找作過相似項目的人,用人單位也不是想把你招進,而後把你之前作過的項目重 作一遍,因此,用人單位更看重招進來的人對要用到的編碼技術的功底到底怎樣,技術紮實不紮實,項目則只要跟着開發團隊走,天然就沒問題。除非是一些很是專 業的行業,要招聘特別高級的開發人員和系統分析師,招聘單位才特別注重他的項目經驗和行業經驗,要去找到行業高手,公司才關心項目和與你聊項目的細節,這 樣的人一般都不是經過常規招聘渠道去招聘進來的,而是經過各類手段挖過來的,這狀況再也不我今天要討論的範圍中。

技術學得明白不明白,人家幾個問題就把你的深淺問出來了,只要問一些具體的技術點,就很容易看出你是真懂仍是假懂,很容看出你的技術深度和實力,因此,技術是來不得半點虛假的,必須紮紮實實。

因爲項目的種類繁多,涉及到現實生活中的各行各業,什麼五花八門的業務都有,例如,酒店房間預約管理,公司車輛調度管理,學校課程教室管理,超市進銷存管理,知識內容管理,等等……成 千上萬等等,可是,無論是什麼項目,採用的無非都是咱們學習的那些目前流行和經常使用的技術。技術好、經驗豐富,則項目作出來的效率高些,程序更穩定和更容易 維護些;技術差點,碰碰磕磕最後也能把項目作出來,無非是作的週期長點、返工的次數多點,程序代碼寫得差些,用的技術笨拙點。若是一我的不是完徹底全作過 某個項目,他是不太關心該項目的業務的,對其中的一些具體細節更是一竅不知,(若是我招你來作圖書管理,你項目經歷說你作過汽車調度,那我能問你汽車調度具體怎麼回事嗎?不會,因此,你很容易矇混過去的)而一個程序員的整個職業生涯中能實實在在和完完整整作出來的項目沒幾個,更別說在多個不一樣行業的項目了,有的程序員更是一生都只是在作某一個行業的項目,結果他就成了這個行業的專家(專門幹一件事的傢伙)。 因此,技術面試官一般沒正好親身經歷過你簡歷寫的那些項目,他不可能去問你寫的那些項目的具體細節,而是隻能泛泛地問你這個項目是多少人作的,作了多長時 間,開發的過程,你在作項目的過程當中有什麼心得和收穫,用的什麼技術等面上的問題,因此,簡歷上的項目經歷能夠含有不少水分,很容易做假,技術面試官也無 法在項目上甄別你的真僞。

簡歷該怎麼寫:精通那些技術,有一些什麼項目經歷

教 項目是爲了鞏固和靈活整合運用技術,加強學習的趣味性,熟悉作項目的流程,或得一些專業課程中沒法得到的特有項目經驗,加強本身面試的信心。講的項目應該 真實可靠纔有價值,不然,表面上是項目,實際上仍是知識點的整合,對鞏固技術點和加強學習的趣味性,但沒法得到實際的項目經驗。(項目主要是增長你經驗的 可信度,得到更多面試機會,真正能不能找到工做,找到好工做,主要看你鍵盤上的功夫了),好的面試官幾下就能面出你是否真有工做經驗,他們問技術之外的公 司的人和事,而且問開始、過程、結果,看你怎麼編。

建議你們儘可能開本身的blog,堅持天天寫技術blog。在簡歷上寫上本身的blog地址,能夠多轉載一些技術文章。

相關文章
相關標籤/搜索