面試題記錄two

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();
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,639評論 1 32
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,322評論 0 10
  • 一、基礎(chǔ)知識:1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,560評論 0 4
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應(yīng)用。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 5,187評論 1 114
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,246評論 0 38

友情鏈接更多精彩內(nèi)容