03Java面試題-------------中科軟


1.String是最基本的數據類型嗎?String和StringBuffer的區別?

不是。Java中的基本數據類型只有8個:byteshortintlongfloatdoublechar,boolean,除了基本類型(primitive type),剩下的都是引用類型(reference type),枚舉類型(enumeration type)也是引用類型。其中 byte 一個字節,short兩個字節,int四個字節,long八個字節,char兩個字節。

區別: (
1)String:是對象不是原始類型.為不可變對象,一旦被創建,就不能修改它的值.對於已經存在的String對象的修改都是重新創建一個新的對象,然后把新的值保存進去.String 是final類,即不能被繼承。 (2)StringBuffer:是一個可變對象,當對他進行修改的時候不會像String那樣重新建立對象。它只能通過構造函數來建立對象被建立以后,在內存中就會分配內存空間,並初始保存一個null.向StringBuffer中付值的時候可以通過它的append方法.

2.int和Integer有什么區別?

int是基本數據類型,Integer是引用數據類型;
int默認值是0,Integer默認值是null;
int類型直接存儲數值,Integer需要實例化對象,指向對象的地址。

3.運行時異常與一般異常有何異同?

1.定義不同,運行時異常都是RuntimeException類及其子類異常,如NullPointerException、IndexOutOfBoundsException等。一般異常是RuntimeException以外的異常,類型上都屬於Exception類及其子類。
2.處理方法不同,運行時異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。對於一般異常,JAVA編譯器強制要求用戶必需對出現的這些異常進行catch並處理,否則程序就不能編譯通過。
3.發生原因不同,運行時異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度盡可能避免這類異常的發生。面對這種異常不管我們是否願意,只能自己去寫一大堆catch塊去處理可能的異常。

4.說出Servlet的生命周期,並說出Servlet和CGI的區別?

服務器啟動時(web.xml中配置load-on-startup=1,默認為0)或者第一次請求該servlet時,就會初始化一個Servlet對象,也就是會執行初始化方法init(ServletConfig conf),該servlet對象去處理所有客戶端請求,service(ServletRequest req,ServletResponse res)方法中執行,最后服務器關閉時,才會銷毀這個servlet對象,執行destroy()方法。

區別:
1)較好的可移植性。由於Java語言具有跨平台和可移植性強的特點,使得Sevlet也有較好的可移植性, 即無須修改代碼就可以部署到多種不同類型的Web服務器上。
2)執行效率高。由於CGI針對每個請求都會創建一一個進程來處理, 而Servlet針對每個請求創建一個線程來執行,而創建線程比創建進程的開銷要小,所以,與CGI相比,Servlet在交互過程中有更短的響應時間, 響應效率更高。
3)功能強大。Servlet可以與Web服務器進行交互,而CGI卻無法與Web服務器直接交互。
4)使用方便。Servlet 提供了許多非常有用的接口用來讀取或設置HTTP頭消息,處理Cookie和跟蹤會話狀態等。
5)可擴展性強。由於Servlet是由Java語言編寫的,所以,它具備了Java 語言的所有優勢

5.說出ArrayList,Vector,LinkedList的存儲性能和特性。

ArrayList 和 Vector 都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector 由於使用了 synchronized 方法(線程安全),
通常性能上較 ArrayList 差,而LinkedList 使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。

 

中科軟:

1.struts 核心控制器

Struts1:
ServletAction繼承於HttpServlet,是struts1.x中和核心控制器。
Struts 2:
FilterDispatcher是Struts 2框架的核心控制器,該控制器作為一個Filter運行在Web應用中,它負責攔截所有的用戶請求,當用戶請求到達時,該Filter會過濾用戶請求。如果用戶請求以action結尾,該請求將被轉入Struts 2框架處理。

 


2.hibernate和mybatis哪個好用為什么 線程實現方式


3.jstl

JSTL(Java server pages standarded tag library,即JSP標准標簽庫)是由JCP所制定的標准規范,它主要提供給Java Web開發人員一個標准通用的標簽庫,開發人員可以利用這些標簽取代JSP頁面上的Java代碼,從而提高程序的可讀性,降低程序的維護難度。

 


4.集合

集合有兩個父接口,一個collection,一個Map;
而collection有兩個子接口,一個List,一個Set;
List有兩個常見的實現類 ArrayList,LinkedList;
Set有兩個常見的實現類 HashSet,TreeSet;
Map有兩個常見的實現類 HashMap,HashTable。

 


5.過濾器 攔截器

1.過濾器(Filter):過濾器就是過濾的作用,在web開發中過濾一些我們指定的url,比如過攔截掉我們不需要的接口請求,修改請求(request)和響應(response)內容,完成CORS跨域請求等等
2.攔截器(Interceptor):是面向切面編程(AOP,Aspect Oriented Program)的。就是在Service或者一個方法前調用一個方法,或者在方法后調用一個方法。比如動態代理就是攔截器的簡單實現,在調用方法前打印出字符串(或者做其它業務邏輯的操作),也可以在調用方法后打印出字符串,甚至在拋出異常的時候做業務邏輯的操作。

 


