關于湖南華諾集團筆試題目的內容,請看如下文章,如有錯誤敬請諒解!
湖南華諾集團筆試題目
1、Double、Class是final類,不能被繼承;Math、Thread可以被繼承
2、 當前類 同一package 子孫類 其它package
Public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×
3、Collection的4個主要接口:List、Set、BeanContext、SortedSet
4、Error和Exception的區(qū)別
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發(fā)生的情況。
5、多線程和同步的幾種實現方式
多線程:主要有兩種 一種是繼承Thread類,一種是實現Runnable接口
同步有兩種方法。一種同步方法,一種同步代碼!分別是synchronized,wait與notify
6、打印昨天的當前時間
long today = System.currentTimeMillis();
long yestory = today – 1000*60*60*24 ;
Date time = new Date( yestory ) ;
System.out.println(time.getDate()+”號”+time.getHours()+”時”+time.getMinutes()+”分”+time.getSeconds()+”秒”)
7、Jsp重定向的方法
服務器端的重定向可以有兩種方式,一是使用HttpServletResponse的
sendRedirect()方法,一是使用RequestDispatcher的forward()方法。
8、Jsp頁面間數據如何傳遞
a.設置session變量,session.setAttribute(“a”,”b”);b.地址方式傳值:show.jsp?id=變量值
9、Jsp的內置對象:request、response、session、application、out、
java.lang.Object、config、exception、pageContext
10、forward、redirect的區(qū)別
forward僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;
redirect則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。
所以,forward更加高效,在forward可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接。
在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。
從地址欄顯示來說 forward是服務器請求資源,服務器直接訪問目標地址的
URL,把那個URL的響應內容讀取過來,然后把這些內容 再發(fā)給瀏覽器.瀏覽器根本不知道服務器發(fā)送的內容從哪里來的,所以它的地址欄還是原來的地址. redirect是服務端根據邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.所 以redirect等于客戶端向服務器端發(fā)出兩次request,同時也接受兩次response。
11、多態(tài)的概念
多態(tài)是面向對象的重要特性,簡單點說:“一個接口,多種實現”,就是同一種事物表現出的多種形態(tài)
多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應。多態(tài)性包括參數化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應用程序函數同名問題。
12、Application的生命周期
application對象是一個特別重要的JSP對象,它存在于服務器的內存空間中,服務器一旦啟動,就會自動產生一個application對象,除非服務器被關閉,否則這個application對象將一直保持下去。在application對象的生命周期中,在當前服務器上運行的每一個JSP程序都可以任意存取和這個application對象綁定的參數(或者Java對象)的值。application對象的這些特性為我們在多個JSP程序中、多個用戶共享某些全局信息(如當前的在線人數等)提供了方便。由此我們可以不借助數據庫就實現聊天室的功能。
13、list、set的區(qū)別
list是列表(接口),是可以允許出現重復值的,
set是集合,不允許出現重復值
ArrayList和HashMap是異步的,
Vector和HashTable是同步的,
所以Vector和HashTable是線程安全的,
而ArrayList和HashMap并不是線程安全的。
因為同步需要花費機器時間,所以Vector和HashTable的執(zhí)行效率要低于ArrayList和HashMap。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
14、如何區(qū)別set中的元素
在比較時先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數據類型及引用
Equals:主要是對象或對象引用的比較。
15、 抽象類與接口的區(qū)別
1,抽象類里可以有構造方法,而接口內不能有構造方法。
2,抽象類中可以有普通成員變量,而接口中不能有普通成員變量。
3,抽象類中可以包含非抽象的普通方法,而接口中所有的方法必須是抽象的,不能有非抽象的普通方法。
4,抽象類中的抽象方法的訪問類型可以是public ,protected和默認類型,但接口中的抽象方法只能是public類型的,并且默認即為public abstract類型。
5,抽象類中可以包含靜態(tài)方法,接口內不能包含靜態(tài)方法。
6,抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可以任意,但接口中定義的變量只能是public static類型,并且默認為public static類型。
7,一個類可以實現多個接口,但只能繼承一個抽象類。
再補充點兩者在應用上的區(qū)別:
接口更多的是在系統(tǒng)框架設計方法發(fā)揮作用,主要定義模塊之間的通信,而抽象類在代碼實現方面發(fā)揮作用,可以實現代碼的重用
16、為什么要用Class.forName方法
從JVM的角度看,我們使用關鍵字new創(chuàng)建一個類的時候,這個類可以沒有被加載。但是使用newInstance()方法的時候,就必須保證:1、這個類已經加載;2、這個類已經連接了。而完成上面兩個步驟的正是Class的靜態(tài)方法forName()所完成的,這個靜態(tài)方法調用了啟動類加載器,即加載java API的那個加載器。
現在可以看出,newInstance()實際上是把new這個方式分解為兩步,即首先調用Class加載方法加載某個類,然后實例化。 這樣分步的好處是顯而易見的。我們可以在調用class的靜態(tài)加載方法forName時獲得更好的靈活性,提供給了一種降耦的手段。
最后用最簡單的描述來區(qū)分new關鍵字和newInstance()方法的區(qū)別: newInstance: 弱類型。低效率。只能調用無參構造。 new: 強類型。相對高效。能調用任何public構造。
17、java連接池的使用
18、數據庫的實例與用戶的概念
一個Oracle實例(Oracle Instance)有一系列的后臺進程(Backguound Processes)和內存結構(Memory Structures)組成
19、RMI的基類有哪些
20、如何訪問不同的數據庫