1.以下代碼的運行結(jié)果是
public static void main(String[] args) {
ArrayList<Integer> integers = new ArrayList<Integer>() ;
integers.add(2);
integers.add(4);
integers.add(1);
integers.add(3);
integers.add(5);
for (int i = 0; i <integers.size() ; i++) {
if (integers.get(i)%2==0){
integers.remove(integers.get(i));
}
}
System.out.println(integers);
}
不是1,3,5 是4,1,3,5(當(dāng)?shù)谝粋€2被移除后,4會第一個,不會被比較移除。驚喜意外...)
2.求運行結(jié)果
public class Demo {
class Super {
int flag=1;
Super(){
test();//2步,此處調(diào)用了一個test(),雖然子類和父類中都有test()但是會優(yōu)先調(diào)用子類
}
void test(){
System.out.println("Super.test() flag="+flag);
}
}
class Sub extends Super{
Sub(int i){//4步,3執(zhí)行完后調(diào)用子類構(gòu)造器
flag=i;
System.out.println("Sub.sub() flag="+flag);
}
void test() {//3步
System.out.println("Sub.test() flag="+flag);
}
}
public static void main(String[] args) {
new Demo().new Sub(5);//1步,new的子類,但是子類繼承了父類,
//會先訪問父類的無參構(gòu)造方法
}
}
Sub.test() flag=1
Sub.sub() flag=5
3.java體系結(jié)構(gòu)包括四個方面:
java程序設(shè)計語言
java class文件格式
java API
java 虛擬機
4.下列哪些語法結(jié)構(gòu)是正確的
public class Demo extends B implements A
public class Demo implements A,B
5.下面哪些情況可以引發(fā)異常
A.數(shù)組越界
B.指定url不存在
C.使用throw語句拋出
D.使用throw語句
ABC
6.面向?qū)ο髢?yōu)點
1、易維護
采用[面向?qū)ο笏枷隴(https://www.baidu.com/s?wd=%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%80%9D%E6%83%B3&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)設(shè)計的結(jié)構(gòu),可讀性高,由于繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。
2、質(zhì)量高
在設(shè)計時,可重用現(xiàn)有的,在以前的項目的領(lǐng)域中已被測試過的類使系統(tǒng)滿足業(yè)務(wù)需求并具有較高的質(zhì)量。
3、效率高
在軟件開發(fā)時,根據(jù)設(shè)計的需要對現(xiàn)實世界的事物進行抽象,產(chǎn)生類。使用這樣的方法解決問題,接近于日常生活和自然的思考方式,勢必提高軟件開發(fā)的效率和質(zhì)量。
4、易擴展
由于繼承、封裝、多態(tài)的特性,自然設(shè)計出高內(nèi)聚、低耦合的系統(tǒng)結(jié)構(gòu),使得系統(tǒng)更靈活、更容易擴展,而且成本較低。
7.下列哪些方法可以獲取cookis
A.request.getAttribute
B.request.getHeader
C.request.getParameter
D.request.getCookies
A. request.getAttribute:getAttribute是在服務(wù)器端的操作。
比如說 request.setAttribute(k,v),其行為動作在服務(wù)器端。
而在服務(wù)端放入cookies是通過response.addCookie(cookie)。因此,A錯了
B. Accept 瀏覽器可接受的MIME類型
Accept-Charset 瀏覽器支持的字符編碼
Accept-Encoding 瀏覽器知道如何解碼的數(shù)據(jù)編碼類型(如 gzip)。Servlets 可以預(yù)先檢查瀏覽器是否支持gzip并可以對支持gzip的瀏覽器返回gzipped的HTML頁面,并設(shè)置Content-Encoding回應(yīng)頭(response header)來指出發(fā)送的內(nèi)容是已經(jīng)gzipped的。在大多數(shù)情況下,這樣做可以加快網(wǎng)頁下載的速度。
Accept-Language 瀏覽器指定的語言,當(dāng)Server支持多語種時起作用。
Authorization 認(rèn)證信息,一般是對服務(wù)器發(fā)出的WWW-Authenticate頭的回應(yīng)。
Connection 是否使用持續(xù)連接。如果servlet發(fā)現(xiàn)這個字段的值是Keep-Alive,或者由發(fā)出請求的命令行發(fā)現(xiàn)瀏覽器支持 HTTP 1.1 (持續(xù)連接是它的默認(rèn)選項),使用持續(xù)連接可以使保護很多小文件的頁面的下載時間減少。
Content-Length (使用POST方法提交時,傳遞數(shù)據(jù)的字節(jié)數(shù))
Cookie (很重要的一個Header,用來進行和Cookie有關(guān)的操作,詳細(xì)的信息將在后面的教程中介紹)
Host (主機和端口)
If-Modified-Since (只返回比指定日期新的文檔,如果沒有,將會反回304 "Not Modified")
Referer (URL)
User-Agent (客戶端的類型,一般用來區(qū)分不同的瀏覽器)
C.request.getParameter()方法獲取從客戶端中通過get 或者post方式傳送到服務(wù)器端的參數(shù)。行為操作在服務(wù)器端。所以cookies明顯不是通過url或者form表單提交過來的。C錯
D.看方法名字就行了。
BD
8.下列錯誤的是
A.一個類可以有多個基類和多個基接口
B.抽象類自身可以定義成員而接口不可以
C.抽象類和接口都不能被實例化
D.類不可以多重繼承而接口可以
C抽象類是可以實例化的,接口不可以
9.有關(guān)線程說法正確的是( )
A線程是程序的多個順序的流動態(tài)執(zhí)行
B 線程有自己獨立的地址空間
C 線程不能夠獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制
D 線程是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位
進程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是操作系統(tǒng)進行資源分配和調(diào)度的一個獨立單位;
線程是進程的一個實體,一個進程中包含多個線程。是CPU調(diào)度和分派的基本單位,是比進程更小的能獨立運行的基本單位
B進程有獨立的地址空間,線程沒有。線程是共享進程的地址空間,因此B錯誤
D進程是 操作系統(tǒng)進行資源分配和調(diào)度的一個獨立單位,而線程只是CPU調(diào)度和分派的基本單位,因此D錯誤
AC
10.下面關(guān)于數(shù)據(jù)庫唯一索引正確的是( )?
A.表可以包含多個唯一約束,但只能有一個主鍵
B.唯一約束列可以包含null值
C.唯一約束列可修改和更新
D.唯一約束不能用來定義外鍵
正確答案:A B C
11.Redis支持五種數(shù)據(jù)類型:
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
12關(guān)于OutOfMemoryError,下面說法正確的是()?
A.java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize這個參數(shù)的值的話,這個問題通常會得到解決。
B.java.lang.OutOfMemoryError: Requested array size exceeds VM limit當(dāng)你正準(zhǔn)備創(chuàng)建一個超過虛擬機允許的大小的數(shù)組時,這條錯誤將會出現(xiàn)
C.java.lang.OutOfMemoryError: Java heap space 一般情況下解決這個問題最快的方法就是通過-Xmx參數(shù)來增加堆的大小
D.java.lang.OutOfMemoryError: nativeGetNewTLA這個異常只有在jRockit虛擬機時才會碰到
ABC
13.寫兩個線程,一個線程打印1 ~ 52,另一個線程打印A ~ Z,打印順序是
12A34B....5152Z
package www.java.test;
class Print{
int flag = 1;
int count = 1;
public synchronized void printNum(){
while(flag != 1){
//此時應(yīng)該打印字母,讓打印數(shù)字線程等待
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//打印數(shù)字
System.out.print(2*count - 1);
System.out.print(2*count);
flag = 2;
notify();
}
public synchronized void printChar(){
while(flag != 2){
//此時應(yīng)該打印數(shù)字,字母打印線程等待
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.print((char)(count-1 + 'A'));
//繼續(xù)前行
count++;
flag = 1;
notify();
}
}
public class Test{
public static void main(String[] args) {
Print print = new Print();
new Thread(()->{
for(int i = 0; i < 26; i++){
print.printNum();
}
}).start();
new Thread(()->{
for(int i = 0; i < 26; i++){
print.printChar();
}
}).start();
}
}