1、有關java實例變量,局部變量,類變量和final變量的說法,正確的是?
實例變量指的是類中定義的變量,即成員變量,如果沒有初始化,會有默認值。
類變量指的是用static修飾的屬性
final變量指的是用final 修飾的變量
2、關於 Socket 通信編程,描述正確的是:( )
服務器端通過new ServerSocket()創建TCP連接對象
服務器端通過TCP連接對象調用accept()方法創建通信的Socket對象
客戶端通過new Socket()方法創建通信的Socket對象
3、訪問權限控制從最大權限到最小權限依次為:public、 包訪問權限、protected和private 。( )
錯誤
解析:應該是:public>protected>默認(包訪問權限)>private,因為protected除了可以被同一包訪問,還可以被包外的子類所訪問
4、socket編程中,哪些socket的操作是不屬於服務端操作的()?
accept
listen
close
5、類方法中可以直接調用對象變量。( )
錯誤
解析:靜態方法中不能調用對象的變量,因為靜態方法在類加載時就初始化,對象變量需要在新建對象后才能使用
6、字符界面下接受用戶從鍵盤輸入,需要import的包是:( )
java.io包
7、由3 個“1”和 5 個“0”組成的 8 位二進制補碼,能表示的最小整數()
-125
既然求最小整數,那肯定先想到負數,則最高位(符號位)一定為1,原碼中肯定是1所在的位數越高,值越小,而補碼是由原碼取反加1得到的,則在補碼中1所在的位數一定要越低,即補碼為1000 0011;由補碼求得原碼:1111 1101=-(64+32+16+8+4+1)=-125;
8、ServletConfig接口默認是哪里實現的?
GenericServlet
9、從內存實現或者反射的角度來看,關於繼承的說法正確的是()。注:此處的繼承不代表能調用
子類將繼承父類的所有的數據域和方法
10、關於java集合下列說法正確的有哪些()
Collection接口是List接口和Set接口的父接口,通常情況下不被直接使用
11、true、false、null、sizeof、goto、synchronized 哪些是Java關鍵字?
goto
synchronized
12、Hashtable 和 HashMap 的區別是:
HashMap 是內部基於哈希表實現,該類繼承AbstractMap,實現Map接口
Hashtable 線程安全的,而 HashMap 是線程不安全的
Properties 類 繼承了 Hashtable 類,而 Hashtable 類則繼承Dictionary 類
HashMap允許將 null 作為一個 entry 的 key 或者 value,而 Hashtable 不允許。
13、創建數組的正確語句?( )
float f[][] = new float[6][6];
float []f[] = new float[6][6];
float [][]f = new float[6][6];
float [][]f = new float[6][];
14、關鍵字super的作用是?
用來訪問父類被隱藏的非私有成員變量
用來調用父類中被重寫的方法
用來調用父類的構造函數
15、下列屬於容器的組件有()
JPanel
16、在為傳統面向對象語言的程序做單元測試的時候,經常用到mock對象。Mock對象通過反射數。請問反射最大程度破壞了面向對象的以下哪個特性?
封裝
17、下列正確的 Java 語言標識符是( )
Sky
$Computer
NULL
18、某程序要求每次輸入只能是正整數,並且每次輸入的數值要求必須是100的倍數且小於等於500,則下列哪個是正確的無效等價類( )
(500,+∞)、任意大於0小於500的非100倍數的整數;
19、JDK中提供的java、javac、jar等開發工具也是用Java編寫的。
對
20、是面向對象的基本原則的是?
單一職責原則(Single-Resposibility Principle)
開放封閉原則(Open-Closed principle)
依賴倒置原則(Dependecy-Inversion Principle)
接口隔離原則(Interface-Segregation Principle)
21、URL u =new URL("http://www.123.com");。如果www.123.com不存在,則返回______。
http://www.123.com
22、描述正確? ()
echo $$返回登錄shell的PID和echo $? 返回上一個命令的狀態
**23、在 myjsp.jsp 中,下面的代碼說法正確的是: ( ) **
<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>
該頁面發生異常會轉向 error.jsp
存在 errorPage 屬性時,isErrorPage 是默認為 false
error.jsp 頁面一定要有isErrorPage 屬性且值為 true
24、哪些接口直接繼承自Collection接口()
List
Set
25、下列說法正確的是()?
一個進程是一個獨立的運行環境,可以被看做一個程序或者一個應用。而線程是在進程中執行的一個任務。Java運行環境是一個包含了不同的類和程序的單一進程。線程可以被稱為輕量級進程。線程需要較少的資源來創建和駐留在進程中,並且可以共享進程中的資源
ThreadLocal用於創建線程的本地變量,該變量是線程之間不共享的
26、下列說法正確的有( )
在類方法中調用本類的類方法時可直接調用
27、下面的Java賦值語句哪些是有正確的 ()
int i =1000;
char s = ‘\u0639’
Object o = ‘f’;
String s = "hello,world\0";
28、關於下面一段代碼,說法正確的是: ()
public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}
同一個對象,分別調用方法a和b,鎖住的是同一個對象
同一個對象,分別調用方法b和c,鎖住的不是同一個對象
同一個對象,分別調用方法a、b、c,鎖住的不是同一個對象
29、基本的Java語言函數存儲在以下哪個java包中?()
java.lang
解析:
java.lang包包含
包裝類
String 類
Math 類 —— 包含函數
Class 類
Object 類
1.lang包主要是集合類、時間處理模式、日期時間工具等各類常用工具包。
2.util包 包括基本Object類、Class類、String類、基本類型的包裝類、基本的數學類等最基本的類。
30、下列關於修飾符混用的說法,正確的是( )
abstract不能與final並列修飾同一個類
abstract 類中不建議有private的成員
abstract 方法必須在abstract類或接口中
31、對於同一類中的兩個方法 , 在判斷它們是不是重載方法時 , 肯定考慮( )
參數個數
參數類型
參數順序
解析:
重載:類中可以創建多個方法,它們具有相同的名字,但具 有不同的參數和不同的定義。調用方法時通過傳遞 給它們的不同參數個數和參數類型 給它們的不同參數個數和參數類型 給它們的不同參數個數和參數類型 來決定具體使用哪個方法 , 這就是多態性。
重寫 Overriding 是父類與子類之間多態性的一種表現, 在子類中定義某方法與其父類有相同的名稱和參數。
重載 Overloading 是一個類中多態性 的一種表現。
重載的時候,方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同 也可以不相同。 無法以 返回型別 作為重載函數的區分標准。而且編譯的時候只有返回值不同,會報錯。及使不報錯,運行時無法區分調用哪個方法
32、對於子類的構造函數說明,敘述中正確的是( )。
子類不能繼承父類的無參構造函數。
子類可以在自己的構造函數中使用super關鍵字來調用父類的含參數構造函數,但這個調用語句必須是子類構造函數的第一個可執行語句。
在創建子類的對象時,若不含帶參構造函數,將先執行父類的無參構造函數,然后再執行自己的無參構造函數。
33、jdk1.8版本之前的前提下,接口和抽象類描述正確的有( )
接口沒有構造函數
抽象類不允許多繼承
34、final、finally和finalize的區別中,說法正確的有?
final用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
35、以下哪些方法可以取到http請求中的cookie值()?
request.getHeader
request.getCookies
36、說法正確的是()
在類方法中調用本類的類方法時可直接調用
解析:
先要理解什么是類的方法,所謂類的方法就是指類中用static 修飾的方法(非static 為實例方法),比如main 方法,那么可以以main 方法為例,可直接調用其他類方法,必須通過實例調用實例方法,this 關鍵字不是這么用的
37、關於final說法正確的是? ( )
final類的方法能否被同一個包的類訪問不是由final決定
解析:
final變量,如果是基本數據類型,則其數值一旦初始化后就不能被改變。如果是引用類型的變量,則對其初始化后,便不能再指向另一個對象,但是其里面的值是可以改變的。引用變量所指向的對象中的內容是可以改變的。
38、關於hibernate核心接口說明正確的是
Configuration 接口:配置Hibernate,根據其啟動hibernate,創建SessionFactory 對象
Query 和Criteria 接口:執行數據庫的查詢
Transaction 接口:管理事務
39、正確的是( )。
Frame 中可以設置Panel。
Applet 中可以包含按鈕。
Dialog 中不可以設置菜單條。
40、變量a是一個64位有符號的整數,初始值用16進制表示為:0x7FFFFFFFFFFFFFFF;變量b是一個64位有符號的整數,初始值用16進制表示為:0x8000000000000000。則a+b的結果用10進制表示為多少?
-1
解析:
(1)a+b的16進制表示為:OxFFFFFFFFFFFFFFF(16位F),轉為2進制為111……111(64位1,每個F->4位2)。
(2)有符號數:是針對二進制來講的。用最高位作為符號位,“0”代表“+”,“1”代表“-”。所以a+b的結果是一個負數。
(3)計算機中負數是以補碼的形式保存的,將補碼轉換成原碼的計算方式如下:
①. 對於正數,原碼與補碼相同。
②.對於負數,將補碼除符號位之外,按位取反,末位加1,即得到原碼。
(4)a + b = 111……111(64位1)
取反:100……000(1位1,后面63位0)
加一:100……00(中間62位0)
10進制:-1。
41、java程序內存泄露的最直接表現是( )
程序拋內存控制的Exception
42、哪些是合法的 Java 標識符?( )
FirstJavaApplet
First_Applet
解析:
Java標識符:
1、標識符由26個英文字符大小寫(a~z,A~Z)、數字(0~9)、下划線(_)和美元符號($)組成;
2、不能以數字開頭,不能是關鍵字;
3、嚴格區分大小寫;
4、標識符的可以為任意長度;
43、關於ThreadLocal類 說法正確的是
ThreadLocal是采用哈希表的方式來為每個線程都提供一個變量的副本
ThreadLocal保證各個線程間數據安全,每個線程的數據不會被另外線程訪問和破壞
44、下列容器中,哪些容器按 key 查找的復雜度為 O(log(n)) ()
std::multimap
std::map
45、關於身份證號,正確的正則表達式為( )
isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
46、關於Java語言的內存回收機制,最正確的一項是
內存回收線程負責釋放無用內存
解析:
java虛擬機中的垃圾回收機制是一個類,當該對象沒有更多的應用指向它時,就會被垃圾回收器給回收,從而釋放資源。該機制不可以程序員手動調用去回收某個對象,系統自動回去調用,當然程序員可以建議垃圾回收器回收某個對象。所以java中無需程序員手動釋放內存,系統自動釋放無用內存。
47、默認RMI采用的是什么通信協議?
TCP/IP
解析:
RMI采用的是TCP/IP協議
RMI采用的是TCP/IP協議
RMI采用的是TCP/IP協議
48、一般情況下,選項是關系數據模型與對象模型之間匹配關系?
表對應類
記錄對應對象
表的字段對應類的屬性
49、J2EE中常用的名詞解釋正確的是?
EJB容器:Enterprise java bean 容器
JMS:JAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。
JAF:JAVA安全認證框架。提供一些安全控制方面的框架。
50、說法正確的是()
EJB容器發生錯誤,persistent方式下JMS容器仍然會將消息發送
51、有關maven和ant的描述,描述正確的是?
Ant 沒有正式的約定如一個一般項目的目錄結構,你必須明確的告訴 Ant 哪里去找源代碼
Maven 擁有約定,因為你遵循了約定,它已經知道你的源代碼在哪里
Ant構建文件默認命名為build.xml,Maven默認構建文件為pom.xml
52、關於Java描述正確的有( )
native關鍵字表名修飾的方法是由其它非Java語言編寫的
53、有關struts1和struts2的區別,描述正確的是?
Struts1要求Action類繼承一個抽象基類。Struts 2 Action類可以實現一個Action接口
Struts1 Action 依賴於Servlet API,Struts 2 Action不依賴於容器,允許Action脫離容器單獨被測試
Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL
54、如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()注:一個元素進棧后可以馬上出棧,不用等全部進棧
e2,e4,e3,e1
e2,e3,e4,e1
解析:
棧的規則:先進后出
例如進棧序列為:1,2,3,4
全部進棧完成再出棧的序列則為:4,3,2,1
注:一個元素進棧后可以馬上出棧,不用等全部進棧
例如:2這個元素一進就想出了,后面的3,4正常進棧再出棧。
那么出棧順序就是:2,4,3,1 (1是第一個進的,進的時候也沒有立刻出去,所以被壓在棧底,最后才能出去)
例如:2這個元素一進就想出了,后面的3一進也想立刻想出去了,后面的4跟着進棧
那么出棧順序就是:2,3,4,1 (2,3都進了立刻出 所以這時4壓着的是1,所以出棧順序是4在前面)
55、程序中常采用變量表示數據,變量具有名、地址、值、作用域、生存期等屬性。關於變量的敘述,()是正確的。
根據作用域規則,在函數中定義的變量只能在函數中引用
在函數中定義的變量,其生存期為整個程序執行期間
在函數中定義的變量不能與其所在函數的形參同名
56、在你面前有一個n階的樓梯,你一步只能上1階或2階。請問,當N=11時,你可以采用多少種不同的方式爬完這個樓梯();當N=9時呢?
144
55
57、java8中,忽略內部接口的情況,能用來修飾interface里的方法的有( )
public
static
58、在Java語言中,關於字符集編碼(Character set encoding)和國際化(i18n)的問題,哪些是正確的?
Java的char類型,通常以UTF-16 Big Endian的方式保存一個字符。
實現國際化應用常用的手段是利用ResourceBundle類
59、哪些賦值語句是正確的()
long test=012
float f=-412
double d=0x12345678
60、Java是一門支持反射的語言,基於反射為Java提供了豐富的動態性支持,下面關於Java反射的描述,哪些是正確的:( )
通過反射可以動態的實現一個接口,形成一個新的類,並可以用這個類創建對象,調用對象方法
通過反射,可以突破Java語言提供的對象成員、類成員的保護機制,訪問一般方式不能訪問的成員
Java反射機制提供了字節碼修改的技術,可以動態的修剪一個類
61、敘述正確的是
實例方法可直接調用本類的實例方法
62、關於 Socket 通信編程,描述正確的是:( )
服務器端通過new ServerSocket()創建TCP連接對象
服務器端通過TCP連接對象調用accept()方法創建通信的Socket對象
客戶端通過new Socket()方法創建通信的Socket對象
63、說法正確的是()
在類方法中調用本類的類方法時可直接調用
64、屬於HttpServletResponse接口完成的功能?
設置HTTP頭標
設置cookie
輸出返回數據
65、關於java編譯和運行命令敘述正確的是? ( )
運行“java Scut”
運行“javac Scut.java”的輸出文件是Scut.class
java這個命令的運行對象是Scut.class
66、在Java中,說法正確的有( )
數組是一種對象
67、java中關於繼承的描述正確的是()
一個子類只能繼承一個父類
繼承具有傳遞性
父類一般具有通用性,子類更具體
解析:
子類不可以繼承父類的構造方法,只可以調用父類的構造方法。子類中所有的構造函數都會默認訪問父類中的空參數構造函數,這是因為子類的構造函數內第一行都有默認的super()語句。super()表示子類在初始化時調用父類的空參數的構造函數來完成初始化。一個類都會有默認的空參數的構造函數,若指定了帶參構造函數,那么默認的空參數的構造函數,就不存在了。這時如果子類的構造函數有默認的super()語句,那么就會出現錯誤,因為父類中沒有空參數的構造函數。因此,在子類中默認super()語句,在父類中無對應的構造函數,必須在子類的構造函數中通過this或super(參數)指定要訪問的父類中的構造函數。
68、說法正確的是?()
一個線程調用yield方法,可以使具有相同優先級線程獲得處理器
在Java中,高優先級的可運行的線程會搶占低優先級線程的資源
69、類型為Final類型的為()
StringBuffer
String
70、一個以". java"為后綴的源文件,說法是正確的?
只能有一個與文件名相同的類,可以包含其他類
71、 try 和 catch 不需要一定共存😋,try是嘗試對其中代碼捕獲異常,catch是捕獲異常並且可以處理異常。。你可以 try 來搜尋異常,不去捕獲。也就是不去catch 這是可以的。。至於提示加finally,finally的意思是,其中的代碼一定會執行,也就是說,如果try 其中的代碼產生了異常,如果有catch 則會直接跳轉到catch部分,如果沒有catch 會跳轉到‘}’后面的代碼,這樣,以上方法就沒有一個確定的返回值,所以要加finally 作為方法出異常以后的返回的結果
72、如果一個list初始化為{5,3,1},執行以下代碼后,其結果為()?
nums.add(6);
nums.add(0,4);
nums.remove(1);
[4, 3, 1, 6]
解析:
初始化為{5,3,1}
nums.add(6)后list為{5,3,1,6}
nums.add(0,4)是在0號索引上添加數字4得到list為{4,5,3,1,6}
nums.remove(1)是將1號索引上的5進行remove得到list為{4,3,1,6}
73、屬於Swing的頂層容器?()
JApplet
JDialog
JFrame
74、Math.floor(-8.5)=( )
(double)-9.0
解析:
Math.floor() 表示向下取整,返回double類型 (floor---地板)
Math.ceil() 表示向上取整,返回double類型 (ceil---天花板)
Math.round() 四舍五入,返回int類型
75、有關struts1和struts2的區別,描述正確的是?
Struts1要求Action類繼承一個抽象基類。Struts 2 Action類可以實現一個Action接口
Struts1 Action 依賴於Servlet API,Struts 2 Action不依賴於容器,允許Action脫離容器單獨被測試
Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL
76、如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()
注:一個元素進棧后可以馬上出棧,不用等全部進棧
e2,e4,e3,e1
e2,e3,e4,e1
解析:
棧的規則:先進后出
例如進棧序列為:1,2,3,4
全部進棧完成再出棧的序列則為:4,3,2,1
注:一個元素進棧后可以馬上出棧,不用等全部進棧
例如:2這個元素一進就想出了,后面的3,4正常進棧再出棧。
那么出棧順序就是:2,4,3,1 (1是第一個進的,進的時候也沒有立刻出去,所以被壓在棧底,最后才能出去)
例如:2這個元素一進就想出了,后面的3一進也想立刻想出去了,后面的4跟着進棧
那么出棧順序就是:2,3,4,1 (2,3都進了立刻出 所以這時4壓着的是1,所以出棧順序是4在前面)
77、可以正確獲取結果集的有
Statement sta=con.createStatement();<br>ResultSet rst=sta.executeQuery(“select * from book”);
ResultSet rst=pst.executeQuery(“select * from book”);
78、關於 Socket 通信編程,描述正確的是:( )
服務器端通過new ServerSocket()創建TCP連接對象
服務器端通過TCP連接對象調用accept()方法創建通信的Socket對象
客戶端通過new Socket()方法創建通信的Socket對象
79、Math.round(11.5) 等於多少 (). Math.round(-11.5) 等於多少 ( ).
12 ,-11
80、對於非運行時異常,程序中一般可不做處理,由java虛擬機自動進行處理。
錯誤
解析:
Java異常都繼承自類Throwable,Throwable子類有Error和Exception,其中Exception又分為運行時異常和編譯時異常。編譯時異常是未雨綢繆性質的異常,是防范,需要顯示處理。運行時異常是程序員問題造成,並不強制進行顯示處理。
81、是java concurrent包下的4個類,選出差別最大的一個
Future
82、說法正確的是()
EJB容器發生錯誤,persistent方式下JMS容器仍然會將消息發送
83、語句正確的是:
形式參數可被視為local variable
84、java中提供了哪兩種用於多態的機制
通過子類對父類方法的覆蓋實現多態
利用重載來實現多態.即在同一個類中定義多個同名的不同方法來實現多態。
85、關於Java的一些概念,描述是正確的:( )
通過try … catch … finally語句,finally中的語句部分無論發生什么異常都會得到執行
Java通過synchronized進行訪問的同步,synchronized作用非靜態成員方法和靜態成員方法上同步的目標是不同的
86、哪些操作會使線程釋放鎖資源?
sleep()
wait()
解析:
1.sleep()方法
在指定時間內讓當前正在執行的線程暫停執行,但不會釋放“鎖標志”。不推薦使用。
sleep()使當前線程進入阻塞狀態,在指定時間內不會執行。
2.wait()方法
在其他線程調用對象的notify或notifyAll方法前,導致當前線程等待。線程會釋放掉它所占有的“鎖標志”,從而使別的線程有機會搶占該鎖。
當前線程必須擁有當前對象鎖。如果當前線程不是此鎖的擁有者,會拋出IllegalMonitorStateException異常。
喚醒當前對象鎖的等待線程使用notify或notifyAll方法,也必須擁有相同的對象鎖,否則也會拋出IllegalMonitorStateException異常。
waite()和notify()必須在synchronized函數或synchronized block中進行調用。如果在non-synchronized函數或non-synchronized block中進行調用,雖然能編譯通過,但在運行時會發生IllegalMonitorStateException的異常。
3.yield方法
暫停當前正在執行的線程對象。
yield()只是使當前線程重新回到可執行狀態,所以執行yield()的線程有可能在進入到可執行狀態后馬上又被執行。
yield()只能使同優先級或更高優先級的線程有執行的機會。
4.join方法
等待該線程終止。
等待調用join方法的線程結束,再繼續執行。如:t.join();//主要用於等待t線程運行結束,若無此句,main則會執行完畢,導致結果不可預測。