1、與InputStream流相對應(yīng)的Java系統(tǒng)的“標(biāo)準(zhǔn)輸入對象”是
System.in
3、字符界面下接受用戶從鍵盤輸入,需要import的包是
java.io包
4、java中將ISO8859-1字符串轉(zhuǎn)成GB2312編碼,語句為
new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
5、socket編程中,以下哪個socket的操作是不屬于服務(wù)端操作的
accept
listen
close
6、Java以下描述正確的有
native關(guān)鍵字表名修飾的方法是由其它非Java語言編寫的
7、在一個基于分布式的游戲服務(wù)器系統(tǒng)中,不同的服務(wù)器之間,哪種通信方式是不可行的
管道
可行的是:
消息隊列
高速緩存數(shù)據(jù)庫
套接字
8、某程序要求每次輸入只能是正整數(shù),并且每次輸入的數(shù)值要求必須是100的倍數(shù)且小于等于500,則下列哪個是正確的無效等價類
(500,+∞)、任意大于0小于500的非100倍數(shù)的整數(shù);
9、哪個類包含方法flush()
OutputStream
10、正則表達(dá)式中,表示匹配非數(shù)字字符的字符是
\D
11、Math.floor(-8.5)=( )
(double)-9.0
12、對于JVM內(nèi)存配置參數(shù),其最小內(nèi)存值和Survivor區(qū)總大小分別是
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
10240m,2048m
13、如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是()注:一個元素進(jìn)棧后可以馬上出棧,不用等全部進(jìn)棧
e2,e4,e3,e1
e2,e3,e4,e1
14、關(guān)于final關(guān)鍵字說法正確的是
final修飾的類肯定不能被繼承
final修飾的變量不允許被再次賦值
15、若有定義:byte[]x={11,22,33,﹣66};其中0≤k≤3,則對x數(shù)組元素正確的引用是
x[5-3]
x[k]
x[0]
16、java中將ISO8859-1字符串轉(zhuǎn)成GB2312編碼,語句為
new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
17、哪個命令能夠獲取JVM的內(nèi)存映像
jmap
18、關(guān)于struts框架,那些說法是正確的
Struts框架基于MVC模式
19、從運行層面上來看,從四個選項選出不同的一個
Python
Python是解釋執(zhí)行的,Java語言都需要先編譯
20、java中Hashtable, Vector, TreeSet, LinkedList哪些線程是安全的
Hashtable
Vector
21、關(guān)于OutOfMemoryError,說法正確的是
java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize這個參數(shù)的值的話,這個問題通常會得到解決。
java.lang.OutOfMemoryError: Requested array size exceeds VM limit當(dāng)你正準(zhǔn)備創(chuàng)建一個超過虛擬機允許的大小的數(shù)組時,這條錯誤將會出現(xiàn)
java.lang.OutOfMemoryError: Java heap space 一般情況下解決這個問題最快的方法就是通過-Xmx參數(shù)來增加堆的大小
22、在Java中,說法正確的有
數(shù)組是一種對象
23、對于線程局部存儲TLS(thread local storage),表述正確的是
解決多線程中的對同一變量的訪問沖突的一種技術(shù)
TLS會為每一個線程維護(hù)一個和該線程綁定的變量的副本
Java平臺的java.lang.ThreadLocal是TLS技術(shù)的一種實現(xiàn)
24、正確的有
call by value不會改變實際參數(shù)的數(shù)值
call by reference能改變實際參數(shù)的參考地址
call by reference能改變實際參數(shù)的內(nèi)容
25、Java是一門支持反射的語言,基于反射為Java提供了豐富的動態(tài)性支持,下面關(guān)于Java反射的描述,哪些是正確的
通過反射可以動態(tài)的實現(xiàn)一個接口,形成一個新的類,并可以用這個類創(chuàng)建對象,調(diào)用對象方法
通過反射,可以突破Java語言提供的對象成員、類成員的保護(hù)機制,訪問一般方式不能訪問的成員
Java的反射機制會給內(nèi)存帶來額外的開銷。例如對永生堆的要求比不通過反射要求的更多
26、JDK提供的用于并發(fā)編程的同步器有哪些?
Semaphore
CyclicBarrier
CountDownLatch
27、關(guān)于Java中的ClassLoader下面的哪些描述是正確的
默認(rèn)情況下,Java應(yīng)用啟動過程涉及三個ClassLoader: Boostrap, Extension, System
類裝載器需要保證類裝載過程的線程安全
所有ClassLoader裝載的類都來自CLASSPATH環(huán)境指定的路徑
28、true、false、null、sizeof、goto、synchronized 哪些是Java關(guān)鍵字
goto
synchronized
29、在Java中,HashMap中是用哪些方法來解決哈希沖突的
鏈地址法
30、屬于屬于HttpServletResponse接口完成的功能
設(shè)置HTTP頭標(biāo)
設(shè)置cookie
輸出返回數(shù)據(jù)
31、是面向?qū)ο蟮幕驹瓌t的是?
單一職責(zé)原則(Single-Resposibility Principle)
開放封閉原則(Open-Closed principle)
依賴倒置原則(Dependecy-Inversion Principle)
接口隔離原則(Interface-Segregation Principle)
32、程序能夠正確的實現(xiàn)了GBK編碼字節(jié)流到UTF-8編碼字節(jié)流的轉(zhuǎn)換
dst=new String(src,"GBK").getBytes("UTF-8")
33、在一個基于分布式的游戲服務(wù)器系統(tǒng)中,不同的服務(wù)器之間,通信方式是可行的
消息隊列
高速緩存數(shù)據(jù)庫
套接字
34、抽象類方法的訪問權(quán)限默認(rèn)都是public
錯誤
35、有關(guān)JAVA異常類的描述,說法正確的是
異常的繼承結(jié)構(gòu):基類為Throwable,Error和Exception繼承Throwable,RuntimeException和IOException等繼承Exception
非RuntimeException一般是外部錯誤(非Error),其必須被 try{}catch語句塊所捕獲
Error類體系描述了Java運行系統(tǒng)中的內(nèi)部錯誤以及資源耗盡的情形,Error不需要捕捉
36、哪些項屬于優(yōu)化Hibernate所鼓勵的
不用一對一,用多對一取代
配置對象緩存,不使用集合緩存
繼承類使用顯式多態(tài)
37、關(guān)于程序編譯說法正確的是
java在運行時才進(jìn)行翻譯指令
38、有關(guān)Java的說法正確的是
一個類可以實現(xiàn)多個接口
protected成員在子類可見性可以修改
通過super可以調(diào)用父類構(gòu)造函數(shù)
String是不可修改的,且java運行環(huán)境中對string對象有一個對象池保存
39、有關(guān)servlet的層級結(jié)構(gòu)和常用的類,說法正確的有
GenericServlet類:抽象類,定義一個通用的、獨立于底層協(xié)議的Servlet。
大多數(shù)Servlet通過從GenericServlet或HttpServlet類進(jìn)行擴展來實現(xiàn)
ServletConfig接口定義了在Servlet初始化的過程中由Servlet容器傳遞給Servlet得配置信息對象
HttpServletRequest接口擴展ServletRequest接口,為HTTP Servlet提供HTTP請求信息
40、正確的有
call by value不會改變實際參數(shù)的數(shù)值
call by reference不能改變實際參數(shù)的參考地址
call by reference能改變實際參數(shù)的內(nèi)容
41、關(guān)于Java的一些概念,哪些描述是正確的
通過try … catch … finally語句,finally中的語句部分無論發(fā)生什么異常都會得到執(zhí)行
Java通過synchronized進(jìn)行訪問的同步,synchronized作用非靜態(tài)成員方法和靜態(tài)成員方法上同步的目標(biāo)是不同的
42、jvm中垃圾回收分為scanvenge gc和full GC,其中full GC觸發(fā)的條件可能有哪些
老年代滿
持久代滿
System.gc()
43、下列容器中,哪些容器按 key 查找的復(fù)雜度為 O(log(n))
std::multimap
std::map
44、以下類型為Final類型的為
StringBuffer
String
45、那個數(shù)據(jù)結(jié)構(gòu)是適用于"數(shù)據(jù)必須以相反的順序存儲然后檢索" ?
Stack
46、在Java中,以下關(guān)于方法重載和方法重寫描述正確的是
方法重寫的返回值類型必須相同或相容。(或是其子類)
47、以下哪一項正則能正確的匹配網(wǎng)址: http://www.bilibili.com/video/av21061574
/^(http:\/\/)?(\w+)\.bilibili\.com\/?video\/av(\d{1,8})\/?$/
48、有關(guān)JAVA異常類的描述,說法正確的是
異常的繼承結(jié)構(gòu):基類為Throwable,Error和Exception繼承Throwable,RuntimeException和IOException等繼承Exception
非RuntimeException一般是外部錯誤(非Error),其必須被 try{}catch語句塊所捕獲
Error類體系描述了Java運行系統(tǒng)中的內(nèi)部錯誤以及資源耗盡的情形,Error不需要捕捉
49、String s = new String("xyz");創(chuàng)建了幾個StringObject?
兩個或一個都有可能
解析:
1.String對象的兩種創(chuàng)建方式:
第一種方式: String str1 = "aaa"; 是在常量池中獲取對象("aaa" 屬于字符串字面量,因此編譯時期會在常量池中創(chuàng)建一個字符串對象),
第二種方式: String str2 = new String("aaa") ; 一共會創(chuàng)建兩個字符串對象一個在堆中,一個在常量池中(前提是常量池中還沒有 "aaa" 字符串對象)。
System.out.println(str1==str2);//false
2.String類型的常量池比較特殊。它的主要使用方法有兩種:
直接使用雙引號聲明出來的String對象會直接存儲在常量池中。
如果不是用雙引號聲明的String對象,可以使用 String 提供的 intern 方法。 String.intern() 是一個 Native 方法,它的作用是: 如果運行時常量池中已經(jīng)包含一個等于此 String 對象內(nèi)容的字符串,則返回常量池中該字符串的引用; 如果沒有,則在常量池中創(chuàng)建與此 String 內(nèi)容相同的字符串,并返回常量池中創(chuàng)建的字符串的引用。
String s1 = new String("AAA");
String s2 = s1.intern();
String s3 = "AAA";
System.out.println(s2);//AAA
System.out.println(s1 == s2);//false,因為一個是堆內(nèi)存中的String對象一個是常量池中的String對象,
System.out.println(s2 == s3);//true, s2,s3指向常量池中的”AAA“
50、字段聲明中哪一個在interface主體內(nèi)是合法的
public static int answer = 42;
51、在各自最優(yōu)條件下,對N個數(shù)進(jìn)行排序,哪個算法復(fù)雜度最低的是
插入排序
52、關(guān)于java集合下列說法正確的有哪些
Collection接口是List接口和Set接口的父接口,通常情況下不被直接使用
53、在Java中,下列說法正確的有
數(shù)組是一種對象
54、有關(guān)Java的說法正確的是
一個類可以實現(xiàn)多個接口
protected成員在子類可見性可以修改
通過super可以調(diào)用父類構(gòu)造函數(shù)
String是不可修改的,且java運行環(huán)境中對string對象有一個對象池保存
55、java中關(guān)于繼承的描述正確的是
一個子類只能繼承一個父類
繼承具有傳遞性
父類一般具有通用性,子類更具體
56、哪種方式實現(xiàn)的單例是線程安全的
枚舉
靜態(tài)內(nèi)部類
雙檢鎖模式
餓漢式
57、關(guān)于Java的一些概念,描述是正確的
通過try … catch … finally語句,finally中的語句部分無論發(fā)生什么異常都會得到執(zhí)行
Java通過synchronized進(jìn)行訪問的同步,synchronized作用非靜態(tài)成員方法和靜態(tài)成員方法上同步的目標(biāo)是不同的
58、Java.Thread的方法resume()負(fù)責(zé)重新開始被以下哪個方法中斷的線程的執(zhí)行
suspend
59、下面有關(guān) JAVA 異常類的描述,說法正確的有
異常的繼承結(jié)構(gòu):基類為 Throwable,Error 和 Exception 。實現(xiàn) Throwable, RuntimeException 和 IOException 等繼承 Exception
非 RuntimeException 一般是外部錯誤(不考慮Error的情況下),其可以在當(dāng)前類被 try{}catch 語句塊所捕獲
Error 類體系描述了 Java 運行系統(tǒng)中的內(nèi)部錯誤以及資源耗盡的情形,Error 不需要捕捉
60、與InputStream流相對應(yīng)的Java系統(tǒng)的“標(biāo)準(zhǔn)輸入對象”是
System.in
61、運用哪個命令能夠獲取JVM的內(nèi)存映像
jmap
62、有關(guān)jdbc statement的說法正確的是
JDBC提供了Statement、PreparedStatement 和 CallableStatement三種方式來執(zhí)行查詢語句,其中 Statement 用于通用查詢, PreparedStatement 用于執(zhí)行參數(shù)化查詢,而 CallableStatement則是用于存儲過程
對于PreparedStatement來說,數(shù)據(jù)庫可以使用已經(jīng)編譯過及定義好的執(zhí)行計劃,由于 PreparedStatement 對象已預(yù)編譯過,所以其執(zhí)行速度要快于 Statement 對象”
PreparedStatement可以阻止常見的SQL注入式攻擊
63、在Java中,HashMap中是用哪些方法來解決哈希沖突的
鏈地址法
64、屬于算法結(jié)構(gòu)的是
輸入數(shù)據(jù)
處理數(shù)據(jù)
輸出結(jié)果
65、java用()機制實現(xiàn)了進(jìn)程之間的同步執(zhí)行
監(jiān)視器
66、變量a是一個64位有符號的整數(shù),初始值用16進(jìn)制表示為:0Xf000000000000000; 變量b是一個64位有符號的整數(shù),初始值用16進(jìn)制表示為:0x7FFFFFFFFFFFFFFF。 則a-b的結(jié)果用10進(jìn)制表示為多少
2^62+2^61+2^60+1
67、DBMS 中實現(xiàn)事務(wù)持久性的子系統(tǒng)是()
恢復(fù)管理子系統(tǒng)
68、哪些流類屬于面向字符的流
BufferedWriter
InputStreamReader
69、哪些內(nèi)存區(qū)域?qū)儆贘VM規(guī)范
方法區(qū)
程序計數(shù)器
虛擬機棧
70、在java中重寫方法應(yīng)遵循規(guī)則的包括
訪問修飾符的限制一定要大于被重寫方法的訪問修飾符
必須具有不同的參數(shù)列表
71、哪個正確
abstract類只能用來派生子類,不能用來創(chuàng)建abstract類的對象。
final類不但可以用來派生子類,也可以用來創(chuàng)建final類的對象。
abstract類定義中可以沒有abstract方法。
72、jvm中垃圾回收分為scanvenge gc和full GC,其中full GC觸發(fā)的條件可能有哪些
老年代滿
持久代滿
System.gc()
73、關(guān)于變量及其范圍的陳述哪些是正確的
實例變量用關(guān)鍵字static聲明
在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建
74、方法中哪個是線程執(zhí)行的方法
run()
75、關(guān)于面向?qū)ο蟮囊恍├斫饽男┦钦_的
面向?qū)ο蟮淖钪匾奶匦允侵С掷^承、封裝和多態(tài)
系統(tǒng)設(shè)計應(yīng)該遵循開閉原則,系統(tǒng)應(yīng)該穩(wěn)定不不可修改,但應(yīng)支持通過繼承、組合等方式進(jìn)行擴展
面向?qū)ο笤O(shè)計時,每個類的職責(zé)應(yīng)該單一,不要再一個類中引入過多的接口
過程式語言和面向?qū)ο蟮恼Z言各有其優(yōu)勢,過程式語言更加靈活,面向?qū)ο笳Z言更加強調(diào)抽象和封裝
Java和C++都是靜態(tài)類型的面向?qū)ο缶幊陶Z言
76、有關(guān)線程的敘述正確的是
線程通過使用synchronized關(guān)鍵字可獲得對象的互斥鎖定
線程調(diào)度算法是平臺獨立的
77、下列說法正確的是
對于局部內(nèi)部類,只有在方法的局部變量被標(biāo)記為final或局部變量是effctively final的,內(nèi)部類才能使用它們
成員內(nèi)部類位于外部類內(nèi)部,可以直接調(diào)用外部類的所有方法(靜態(tài)方法和非靜態(tài)方法)
78、在面向?qū)ο缶幊汤铮?jīng)常使用is-a來說明對象之間的繼承關(guān)系,對象中具備繼承關(guān)系的是
手機與小米手機
企業(yè)家與雷軍
編程語言與Java
解析:
類之間存在以下幾種常見的關(guān)系
use-a 是依賴關(guān)系
has-a 一般是組合關(guān)系
is-a 一般是繼承關(guān)系
79、以下多線程對int型變量x的操作,需要進(jìn)行同步
x=y;
x++;
++x;
80、在JAVA中,假設(shè)A有構(gòu)造方法A(int a),則在類A的其他構(gòu)造方法中調(diào)用該構(gòu)造方法和語句格式應(yīng)該為
this(x)
81、關(guān)于Java并發(fā)的說法中正確的是
ReadWriteLock適用于讀多寫少的并發(fā)場景
82、關(guān)于JavaBean的說法正確的是
Java文件與Bean所定義的類名可以不同,但一定要注意區(qū)分字母的大小寫
83、在Java語言中關(guān)于數(shù)據(jù)類型和包裝類的說法,正確的是
long和double都占了64位(64bit)的存儲空間。
84、關(guān)于Java語言描述正確的是
java和C++都有三個特征:封裝、繼承和多態(tài)
85、有關(guān)SPRING的事務(wù)傳播特性,說法正確的是
PROPAGATION_SUPPORTS:支持當(dāng)前事務(wù),如果當(dāng)前沒有事務(wù),就以非事務(wù)方式執(zhí)行
PROPAGATION_REQUIRES_NEW:新建事務(wù),如果當(dāng)前存在事務(wù),把當(dāng)前事務(wù)掛起
PROPAGATION_NESTED:支持當(dāng)前事務(wù),新增Savepoint點,與當(dāng)前事務(wù)同步提交或回滾
86、面向?qū)ο蠓椒ǖ亩鄳B(tài)性是指()
針對一消息,不同的對象可以以適合自身的方式加以響應(yīng)
87、有關(guān)JAVA swing的描述,說法正確的是
Swing是一個基于Java的跨平臺MVC框架。使用單線程模式。
Swing 是為了解決 AWT 存在的問題而新開發(fā)的包,它以 AWT 為基礎(chǔ)的
Swing是一個基于組件的框架,所有的組件都是從javax.swing.JComponent類繼承來的
88、jre 判斷程序是否執(zhí)行結(jié)束的標(biāo)準(zhǔn)是
所有的前臺線程執(zhí)行完畢
89、哪些可以處理Unicode字符
InputStreamReader
BufferedReader
Writer
90、Gadget has-a Sprocket and Gadget has-a Spring and Gadget is-a Widget and Widget has-a
Sprocket 以下哪兩段代碼可以表示這個關(guān)系
class Widget { Sprocket s; }class Gadget extends Widget { Spring s; }
class Widget { Sprocket s1; Spring s2; }class Gadget extends Widget { }
91、有關(guān)forward和redirect的描述,正確的是
執(zhí)行forward時,瀏覽器不知道服務(wù)器發(fā)送的內(nèi)容是從何處來,瀏覽器地址欄中還是原來的地址
執(zhí)行redirect時,服務(wù)器端告訴瀏覽器重新去請求地址
forward是內(nèi)部重定向,redirect是外部重定向
92、哪些jvm的垃圾回收方式采用的是復(fù)制算法回收
新生代串行收集器
老年代并行回收收集器
93、有關(guān)finally語句塊說法正確的是
不管catch是否捕獲異常,finally語句塊都是要被執(zhí)行的
在try語句塊或catch語句塊中執(zhí)行到System.exit(0)直接退出程序
finally塊中的return語句會覆蓋try塊中的return返回
94、有關(guān)java的引用類型,說法正確的有
對于一個對象來說,只要有強引用的存在,它就會一直存在于內(nèi)存中
如果一個對象僅持有虛引用,那么它就和沒有任何引用一樣,在任何時候都可能被垃圾回收器回收。
如果一個對象只具有軟引用,則內(nèi)存空間足夠,垃圾回收器就不會回收它;如果內(nèi)存空間不足了,就會回收這些對象的內(nèi)存
一旦發(fā)現(xiàn)了只具有弱引用的對象,不管當(dāng)前內(nèi)存空間足夠與否,都會回收它的空間
95、類之間存在以下幾種常見的關(guān)系
“USES-A”關(guān)系
“HAS-A”關(guān)系
“IS-A”關(guān)系
解析:
USES-A:依賴關(guān)系,A類會用到B類,這種關(guān)系具有偶然性,臨時性。但B類的變化會影響A類。這種在代碼中的體現(xiàn)為:A類方法中的參數(shù)包含了B類。
關(guān)聯(lián)關(guān)系:A類會用到B類,這是一種強依賴關(guān)系,是長期的并非偶然。在代碼中的表現(xiàn)為:A類的成員變量中含有B類。
HAS-A:聚合關(guān)系,擁有關(guān)系,是關(guān)聯(lián)關(guān)系的一種特例,是整體和部分的關(guān)系。比如鳥群和鳥的關(guān)系是聚合關(guān)系,鳥群中每個部分都是鳥。
IS-A:表示繼承。父類與子類,這個就不解釋了。
要注意:還有一種關(guān)系:組合關(guān)系也是關(guān)聯(lián)關(guān)系的一種特例,它體現(xiàn)一種contains-a的關(guān)系,這種關(guān)系比聚合更強,也稱為強聚合。它同樣體現(xiàn)整體與部分的關(guān)系,但這種整體和部分是不可分割的。
96、語句:char foo='中',是否正確?(假設(shè)源文件以GB2312編碼存儲,并且以javac – encoding GB2312命令編譯)
正確
97、有關(guān)webservice的描述,正確的是
Webservice是跨平臺,跨語言的遠(yuǎn)程調(diào)用技術(shù)
Webservice采用了soap協(xié)議(簡單對象協(xié)議)進(jìn)行通信
WSDL是用于描述 Web Services 以及如何對它們進(jìn)行訪問
98、哪些是加載驅(qū)動程序的方法
調(diào)用方法 Class.forName
通過添加系統(tǒng)的jdbc.drivers屬性
通過registerDriver方法注冊
99、關(guān)于AWT和Swing說法正確的是
Swing在不同的操作系統(tǒng)中顯示相同的風(fēng)格
100、關(guān)于Java中的ClassLoader下面的哪些描述是正確的
默認(rèn)情況下,Java應(yīng)用啟動過程涉及三個ClassLoader: Boostrap, Extension, System
類裝載器需要保證類裝載過程的線程安全
ClassLoader的父子結(jié)構(gòu)中,默認(rèn)裝載采用了父優(yōu)先