6.jsp內置對象

1、request對象
request 該對象代表了客戶端的請求信息
2、response對象
response 代表的是對客戶端的響應,
3、session對象
session 對象是由服務器自動創建的與用戶請求相關的對象。
4、application對象
 application 對象可將信息保存在服務器中,直到服務器關閉,
5、out 對象
out 對象用於在Web瀏覽器內輸出信息,並且管理應用服務器上的輸出緩沖區。
6、pageContext 對象
pageContext 對象的作用是取得任何范圍的參數
7、config 對象
config 對象的主要作用是取得服務器的配置信息。
8、page 對象
page 對象代表JSP本身,只有在JSP頁面內才是合法的。 
9、exception 對象
exception 對象的作用是顯示異常信息

 


7.四大作用域

1.    page域:    只能在當前jsp頁面使用                (當前頁面)  
2.    request域: 只能在同一個請求中使用               (轉發)  
3.    session域: 只能在同一個會話(session對象)中使用  (私有的)  
4.    context域: 只能在同一個web應用中使用            (全局的)

 


8.Ajax

 

AJAX 可以使網頁實現異步更新。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

中科軟 

1.一個單例

 

單例模式
public class Singleton {
private Singleton(){
}
private static volatile Singleton instance = null;
public static Singleton getInstance() {
if (instance == null) {
synchronized(Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}

 

 

 

2.介紹線程死鎖

 

線程死鎖,當線程為了安全及同步時,用全局信號 量進行相互等待或是相互制約時程序 進入 了一個死鎖狀態 時(兩個線程都停掉了)叫線程死鎖。

 

 

 

3.AJAX怎么寫有什么用

 

$.ajax({
type: "POST",
url: "ShowProduct.aspx/GetDHList",
data: '{CategoryId:"' + CategoryId + '"}',
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (data) {
var item = eval(data.d);
var StrHtml = "";
for (var i in item) {}
}, async: false
});
第二種:
$(document).ready(function(){
$("#b01").click(function(){
htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
$("#myDiv").html(htmlobj.responseText);
});
});
第三種:
$.ajax({ url: "test.html", context: document.body, success: function(){
$(this).addClass("done");
}});

 

 

 

4.XML解析方式

 

DOM(Document Object Model) 生成和解析XML文檔。由W3C提供的接口,它將整個XML文檔讀入內存,構建一個DOM樹來對各個節點(Node)進行操作。

SAX(Simple API for XML) 生成和解析XML文檔。SAX不用將整個文檔加載到內存,基於事件驅動的API(Observer模式),用戶只需要注冊自己感興趣的事件即可。

DOM4J生成和解析XML文檔。dom4j是目前在xml解析方面是最優秀的(Hibernate、Sun的JAXM也都使用dom4j來解析XML),它合並了許多超出基本 XML 文檔表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用於大文檔或流化文檔的基於事件的處理

JDOM生成和解析XML 。 JDOM與DOM非常類似,它是處理XML的純JAVA API,API大量使用了Collections類,且JDOM僅使用具體類而不使用接口。

 

 

 

5.JDKJRE

 

JDK與JRE的區別
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顧名思義是java運行時環境,包含了java虛擬機,java基礎類庫。是使用java語言編寫的程序運行所需要的軟件環境,是提供給想運行java程序的用戶使用的。
JDK顧名思義是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包,是提供給程序員使用的。JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟件,還包含了java程序編寫所需的文檔和demo例子程序。

 

 

 

6.內存回收機制

 

分配內存與回收內存的標准是八個字:分代分配,分代回收。
由於字符串、對象和數組沒有固定大小,所有當他們的大小已知時,才能對他們進行動態的存儲分配。JavaScript程序每次創建字符串、數組或對象時,解釋器都必須分配內存來存儲那個實體。只要像這樣動態地分配了內存,最終都要釋放這些內存以便他們能夠被再用。

7.斷點快捷鍵

 

快捷鍵 功能描述 
F8 單步調試,不進入函數內部 
F7 單步調試,進入函數內部 
Shift+F7 選擇要進入的函數 
Shift+F8 跳出函數 
Alt+F9 運行到斷點 
Alt+F8 執行表達式查看結果 
F9 繼續執行,進入下一個斷點或執行完程序 
Ctrl+F8 設置/取消當前行斷點 
Ctrl+Shift+F8 查看斷點

 

 

 

8.自動裝箱拆箱

 

自動裝箱,就是自動將基本數據類型轉換為包裝器類型;自動拆箱,就是自動將包裝器類型轉換為基本數據類型

 

9.jquery

 

jQuery是一個快速、簡潔的JavaScript框架,它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優化HTML文檔操作、事件處理、動畫設計和Ajax交互。

 

 

 

10.jsp指令和動作各自原理

 

三個指令:
page 
include 
taglib 標簽指令
六個動作:
< jsp:include > 動態包含
< jsp:forward> 請求轉發 
< jsp:param> 設置請求參數
< jsp : useBean> 
< jsp : setProperty> 給指定的對象屬性賦值 
< jsp : getProperty >取出指定對象的屬性值 

 

 

 

 

中科軟

1.css樣式怎么定義

 

1.新建一個HTML頁面,命名為test.html,用於對CSS樣式定義的說明。
2.在test.html頁面定義一個div元素,並且通過<style type="text/...
3.給div定義CSS樣式,可以直接使用元素div作為選擇器來實現樣式定義。

 

 

 

2.oracle分頁

 

String sql = 
     "select * from " +  
     (select *,rownum rid from (select * from students order by postime desc) where rid<=" + pagesize*pagenumber + ") as t" + 
     "where t>" + pageSize*(pageNumber-1);

 

 

 

3.8種基本類型

 

 

 

 

4.final,finally,finalize的區別

 

一、final1、修飾符(關鍵字) 如果一個類被聲明為final,意味着它不能再派生新的子類,不能作為父類被繼承。
2、將變量或方法聲明為final,可以保證他們使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而以后的引用中只能讀取,不可修改,被聲明為final的方法也同樣只能使用,不能重載。
二、finally:
在異常處理時提供finally塊來執行清楚操作。如果拋出一個異常,那么相匹配的catch語句就會執行,然后控制就會進入finally塊,如果有的話。
三、finalize:
是方法名。java技術允許使用finalize()方法在垃圾收集器將對象從內存中清除之前做必要的清理工作。這個方法是在垃圾收集器在確定了,被清理對象沒有被引用的情況下調用的。
finalize是在Object類中定義的,因此,所有的類都繼承了它。子類可以覆蓋finalize()方法,來整理系統資源或者執行其他清理工作。

 

 

 

5.怎么啟動線程

 

繼承Thread類
1.自定義類MyThread繼承Thread類
2.MyThread類重寫run方法。
實現Runnable接口
1.自定義類MyRunnable實現Runnable接口
2.重寫run()方法
3.創建MyRunnable類的對象
4.創建Thread類的對象,並把步驟3創建的對象作為構造參數傳遞
5.啟動線程

 

 

 

6.java為什么是跨平台的

 

因為Java程序編譯之后的代碼不是能被硬件系統直接運行的代碼,而是一種“中間碼”——字節碼。然后不同的硬件平台上安裝有不同的Java虛擬機(JVM),由JVM來把字節碼再“翻譯”成所對應的硬件平台能夠執行的代碼。因此對於Java編程者來說,不需要考慮硬件平台是什么。所以Java可以跨平台。

 

 

 

7.get,post請求的區別

 

1、    Get請求提交的數據會在地址欄顯示出來,而post請求不會再地址欄顯示出來
2、    傳輸數據的大小
http Get請求由於瀏覽器對地址長度的限制而導致傳輸的數據有限制。而POST請求不會因為地址長度限制而導致傳輸數據限制。
3、    安全性,POST的安全性要比GET的安全性高。由於數據是會在地址中呈現,所以可以通過歷史記錄找到密碼等關鍵信息。

 

 

 

8.listset的區別

 

List是有序的Collection。Java List一共三個實現類: 分別是ArrayList、Vector和LinkedList。
Set是唯一的,不可重復的,常用的實現類有HashSet、TreeSet、LinkedHashSet

 

 

 

9.hashmap怎么用

 

HashMap根據鍵的hashCode值存儲數據,大多數情況下可以直接定位到它的值,因而具有很快 的訪問速度,但遍歷順序卻是不確定的。 HashMap最多只允許一條記錄的鍵為null,允許多條記 錄的值為 null。HashMap 非線程安全。

 

 

 

10.還有ajax怎么實現同步和異步

 

AJAX中根據async的值不同分為同步(async = false)和異步(async = true

 

 

 

 

11.還有文件傳輸怎么傳

第一種:以字符串傳參的方式發送到指定的接口取出其值(多個就采用數組)
第二種:采用流傳輸的方式傳接口,這種可以批量傳輸且,大小無限制,支持多種類型文件上傳

 12.sevrlet 生命周期

 

①服務器加載Sevrlet。
②創建Sevrlet,只有在請求Sevrlet時,才會調用構造方法,創建實例。
③init()初始化,創建Sevrlet實例后立即被調用,且只執行一次。
④service()處理用戶請求,可以被多次調用,每次請求都會調用service方法,實際用於響應請求的。
⑤destory()銷毀,只被調用一次,在當前Servlet所在的WEB應用被卸載前調用,用於釋放當前Servlet所占用的資源

 

 

 

 

 

 

  

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM