基礎(chǔ)面試題(Ⅰ)

問(wèn)題:Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類欣喧,是否可以implements(實(shí)現(xiàn))interface(接口)迄汛,并說(shuō)明原因

解答:不能通過(guò)extends或implement關(guān)鍵詞來(lái)繼承類或?qū)崿F(xiàn)接口,而是直接實(shí)現(xiàn)抽象類或接口中的方法

匿名內(nèi)部類的作用:
1.通常用來(lái)簡(jiǎn)化代碼編寫(xiě)槽畔,單次實(shí)現(xiàn)接口中全部的抽象方法,Anonymous Inner Class 沒(méi)有名字胁编,每次調(diào)用才會(huì)重新創(chuàng)建厢钧,用完即會(huì)回收

  1. 最常用的情況就是在多線程的實(shí)現(xiàn)上,因?yàn)橐獙?shí)現(xiàn)多線程必須繼承Thread類或是繼承Runnable接口嬉橙。如例子:Runnable接口的匿名內(nèi)部類實(shí)現(xiàn)
public class Demo {
    public static void main(String[] args) {
        Runnable r = new Runnable() {
            public void run() {
                for (int i = 1; i <= 10; i++) {
                    System.out.print(i + " ");
                }
            }
        };
        Thread t = new Thread(r);
        t.start();
    }
}
問(wèn)題:多重繼承的概念在Java中實(shí)現(xiàn)是通過(guò)如下哪些早直?

A. 擴(kuò)展兩個(gè)或多個(gè)類
B. 擴(kuò)展一個(gè)類并實(shí)現(xiàn)一個(gè)或多個(gè)接口
C. 實(shí)現(xiàn)兩個(gè)或更多接

解答:B,java僅支持單個(gè)繼承市框,可以實(shí)現(xiàn)多個(gè)接口霞扬,接口可以繼承多個(gè)

問(wèn)題:根據(jù)下面的程序代碼,哪些選項(xiàng)的值返回true枫振?
public class Square {  
    long width;  
    public Square(long l) {   
        width = l;  
    }  
    public static void main(String arg[]) {   
        Square a, b, c;  
        a = new Square(42L);   
        b = new Square(42L);   
        c = b;   
        long s = 42L;  
    } 
}

A喻圃、a == b
B、s == a
C粪滤、b == c
D斧拍、a.equals(s)

解答:C
A:a和b都是分別new的對(duì)象,所占堆內(nèi)存處于不同的位置杖小,應(yīng)該是false
B:對(duì)象和基本數(shù)據(jù)類型不能比較
C: c直接就賦值給b了肆汹,所以他們兩個(gè)在堆內(nèi)存對(duì)應(yīng)的是一塊地址,應(yīng)該是true
D:equals予权,會(huì)進(jìn)行封箱操作昂勉,他們的地址也是不一樣的,false

問(wèn)題:在jdk1.5的環(huán)境下扫腺,有如下4條語(yǔ)句:
1岗照、 Integer i01 = 59;
2 、int i02 = 59;
3 斧账、Integer i03 =Integer.valueOf(59);
4 谴返、Integer i04 = new Integer(59);

以下輸出結(jié)果為false的是:
A、System.out.println(i01 == i02);
B咧织、System.out.println(i01 == i03);
C嗓袱、System.out.println(i03 == i04);
D、System.out.println(i02 == i04);

解答:C
包裝類 與 基本類型比較時(shí)會(huì)自動(dòng)使用值比較习绢,A渠抹、D為true 蝙昙,
jvm 中會(huì)緩存1-1024的Integer,i01 與 i03 使用相同地址的類梧却,i03創(chuàng)建是通過(guò)IntegerCache創(chuàng)建奇颠,在-128到127之間。而i04創(chuàng)建是通過(guò)Integer中的value

問(wèn)題:大小為MAX的循環(huán)隊(duì)列中放航,f為當(dāng)前對(duì)頭元素位置烈拒,r為當(dāng)前隊(duì)尾元素位置(最后一個(gè)元素的位置),則任意時(shí)刻广鳍,隊(duì)列中的元素個(gè)數(shù)為:

A荆几、r-f
B、(r-f+MAX+1)%MAX
C赊时、r-f+1
D吨铸、(r-f+MAX)%MAX

解答:B
f為當(dāng)前對(duì)頭元素位置,r為當(dāng)前隊(duì)尾元素位置(最后一個(gè)元素的位置)祖秒,則任意時(shí)刻诞吱,隊(duì)列中的元素個(gè)數(shù)為:(r-f+MAX+1)%MAX

問(wèn)題:如下Java語(yǔ)句
double x= 3.0;
int y=5;
x/=–y;

執(zhí)行后,x的值是()
A 竭缝、3
B房维、-0.6
C、0.4
D抬纸、0.75

解答:B
x /= -y表示為:x = x / -y = 3.0 / -5 = -0.6,由于x為double類型握巢,所有結(jié)果也是double類型

問(wèn)題:n個(gè)數(shù)值選出最大m個(gè)數(shù)(3<m<n)的最小算法復(fù)雜度是:

A、O(n)
B松却、O(nlogn)
C暴浦、O(logn)
D、O(mlogn)
E晓锻、O(nlogm)
F歌焦、O(mn)

解答:A
1.最簡(jiǎn)單的方法:將n個(gè)數(shù)排序,排序后的前k個(gè)數(shù)就是最大的k個(gè)數(shù)砚哆,這種算法的復(fù)雜度是O(nlogn)
2.O(n)的方法:利用快排的patition思想独撇,基于數(shù)組的第k個(gè)數(shù)來(lái)調(diào)整,將比第k個(gè)數(shù)小的都位于數(shù)據(jù)的左邊躁锁,比第k個(gè)數(shù)大的都調(diào)整到數(shù)組的右邊纷铣,這樣調(diào)整后,位于數(shù)組右邊的k個(gè)數(shù)最大的k個(gè)數(shù)(這k個(gè)數(shù)不一定是排序好的)
3.O(nlogk)的方法:先創(chuàng)建一個(gè)大小為k的最小堆战转,接下來(lái)我們每次從輸入的n個(gè)整數(shù)中讀入一個(gè)數(shù)搜立,如果這個(gè)數(shù)比最小堆的堆頂元素還要大,那么替換這個(gè)最小堆的堆頂并調(diào)整

問(wèn)題:有一個(gè)文件ip.txt槐秧,每行一條ip記錄啄踊,共若干行忧设,下面哪個(gè)命令可以實(shí)現(xiàn)“統(tǒng)計(jì)出現(xiàn)次數(shù)最多的前3個(gè)ip及其次數(shù)”?

A颠通、uniq -c ip.txt | sort -nr | head -n 3
B址晕、sort ip.txt | uniq -c | sort -rn | head -n 3
C、cat ip.txt | count -n | sort -rn | head -n 3
D顿锰、cat ip.txt | sort | uniq -c | sort -rn | top -n 3

解答:B
第一次排序谨垃,把ip按順序排列,因?yàn)榈诙€(gè)uniq只會(huì)合并相鄰項(xiàng)
第二次排序硼控,才是把ip按出現(xiàn)次序大小從大到小排列乘客,最后取前三項(xiàng)結(jié)果

問(wèn)題:設(shè)有兩個(gè)事務(wù)T1,T2,其并發(fā)操作如下所示,下面評(píng)價(jià)正確的是()
步驟          T1         T2
1          讀A=100
2                      讀A=100
3.         A=A+10寫(xiě)回
4.                     A=A-10寫(xiě)回

A、該操作不能重復(fù)讀
B淀歇、該操作不存在問(wèn)題
C、該操作讀"臟"數(shù)據(jù)
D匈织、該操作丟失修改

解答:D
當(dāng)兩個(gè)或多個(gè)事務(wù)讀取同一數(shù)據(jù)并做修改時(shí)浪默,會(huì)發(fā)生丟失更新問(wèn)題,即后一事務(wù)更新的結(jié)果會(huì)被前一事務(wù)更新的結(jié)果所覆蓋缀匕。
比如:當(dāng)事務(wù)A和事務(wù)B同時(shí)進(jìn)行纳决,事務(wù)A對(duì)數(shù)據(jù)做了修改,但還未提交乡小,此時(shí)阔加,事務(wù)B又對(duì)同一數(shù)據(jù)做了修改(注意:此時(shí)事務(wù)A還未提交修改過(guò)的數(shù)據(jù)),等事務(wù)A做事務(wù)提交時(shí)满钟,會(huì)發(fā)生數(shù)據(jù)改動(dòng)丟失

問(wèn)題:CPU和兩臺(tái)輸入/輸出設(shè)備(I1,I2)多道程序設(shè)計(jì)環(huán)境下,同時(shí)有三個(gè)作業(yè)J1,J2,J3進(jìn)行,這三個(gè)作業(yè)使用CPU和輸入/輸出設(shè)備的順序和時(shí)間如下所示:
J1:I2(35ms); CPU(15ms); I1(35ms);CPU(15ms); I2(25ms)
J2:I1(25ms); CPU(30ms); I2(35ms)
J3:CPU(30ms); I1(25ms);CPU(15ms);I1(15ms);

假定CPU,I1,I2都能并行工作,J1的優(yōu)先級(jí)最高,J2次之,J3優(yōu)先級(jí)最低,優(yōu)先級(jí)高的作業(yè)可以搶占優(yōu)先級(jí)低的作業(yè)的CPU,但不能搶占I1,I2,作業(yè)從J3開(kāi)始到完成需要多少時(shí)間?
A胜榔、130
B、85
C湃番、140
D夭织、115

解答:B

問(wèn)題:在jdk1.5之后,下列 java 程序輸出結(jié)果為()
1 int i=0;
2 Integer j = new Integer(0);
3 System.out.println(i==j);
4 System.out.println(j.equals(i));

A吠撮、true,false
B尊惰、true,true
C、false,true
D泥兰、false,false
E弄屡、對(duì)于不同的環(huán)境結(jié)果不同
F、程序無(wú)法執(zhí)行

解答:B
第①種i==j =>true:基本類型和它包裝型進(jìn)行“”運(yùn)算符的比較鞋诗,基本型封裝型將會(huì)自動(dòng)拆箱變?yōu)榛拘秃笤龠M(jìn)行比較膀捷,因此Integer(0)會(huì)自動(dòng)拆箱為int類型再進(jìn)行比較,顯然返回true削彬;
第②中(j.equals(i)) ==>true:基本型封裝類型調(diào)用equals(),但是參數(shù)是基本類型担孔,這時(shí)候江锨,先會(huì)進(jìn)行自動(dòng)裝箱,基本型轉(zhuǎn)換為其封裝類型

== 比較的是變量(棧)內(nèi)存中存放的對(duì)象的(堆)內(nèi)存地址糕篇,用來(lái)判斷兩個(gè)對(duì)象的地址是否相同啄育,即是否是指相同一個(gè)對(duì)象。比較的是真正意義上的指針操作拌消。
1挑豌、比較的是操作符兩端的操作數(shù)是否是同一個(gè)對(duì)象。
2墩崩、兩邊的操作數(shù)必須是同一類型的(可以是父子類之間)才能編譯通過(guò)氓英。
3、比較的是地址鹦筹,如果是具體的阿拉伯?dāng)?shù)字的比較铝阐,值相等則為true,如:int a=10 與 long b=10L 與 double c=10.0都是相同的(為true)铐拐,因?yàn)樗麄兌贾赶虻刂窞?0的堆

equals
1.equals用來(lái)比較的是兩個(gè)對(duì)象的內(nèi)容是否相等徘键,由于所有的類都是繼承自java.lang.Object類的,所以適用于所有對(duì)象遍蟋,如果沒(méi)有對(duì)該方法進(jìn)行覆蓋的話吹害,調(diào)用的仍然是Object類中的方法,而Object中的equals方法返回的卻是==的判斷

2.String s="abce"是一種非常特殊的形式,和new 有本質(zhì)的區(qū)別虚青。它是java中唯一不需要new 就可以產(chǎn)生對(duì)象的途徑它呀。以String s="abce";形式賦值在java中叫直接量,它是在常量池中而不是象new一樣放在壓縮堆中。這種形式的字符串棒厘,在JVM內(nèi)部發(fā)生字符串拘留纵穿,即當(dāng)聲明這樣的一個(gè)字符串后,JVM會(huì)在常量池中先查找有有沒(méi)有一個(gè)值為"abcd"的對(duì)象,如果有,就會(huì)把它賦給當(dāng)前引用.即原來(lái)那個(gè)引用和現(xiàn)在這個(gè)引用指點(diǎn)向了同一對(duì)象,如果沒(méi)有,則在常量池中新創(chuàng)建一個(gè)"abcd",下一次如果有String s1 = "abcd";又會(huì)將s1指向"abcd"這個(gè)對(duì)象,即以這形式聲明的字符串,只要值相等,任何多個(gè)引用都指向同一對(duì)象奢人,而String s = new String("abcd");和其它任何對(duì)象一樣.每調(diào)用一次就產(chǎn)生一個(gè)對(duì)象政恍,只要它們調(diào)用

3.也可以這么理解: String str = "hello"; 先在內(nèi)存中找是不是有"hello"這個(gè)對(duì)象,如果有,就讓str指向那個(gè)"hello".如果內(nèi)存里沒(méi)有"hello"达传,就創(chuàng)建一個(gè)新的對(duì)象保存"hello". String str=new String ("hello") 就是不管內(nèi)存里是不是已經(jīng)有"hello"這個(gè)對(duì)象篙耗,都新建一個(gè)對(duì)象保存"hello"

// equals方法最初是在所有類的基類Object中進(jìn)行定義的,源碼是
public boolean equals(Object obj) {
    return (this == obj);
}
//由equals的源碼可以看出這里定義的equals與==是等效的(Object類中的equals沒(méi)什么區(qū)別)宪赶,不同的原因就在于有些類(像String宗弯、Integer等類)對(duì)equals進(jìn)行了重寫(xiě),但是沒(méi)有對(duì)equals進(jìn)行重寫(xiě)的類(比如我們自己寫(xiě)的類)就只能從Object類中繼承equals方法搂妻,其equals方法與==就也是等效的蒙保,除非我們?cè)诖祟愔兄貙?xiě)equals。
public class test1 {
    public static void main(String[] args) {
        String a = new String("ab"); // a 為一個(gè)引用
        String b = new String("ab"); // b為另一個(gè)引用,對(duì)象的內(nèi)容一樣
        String aa = "ab"; // 放在常量池中
        String bb = "ab"; // 從常量池中查找
        if (aa == bb) // true
            System.out.println("aa==bb");
        if (a == b) // false欲主,非同一對(duì)象
            System.out.println("a==b");
        if (a.equals(b)) // true
            System.out.println("aEQb");
        if (42 == 42.0) { // true
            System.out.println("true");
        }
    }
}
問(wèn)題:下列java程序的輸出結(jié)果為()
1 public class Example{
2     String str=new String(“hello”);
3     char[] ch={‘a(chǎn)’,‘b’};
4     public static void main(String args[]){
5         Example ex=new Example();
6         ex.change(ex.str,ex.ch);
7         System.out.print(ex.str+" and ");
8         System.out.print(ex.ch);
9     }
10     public void change(String str,char ch[]){
11         str=“test ok”;
12         ch[0]=‘c’;
13     }
14 }

A邓厕、hello and ab
B逝嚎、hello and cb
C、hello and a
D详恼、test ok and ab
E补君、test ok and cb

解答: B
Java方法傳參是將變量復(fù)制一份傳進(jìn)去的,基本類型復(fù)制的就是變量值本身昧互,成為值傳遞挽铁,數(shù)組類型復(fù)制的變量的值的引用,方法change里拿到的str和ch都是外部變量引用的復(fù)制'str'和'ch’敞掘,'ch[0]'可以直接修改外部變量的值叽掘,而str = “test ok”, 在方法內(nèi)部會(huì)重新為"test ok"分配內(nèi)存空間玖雁,并把引用賦值內(nèi)'str',并不會(huì)改變外部變量的值

問(wèn)題:有關(guān)下述Java代碼描述正確的選項(xiàng)是()
1 public class TestClass {
2    private static void testMethod(){
3         System.out.println(“testMethod”);
4    }
5    public static void main(String[] args) {
6         ((TestClass)null).testMethod();
7    }
8 }

A更扁、編譯不通過(guò)
B、編譯通過(guò)赫冬,運(yùn)行異常浓镜,報(bào)NullPointerException
C、編譯通過(guò)面殖,運(yùn)行異常,報(bào)IllegalArgumentException
D哭廉、編譯通過(guò)脊僚,運(yùn)行異常,報(bào)NoSuchMethodException
E遵绰、編譯通過(guò)辽幌,運(yùn)行異常,報(bào)Exception
F椿访、運(yùn)行正常乌企,輸出testMethod

解答:F
思路
1.將null強(qiáng)制類型轉(zhuǎn)換后得到的是一個(gè)空的該類型的引用變量,(Object) null 同等于 Object obj = null
2.使用對(duì)象調(diào)用靜態(tài)方法時(shí)成玫,與該對(duì)象是否為空沒(méi)有關(guān)系
3.private控制修飾符加酵,表示只在本類中使用,包括內(nèi)部類

還有一個(gè)調(diào)用靜態(tài)方法容易搞錯(cuò)的例子哭当,Thread的靜態(tài)方法interrupted()與實(shí)例方法interrupt()

public class Do {
    public static void main(String[] args ) {
        MyThread thread=new MyThread();
        thread.start();
        thread.interrupt();
        System.out.println("第一次調(diào)用thread.interrupted():"+thread.interrupted());
        System.out.println("第二次調(diào)用thread.interrupted():"+thread.interrupted());
        System.out.println("thread是否存活:"+thread.isAlive());
    }
}

輸出結(jié)果為:
第一次調(diào)用thread.interrupted():false
第二次調(diào)用thread.interrupted():false
thread是否存活:true

為什么第一次調(diào)用thread.interrupted()的結(jié)果不是true猪腕?
因?yàn)閕nterrupted()是靜態(tài)方法,與該對(duì)象是具體哪個(gè)實(shí)例無(wú)關(guān)钦勘,它執(zhí)行的是Thread.currentThread().isInterrupted(true);在當(dāng)前對(duì)應(yīng)的是main線程陋葡,而被中斷的是MyThread實(shí)例
問(wèn)題:將整數(shù)數(shù)組(7-6-3-5-4-1-2)按照堆排序的方式原地進(jìn)行升序排列,請(qǐng)問(wèn)在整個(gè)排序過(guò)程中彻采,元素3的數(shù)組下標(biāo)發(fā)生過(guò)()次改變腐缤?

A捌归、0
B、1
C岭粤、2
D惜索、3
E、4
F绍在、5

解答:C

問(wèn)題:對(duì)文件名為T(mén)est.java的java代碼描述正確的是()
1  class Person {
2     String name = "No name";
3     public Person(String nm) {
4         name = nm;
5     }
6 }
7 class Employee extends Person {
8     String empID = "0000";
9     public Employee(String id) {
10         empID = id;
11     }
12 }
13 public class Test {
14     public static void main(String args[]) {
15         Employee e = new Employee("123");
16         System.out.println(e.empID);
17     }
18 }

A门扇、輸出:0000
B、輸出:123
C偿渡、編譯報(bào)錯(cuò)
D臼寄、輸出:No name

解答:C
每個(gè)類的創(chuàng)建都依賴構(gòu)造函數(shù),子類的創(chuàng)建依賴子類的構(gòu)造函數(shù)溜宽,子類繼承父類的字段和方法吉拳,那么父類的字段和方法就需要父類來(lái)完成初始化操作,所以子類需要實(shí)現(xiàn)父類的構(gòu)造方法

解決方法:在子類構(gòu)造方法中調(diào)用super("")或者在父類添加無(wú)參構(gòu)造函數(shù)

問(wèn)題:若k為整形,下述while循環(huán)的次數(shù)為:()
1 k=1000;
2 while (k>1)
3  {   print k;
4       k=k/2;
5  }

A适揉、1000
B留攒、10
C、11
D嫉嘀、9

解答:D
整數(shù)除以2炼邀,其實(shí)就是整數(shù)向右移1位,右移比符號(hào)運(yùn)算效率更高剪侮,把1000轉(zhuǎn)化為二進(jìn)制是0011 1110 1000拭宁,當(dāng)右移直到只剩下一個(gè)1時(shí)(也就是將最高位的1移動(dòng)到最低位,0000 0000 0001)瓣俯,共需要移動(dòng)9次

問(wèn)題:以下程序的輸出結(jié)果是()杰标?
1  int x = 1;
2 do{
3     printf("%2d\n",x++);
4 }while(x--);

A、1
B彩匕、無(wú)任何輸出
C腔剂、2
D、陷入死循環(huán)

解答:D

  1. 初始條件: x=1

  2. 第一次循環(huán):輸出1, x=2

x--=2>0, x=1,進(jìn)入第二次循環(huán)

  1. 第二次循環(huán):輸出1,x=2

x--=2>0, x=1,進(jìn)入第三次循環(huán)

  1. ...

  2. 依此規(guī)律,該行代碼會(huì)無(wú)限輸出1

問(wèn)題:對(duì)于JVM內(nèi)存配置參數(shù):

-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3,其最小內(nèi)存值和Survivor區(qū)總大小分別是()
A驼仪、5120m掸犬,1024m
B、5120m绪爸,2048m
C登渣、10240m,1024m
D毡泻、10240m胜茧,2048m

解答:D
-Xms:初始堆大小,表示java虛擬機(jī)堆區(qū)內(nèi)存初始內(nèi)存分配的大小,通常為操作系統(tǒng)可用內(nèi)存的1/64大小即可

-Xmx:最大堆大小呻顽,表示java虛擬機(jī)堆區(qū)內(nèi)存可被分配的最大上限雹顺,通常為操作系統(tǒng)可用內(nèi)存的1/4大小。但是開(kāi)發(fā)過(guò)程中廊遍,通常會(huì)將 -Xms 與 -Xmx兩個(gè)參數(shù)的配置相同的值嬉愧,其目的是為了能夠在java垃圾回收機(jī)制清理完堆區(qū)后不需要重新分隔計(jì)算堆區(qū)的大小而浪費(fèi)資源

-Xmn:年輕代大小

-XX:NewSize=n:設(shè)置年輕代大小

-XX:NewRatio=n:設(shè)置年輕代和年老代的比值。如:為3喉前,表示年輕代與年老代比值為1:3没酣,年輕代占整個(gè)年輕代年老代和的1/4

-XX:SurvivorRatio=n:年輕代中Eden區(qū)與兩個(gè)Survivor區(qū)的比值。注意Survivor區(qū)有兩個(gè)卵迂。如:3裕便,表示Eden:Survivor=3:2,一個(gè)Survivor區(qū)占整個(gè)年輕代的1/5

我們可以知道见咒,最小內(nèi)存值是10240m偿衰,排除A,B選項(xiàng)
根據(jù)Generation-Collection算法(目前大部分JVM采用的算法),一般根據(jù)對(duì)象的生存周期將堆內(nèi)存分為若干不同的區(qū)域改览,一般情況將新生代分為Eden 下翎,兩塊Survivor:
計(jì)算Survivor大小, Eden:Survivor = 3宝当,總大小5120,3x+x+x=5120 x=1024(Survivor區(qū)有兩個(gè)视事,即將年輕代分為5份,每個(gè)Survivor區(qū)占一份)庆揩,所以得出答案:總大小為2048m

問(wèn)題:執(zhí)行下列代碼的輸出結(jié)果是( )
1 public class Demo{
2  public static void main(String args[]){
3   int num = 10;
4   System.out.println(test(num));
5 }
6 public static int test(int b){
7   try{
9     b += 10; //1
10    return b; //2
11   }catch(RuntimeException e){
14   }
15   catch(Exception e2){
17   }
18   finally{
20    b += 10;//3
21    return b;//4
22   }
23  }
24}

A俐东、10
B、20
C盾鳞、30
D犬性、40

解答:C
1瞻离、不管有沒(méi)有出現(xiàn)異常腾仅,finally 塊中代碼都會(huì)執(zhí)行;
2、當(dāng)嘗試和捕獲中有返回時(shí)套利,finally 仍然會(huì)執(zhí)行;
3推励、finally 是在返回后面的表達(dá)式運(yùn)算后執(zhí)行的(此時(shí)并沒(méi)有返回運(yùn)算后的值,而是先把要返回的值保存起來(lái)肉迫,不管最后中的代碼怎么樣验辞,返回的值都不會(huì)改變,任然是之前保存的值)喊衫,所以函數(shù)返回值是在finally執(zhí)行前確定的;
4跌造、finally中如果包含return,那么程序?qū)⒃谶@里返回,而不是try或catch中的return返回壳贪,返回值就不是try或catch中保存的返回值了

問(wèn)題:給定某Java程序的main方法如下陵珍,該程序編譯運(yùn)行后的結(jié)果是( )
1 public class Test {    
2     int count = 21;    
3     public void count() {        
4         System.out.println(++count);    
5     }    
6 public static void main(String args[]) {        
7         new Test().count();        
8         new Test().count();    
9    }
10 }

A、22 23
B违施、21 22
C互纯、22 22
D、21 23

解答:C
同個(gè)對(duì)象的兩個(gè)不同實(shí)例磕蒲,執(zhí)行相同的方法留潦,輸出自己的成員變量,結(jié)果肯定是一樣的辣往,int count 并沒(méi)有被static修飾兔院,這個(gè)變量并不是共享變量,不存在指向同一個(gè)對(duì)象

問(wèn)題:以下JAVA程序的輸出是什么()
public class HelloSogou{     
 public static synchronized void main(String[]   a){         
 Thread t = new   Thread(){             
     public   void run(){
        Sogou();
     }      
  };     
 t.run();     
 System.out.print("Hello");     
 }     
 static synchronized void Sogou(){    
     System.out.print("Sogou");    
   }
}

A、HelloSogou
B、SogouHello
C亩歹、Hello
D疗认、結(jié)果不確定

解答:B
線程的start與run方法的區(qū)別:
1.先來(lái)看下start()的源碼,start()啟動(dòng)線程其實(shí)是通過(guò)start0()啟動(dòng)的

public synchronized void start() {
       /**
        * This method is not invoked for the main method thread or "system"
        * group threads created/set up by the VM. Any new functionality added
        * to this method in the future may have to also be added to the VM.
        *
        * A zero status value corresponds to state "NEW".
        */
       if (threadStatus != 0)
           throw new IllegalThreadStateException();

       /* Notify the group that this thread is about to be started
        * so that it can be added to the group's list of threads
        * and the group's unstarted count can be decremented. */
       group.add(this);  //添加到線程組

       boolean started = false;
       try {
           start0();  //調(diào)用本地方法start0()來(lái)啟動(dòng)新的線程
           started = true;
       } finally {
           try {
               if (!started) {
                   group.threadStartFailed(this);
               }
           } catch (Throwable ignore) {
               /* do nothing. If start0 threw a Throwable then
                 it will be passed up the call stack */
           }
       }
   }
   private native void start0(); //本地方法start0()

2.run()源碼

public void run() {
        if (target != null) {
            target.run();
        }
    }
只是調(diào)用了runnable里面的run方法杨凑,并沒(méi)有創(chuàng)建新的線程

run方法啟動(dòng),走的線程是main線程,不會(huì)啟動(dòng)新線程
如果是start()方法啟動(dòng)扯键,則會(huì)new一個(gè)新的線程去thread-0去跑,
先運(yùn)行run方法運(yùn)行Sogou珊肃,再打印hello

問(wèn)題:Java類Demo中存在方法func0荣刑、func1、func2伦乔、func3和func4厉亏,請(qǐng)問(wèn)該方法中,哪些是不合法的定義烈和?(不定項(xiàng)選擇題)
1 public class Demo{
2  float func0()
3  {
4    byte i=1;
5    return i;
6  }
7  float func1()
8  {
9    int i=1;
10    return;
11  }
12  float func2()
13  {
14    short i=2;
15    return i;
16  }
17  float func3()
18  {
19    long i=3;
20    return i;
21  }
22  float func4()
23  {
24    double i=4;
25    return i;
26  }
27}

A爱只、func1
B、func2
C招刹、func3
D恬试、func4
E、func0
解答: A D
Java類型轉(zhuǎn)換分為自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換兩種
基本類型間的自動(dòng)類型轉(zhuǎn)換需要滿足以下條件:
(1).轉(zhuǎn)換雙方的類型必須兼容疯暑,例如int和long類型就是兼容的训柴,而int和boolean就是不兼容的。
(2).只能是"窄類型"向"寬類型"轉(zhuǎn)換,也就是目標(biāo)類型的數(shù)據(jù)表示范圍要比源類型的數(shù)據(jù)表示范圍要大
byte–>short–>int–>long->float–>double

Double源碼:
public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324
 public static final double MAX_VALUE = 0x1.fffffffffffffP+1023;//1.7976931348623157e+308

Float源碼:
//  2<sup>-149</sup> 2的負(fù)149次方
public static final float MIN_VALUE = 0x0.000002P-126f; // 1.4e-45f
public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f 

Long源碼:
   /**
     * A constant holding the minimum value a {@code long} can
     * have, -2<sup>63</sup>.
     */
    @Native public static final long MIN_VALUE = 0x8000000000000000L;

    /**
     * A constant holding the maximum value a {@code long} can
     * have, 2<sup>63</sup>-1.
     */
    @Native public static final long MAX_VALUE = 0x7fffffffffffffffL;

float的范圍為-2^128 ~ +2^128妇拯,也即-3.40E+38 ~ +3.40E+38幻馁;
double的范圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308
即,double類型的范圍大于float類型仗嗦,所以预麸,D選項(xiàng)錯(cuò)誤

從double轉(zhuǎn)成float時(shí)會(huì)存在無(wú)法轉(zhuǎn)換的情況,因?yàn)閐ouble表示的數(shù)據(jù)范圍大于float表示的數(shù)據(jù)范圍儒将,所以從double到float要明確使用強(qiáng)制類型轉(zhuǎn)換

func3() long型的范圍小于float吏祸,所以,自動(dòng)數(shù)據(jù)類型轉(zhuǎn)換都是由精度低的往精度高的轉(zhuǎn)換钩蚊,正確贡翘;
func2(),func0()正確;
func1() 方法沒(méi)有返回值砰逻,錯(cuò)誤鸣驱;

E 是什么?
這是科學(xué)計(jì)數(shù)法蝠咆,表示的是 eg:1.810524e10 則是18105240000,小數(shù)點(diǎn)往后10位表示的是1.810524乘以10的十次方

有效位:
float:浮點(diǎn)型踊东,含字節(jié)數(shù)為4,32bit刚操,數(shù)值范圍為-3.4E38~3.4E38(7個(gè)有效位)
double:雙精度實(shí)型闸翅,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個(gè)有效位)
decimal:數(shù)字型菊霜,128bit坚冀,不存在精度損失(相對(duì)不存在,28個(gè)有效位后會(huì)報(bào)錯(cuò))鉴逞,常用于銀行帳目計(jì)算记某。(28個(gè)有效位)
float f = 345.98756f;//結(jié)果顯示為345.9876,只顯示7個(gè)有效位构捡,對(duì)最后一位數(shù)四舍五入液南。
double d=345.975423578631442d;//結(jié)果顯示為345.975423578631,只顯示15個(gè)有效位勾徽,對(duì)最后一位四舍五入
注:float和double的相乘操作滑凉,數(shù)字溢出不會(huì)報(bào)錯(cuò),會(huì)有精度的損失

問(wèn)題:對(duì)于滿足SQL92標(biāo)準(zhǔn)的SQL語(yǔ)句:

select foo,count(foo) from pokes where foo>10 group by foo having count (*)>5 order by foo
其執(zhí)行順序應(yīng)該是?
A捂蕴、FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY
B譬涡、FROM->GROUP BY->WHERE->HAVING->SELECT->ORDER BY
C闪幽、FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT
D啥辨、FROM->WHERE->ORDER BY->GROUP BY->HAVING->SELECT

解答:A

SQL解析.png

問(wèn)題:在Java中,包c(diǎn)om中定義了類TestUtil盯腌,在com的子包util中定義了同名類TestUtil溉知,給定如下Java代碼,編譯運(yùn)行時(shí),將發(fā)生( )
1 package test;
2 import com.util.TestUtil;
3 import com.TestUtil;
4 public class Test {
5   public static void main(String[] args)  {
6     TestUtil testutil = new TestUtil();
7   }
8 }

A级乍、創(chuàng)建了一個(gè)com.TestUtil對(duì)象
B舌劳、創(chuàng)建了一個(gè)com.util.TestUtil對(duì)象
C、運(yùn)行時(shí)出現(xiàn)異常
D玫荣、編譯無(wú)法通過(guò)

解答:D
根據(jù)JDK中ClassLoader類加載器知道甚淡,因?yàn)樵贘VM編譯的時(shí)候,因?yàn)閯?chuàng)建完源文件之后,程序先要被JVM中的java編譯器進(jìn)行編譯為.class文件捅厂,他自下而上去找架包搜索需要的引用的類贯卦,當(dāng)他發(fā)現(xiàn)同名的類的架包有兩個(gè),他就不知道使用哪個(gè)架包了,需要指定是那個(gè)包下面的類才可以編譯通過(guò)

問(wèn)題:如下代碼焙贷,執(zhí)行test()函數(shù)后撵割,屏幕打印結(jié)果為()
1 public class Test2
2{
3    public void add(Byte b)
4    {
5        b = b++;
6    }
7    public void test()
8    {
9         Byte a = 127;
10        Byte b = 127;
11        add(++a);
12        System.out.print(a + " ");
13        add(b);
14        System.out.print(b + "");
15    }
16}

A、127 127
B辙芍、128 127
C啡彬、129 128
D、以上都不對(duì)

解答:D
應(yīng)該是:-128 127
b++ 是先賦值再計(jì)算
++a 是先計(jì)算再賦值
add(a); 先執(zhí)行a = a + 1 (127 + 1) = 128故硅,再執(zhí)行add里面的運(yùn)算 b = b ++ ,前面說(shuō)到 b 是先賦值再計(jì)算庶灿,所以此次結(jié)果不會(huì)改變。最終結(jié)果為128吃衅,但是Byte 最大為127跳仿,超過(guò)了最大值,所以變成了最小值-128
add(b); 同上捐晶,b的結(jié)果不會(huì)改變所以為127.

問(wèn)題:以下程序運(yùn)行的結(jié)果為()
1 public class Example extends Thread{
2      @Override
3      public void run(){
4         try{
5              Thread.sleep(1000);
6              }catch (InterruptedException e){
7              e.printStackTrace();
8              }
9              System.out.print("run");
10      }
11      public static void main(String[] args){
12             Example example=new Example();
13             example.run();
14             System.out.print("main");
15     }
16}

A菲语、runmain
B、mainrun
C惑灵、main
D山上、run
E、不能確定

解答:A

1英支、run() 和 start() 的區(qū)別:

run() 方法和線程沒(méi)有關(guān)系

Thread 的 run方法如下:
public void run() {
       if (target != null) {
           target.run();
       }
}
target 就是實(shí)現(xiàn)了Thread的子類佩憾。這里就是Example。
其實(shí)可以看出就是調(diào)用了Example 的run方法干花。就相當(dāng)于普通方法調(diào)用
start() 方法才是啟動(dòng)一個(gè)線程了妄帘,通過(guò)查看源碼 方法上有個(gè)synchronized 修飾。

2池凄、線程的執(zhí)行流程
如題抡驼,程序運(yùn)行到example.run(); 會(huì)執(zhí)行這個(gè)方法,最后再執(zhí)行System.out.print(“main”);所以這個(gè)結(jié)果是:runmain

要是改成example.start(); 就是有兩個(gè)線程肿仑,一個(gè)是main主線程致盟,一個(gè)是example線程碎税,這時(shí)候兩個(gè)線程搶占鎖,誰(shuí)先搶到馏锡,誰(shuí)執(zhí)行雷蹂,所以最后結(jié)果是:無(wú)法確定
問(wèn)題:以下JAVA程序的輸出是什么()
1 public class HelloSogou{
2      public static synchronized void main(String[] a){
3          Thread t=new Thread(){
4              public void run(){Sogou();}
5      };
6      t.run();  
7      System.out.print("Hello");
8      }
9      static synchronized void Sogou(){
10      System.out.print("Sogou");
11     }
12 }

A、HelloSogou
B杯道、SogouHello
C匪煌、Hello
D、結(jié)果不確定

解答:B
如果是 t.start();使用start()方法區(qū)啟動(dòng)線程党巾,答案則是E.不確定虐杯,因?yàn)橛锌赡苁茿

這是因?yàn)椋哼@一點(diǎn)應(yīng)該至今沒(méi)有解決。這因?yàn)閺牟僮飨到y(tǒng)之間調(diào)用的問(wèn)題

因?yàn)閖ava線程源碼看是昧港,start最終他執(zhí)行的是本地方法start0擎椰,是直接調(diào)用操系統(tǒng)的線程的一個(gè)方法,而這個(gè)start0 他會(huì)調(diào)用一個(gè)native文件创肥,也就是我們的c文件达舒。但是這個(gè)c文件他并沒(méi)有直接去調(diào)用os(操作系統(tǒng))函數(shù)

他的實(shí)現(xiàn)是:start0會(huì)去調(diào)用操作系統(tǒng)函數(shù)的pthread_create創(chuàng)建線程的方法。這個(gè)創(chuàng)建方法會(huì)有一個(gè)傳回調(diào)方法的參數(shù)然后再由操作系統(tǒng)去掉用java的run方法叹侄。這一系列的調(diào)用巩搏。導(dǎo)致主線程main已經(jīng)執(zhí)行了

問(wèn)題:下面哪段程序能夠正確的實(shí)現(xiàn)了GBK編碼字節(jié)流到UTF-8編碼字節(jié)流的轉(zhuǎn)換:byte[] src,dst;
A、dst=String.fromBytes(src趾代,“GBK”).getBytes(“UTF-8”)
?
B贯底、dst=new String(src,“GBK”).getBytes(“UTF-8”)
?
C撒强、dst=new String(“GBK”禽捆,src).getBytes()
?
D飘哨、dst=String.encode(String.decode(src胚想,“GBK”)),“UTF-8” )

解答:B
String#getBytes(charset) 是將字符串以指定字符集進(jìn)行編碼成字節(jié)流
String(bytes,charset) 則是將字節(jié)流以指定字符集解碼成字符串

問(wèn)題:關(guān)于代碼中的變量在內(nèi)存中的存儲(chǔ)位置描述正確的是()
1 int a=0;
2 class someClass{
3    int b;
4    static int c;
5 };
6 int main(){
7    int d=0;
8    someClass *p=new someClass();
9    return 0;
10 }

A芽隆、堆浊服、棧、全局區(qū)均有變量
B胚吁、不存在堆區(qū)的變量
C牙躺、不存在棧區(qū)的變量
D、不存在全局變量區(qū)的變量

解答:A

問(wèn)題:假設(shè)MySQL數(shù)據(jù)庫(kù)表:
create table T{
    k int unsigned not null auto_increment,
    a date,
    b varchar(24),
    c int,d varchar(24),
    primary key(k),unique key a_index (a DESC,b DESC),
key k1(b),key k2?,key k3(d));

如下哪些sql語(yǔ)句查詢能較好的利用索引?()
A腕扶、select b from WHERE b like ‘a(chǎn)aa%’;
B孽拷、select a,b from T WHERE a=‘2015-10-25’ ORDER BY b ASC,c ASC;
C、select a,b,c from T WHERE a=‘2015-10-25’ ORDER BY b ASC;
D蕉毯、select a,b,c from T WHERE a=‘2015-10-25’ ORDER BY a,b;

解答:AD

問(wèn)題:已知a為不為空的數(shù)組乓搬,且變量b===a. 以下哪些方式可以清空數(shù)組, 使得a.length 與 b.length 都為 0;

A、b.len(0)
B代虾、a = []
C进肯、a.splice(0, a.length)
D、a = a.slice(a.length)

解答:C
java中沒(méi)有l(wèi)en()方法棉磨,故A不對(duì)
B選項(xiàng):相當(dāng)于a指向了一個(gè)新的數(shù)組江掩,新數(shù)組為空數(shù)組
C選項(xiàng):數(shù)組的splice(0,a.length)方法執(zhí)行后返回的是被刪除的項(xiàng)乘瓤,執(zhí)行后刪除了數(shù)組的每一項(xiàng)环形,原數(shù)組發(fā)生改變
D選項(xiàng):數(shù)組的slice(a.length)方法執(zhí)行后返回空數(shù)組,賦值給a,但是這個(gè)方法對(duì)原數(shù)組不會(huì)產(chǎn)生影響衙傀,所以b.length不為0

問(wèn)題:計(jì)算f(10)時(shí)抬吟,f()被調(diào)用了多少次?
1 int f(int x) {
2    if(x <= 2)
3        return 1;
4    return f(x - 2) + f(x - 4) + 1;
5}

A统抬、14
B火本、18
C、20
D聪建、24
E钙畔、以上都不是

解答:E
基于偶數(shù)遞歸樹(shù),應(yīng)該是15次

問(wèn)題:以下計(jì)算斐波那契數(shù)列的函數(shù)時(shí)間復(fù)雜度為()
1  int Fibonacci(int n)
2 {
3    if(n==0)
4      return 0;
5    else if(n==1)
6      return 1;
7    else
8      return Fibonacci(n-1)+Fibonacci(n-2)
9 }

A金麸、O(nlogn)
B擎析、O(n^2)
C、O(n)
D挥下、O(2^n)

解答:D

問(wèn)題:有以下程序段,下面正確的選項(xiàng)是()
1 class DemoThread extends Thread {
2     public static void main(String args[]) {
3         DemoThread threadOne = new DemoThread();
4         DemoThread threadTwo = new DemoThread();
5         threadOne.start();
6         System.out.print("thread one.");
7         threadTwo.start();
8         System.out.print("thread two.");
9     }
10     public void run() {
11         System.out.print("Thread.");
12     }
13 }

A揍魂、編譯失敗
B、程序運(yùn)行結(jié)果為:thread one.Thread.thread two.Thread.
C棚瘟、程序運(yùn)行結(jié)果是:thread one.thread two.Thread.Thread.
D愉烙、程序運(yùn)行結(jié)果不確定

解答:D
因?yàn)閖ava線程源碼看是,start最終他執(zhí)行的是本地方法start0解取,是直接調(diào)用操系統(tǒng)的線程的一個(gè)方法
而這個(gè)start0 他會(huì)調(diào)用一個(gè)native文件步责,也就是我們的c文件。但是這個(gè)c文件他并沒(méi)有直接去調(diào)用os(操作系統(tǒng))函數(shù)

他的實(shí)現(xiàn)是:start0會(huì)去調(diào)用操作系統(tǒng)函數(shù)的pthread_create創(chuàng)建線程的方法禀苦,這個(gè)創(chuàng)建方法會(huì)有一個(gè)傳回調(diào)方法的參數(shù)然后再由操作系統(tǒng)去掉用java的run方法蔓肯,這一系列的調(diào)用,導(dǎo)致主線程main已經(jīng)執(zhí)行了振乏,所以這里最終那個(gè)線程先執(zhí)行run方法并不確定

問(wèn)題:下面java程序的運(yùn)行結(jié)果是()
1  class A {
2     static {
3         System.out.print("A");
4    }
5     public A() {
6         System.out.print("a");
7     }
8     void say() {
9         System.out.print("1");
10     }
11 }
12 class B extends A {
13    static {
14        System.out.print("B");
15    }
16    public B() {
17         System.out.print("b");
18     }
19    void say() {
20        System.out.print("2");
21     }
22 }
23 public class Hello {
24     public static void main(String[] args) {
25         A ab = new B();
26         ab.say();
27         ab = new B();
28         ab.say();
29     }
30 }

A蔗包、ABab2ABab2
B、AaBb1AaBb2
C慧邮、ABab1ab2
D调限、ABab2ab2

解答:D
這題考的是static 和 構(gòu)造函數(shù)的執(zhí)行順序
先執(zhí)行父類static塊舟陆,在執(zhí)行子類static塊,static塊只執(zhí)行一次耻矮。 所以只有一個(gè)AB秦躯,然后就是構(gòu)造方法,先執(zhí)行父類的裆装,在執(zhí)行子類的踱承,因?yàn)閚ew了兩次,所以有兩個(gè)ab哨免,緊接著調(diào)用了兩次say方法茎活,所以有兩個(gè)2

問(wèn)題:Linux進(jìn)程內(nèi)存空間有以下幾個(gè)部分:

1.stack
2.heap
3.bss segment
4.code segment/text segment
5.data segment
它們從高地址到低地址的分布順序?yàn)?)
A、45321
B琢唾、12354
C载荔、45312
D、21354

解答:B

image.png

1采桃、棧(Stack): 由編譯器自動(dòng)分配釋放管理. 用于函數(shù)調(diào)用,保存函數(shù)的返回地址,函數(shù)的參數(shù),函數(shù)內(nèi)部定義的局部變量

2身辨、堆(heap) : 需要由程序員分配釋放管理,若程序員不釋放芍碧,程序結(jié)束時(shí)可能由OS回收煌珊。通常在堆中進(jìn)行動(dòng)態(tài)存儲(chǔ)分配。(建議一定要手動(dòng)釋放,不然會(huì)造成內(nèi)存泄漏)

3泌豆、未被初始化數(shù)據(jù)段(bbs):它屬于靜態(tài)存儲(chǔ)區(qū),但是該段中的數(shù)據(jù)沒(méi)有經(jīng)過(guò)初始化.即存放未初始化的靜態(tài)變量或全局變量

4定庵、數(shù)據(jù)段(data):數(shù)據(jù)段分為讀寫(xiě)數(shù)據(jù)段和只讀數(shù)據(jù)段
讀寫(xiě)數(shù)據(jù)段:已初始化的全局變量或者已初始化的靜態(tài)變量
只讀數(shù)據(jù)段:只讀全局量和只讀局部量(使用const); 程序中使用的常量

5、代碼段(text):即二進(jìn)制代碼,代碼段是只讀的,可被多個(gè)進(jìn)程共享

問(wèn)題:假定x=500踪危,求下面函數(shù)的返回值()
1 int fun(int x)
2{
3    int countx = 0;
4    while (x)
5    {
6        countx++;
7        x = x & (x – 1);
8    }
9    return countx;
10}

A蔬浙、2
B、3
C贞远、5
D畴博、6

解答:D
x = x & x-1 # 將x的二進(jìn)制表示最后一位1變成0,那么整段代碼的目的就是求x二進(jìn)制表示1的個(gè)數(shù)
500 -> 111110100蓝仲,有6個(gè)1

問(wèn)題:其中 alert 兩次輸出結(jié)果為()
1 var foo=”hello”;
2(function(){
3    var bar=”world”;
4    alert(foo+bar);
5})();
6alert(foo+bar);

A俱病、hello world報(bào)錯(cuò)
B、hello world hello world
C袱结、hello world hello
D亮隙、hello world

解答:A
外面的 alert 找不到變量 bar 的定義

問(wèn)題:設(shè)有一個(gè)遞歸算法如下
1 int f(int n) {
2    if(n<=3) return 1;
3    else return f(n-2)+f(n-6)+1;
4}

試問(wèn)計(jì)算f(f(9))時(shí)需要計(jì)算()次f函數(shù)。
A垢夹、10
B溢吻、11
C、12
D果元、14

解答:C
一促王、先算內(nèi)層f(9)
[1] 計(jì)算 f(9) = f(7) + f(3) + 1;
[2] 計(jì)算[1]中 f(7) = f(5) + f(1) + 1;
[3] 計(jì)算[2]中 f(5) = f(3) + f(-1) + 1;
[4] 計(jì)算[3]中 f(3) = 1;
[5] 計(jì)算[3]中 f(-1) = 1;
{至此f(5)可計(jì)算得: f(5) = 1 + 1 + 1 = 3}
[6] 計(jì)算(1)中f(1) = 1;
{至此f(7)可計(jì)算得 :f(7) = 3 + 1 + 1 = 5}
[7] 計(jì)算[1]中f(3) = 1;
{至此f(9)可計(jì)算得:f(9) = 5 + 1 + 1 = 7}
計(jì)算f(9)一共調(diào)用了7次函數(shù)
二犀盟、計(jì)算外層f(7) 由上面步驟可知,計(jì)算f(7)調(diào)用了5次函數(shù) 所以一共調(diào)用了函數(shù)7+5=12次

問(wèn)題:下面函數(shù)的時(shí)間復(fù)雜度是()
1 long foo(long x){
2    if(x<2) return 1;
3        return x*x*foo(x-1);
4}

A蝇狼、O(N)
B阅畴、O(N^2)
C、O(N^3)
D题翰、o(N!)

解答:A
這是一個(gè)遞歸算法恶阴,如:n表示遞歸次數(shù)
foo(2)=22foo(1) n=2
foo(3)=33foo(2) n=3
foo(4)=44foo(3) n=4
………………
依次類推:
foo(N)=NNfoo(N-1) n= (N)

當(dāng)n>=2時(shí)
foo(n)=n2foo(n-1)=n2(n-1)2foo(n-2)=…=n2(n-1)^2*…2foo(1);
遞歸n-1步诈胜,時(shí)間復(fù)雜度為O(n)
因此時(shí)間復(fù)雜度為:O(N)

問(wèn)題:運(yùn)行以下程序
1 <script> 
2    var m= 1, j = k = 0; 
3    function add(n) { 
4        return n = n+1; 
5  } 
6    y = add(m); 
7    function add(n) { 
8        return n = n + 3; 
9    } 
10z = add(m); 
11</script> 

y和z的最終結(jié)果為:
A豹障、2,4
B、4,4
C焦匈、2,2
D血公、報(bào)異常

解答:B
javascript沒(méi)有函數(shù)重載,如果存在兩個(gè)同名函數(shù)缓熟,后一個(gè)函數(shù)會(huì)覆蓋前一個(gè)函數(shù)累魔;解析器在讀取、加載數(shù)據(jù)時(shí)會(huì)先讀取函數(shù)聲明再讀取函數(shù)表達(dá)式够滑,綜上垦写,y和z的值都為4

問(wèn)題:下面的輸出結(jié)果()
(function() {
2      var a = b = 5;
3  })();   
4console.log(b);
5console.log(a);

A?、5彰触,5
B梯投、undefined,undefined
C况毅、5分蓖,undefined
D、5尔许,Uncaught ReferenceError: a is not defined

解答:D
由于 a 和 b 都定義在函數(shù)的封閉范圍內(nèi)么鹤,并且都始于 var關(guān)鍵字,大多數(shù)JavaScript開(kāi)發(fā)人員期望 typeof a 和 typeof b 在上面的例子中都是undefined

然而味廊,事實(shí)并非如此蒸甜。這里的問(wèn)題是,大多數(shù)開(kāi)發(fā)人員將語(yǔ)句 var a = b = 5; 錯(cuò)誤地理解為是以下聲明的簡(jiǎn)寫(xiě):
var b = 5;
var a = b;

但事實(shí)上余佛,var a = b = 5; 實(shí)際是以下聲明的簡(jiǎn)寫(xiě):
b = 5;
var a = b;
既然語(yǔ)句 var a = b = 3; 是語(yǔ)句 b = 3; 和 var a = b;的簡(jiǎn)寫(xiě)迅皇, b 最終成為了一個(gè)全局變量(因?yàn)樗鼪](méi)有前綴 var 關(guān)鍵字),因此仍然在范圍內(nèi)甚至封閉函數(shù)之外
在嚴(yán)格模式下(即使用 use strict)衙熔,語(yǔ)句var a = b = 3; 將生成ReferenceError: a is not defined的運(yùn)行時(shí)錯(cuò)誤登颓,從而避免任何否則可能會(huì)導(dǎo)致的headfakes /bug

問(wèn)題:NumberList是一個(gè)順序容器,以下代碼執(zhí)行后红氯,NumberList里的元素依次為
1 List<int> NumberList = new List<int>(){2,4,1,3,5};
2 for(int i = 0;i<NumberList.Count;++i)
3{
4    int v = NumberList[i];
5    if(v%2 = = 0)
6    {
7        NumberList.Remove(v);//刪除的是元素框咙,而非下標(biāo)
8    }
9}

A咕痛、2,4,1,3,5
B、2,1,3,5
C喇嘱、4,1,3,5
D茉贡、1,3,5

解答:C
類似于Java中的ArrayList,初始時(shí)Arraylist為{2,4,1,3,5}

第一次循環(huán) i=0;v=2;2是偶數(shù)者铜,所以把2從ArrayList中移除腔丧,這時(shí)ArrayList變?yōu)閧4,1,3,5}

第二次循環(huán)i=1;v=1(因?yàn)樾碌腁rrayList中4的索引是0),1不是偶數(shù),
依次 3和 5都不是偶數(shù)作烟,所以只刪除了元素2愉粤,那么剩下的就是{4,1,3,5}

問(wèn)題:執(zhí)行某操作,前50次成功拿撩,第51次失敗a全部回滾b前50次提交第51次拋異常衣厘,ab場(chǎng)景分別如何設(shè)置Spring(傳播性)?

解答:
a压恒、全部回滾 父類方法加事務(wù)PROPAGATION_REQUIRED

b影暴、第51次拋異常 父類方法加事務(wù)PROPAGATION_REQUIRED子類方法加事務(wù)PROPAGATION_REQUIRES_NEW

問(wèn)題:檢查程序探赫,是否存在問(wèn)題型宙,如果存在指出問(wèn)題所在,如果不存在伦吠,說(shuō)明輸出結(jié)果
1 public class HelloB extends HelloA 
2{
3 public HelloB()
4 {
5 }
6 {
7     System.out.println("I’m B class");
8 }
9 static
10{
11     System.out.println("static B");
12 }
13 public static void main(String[] args)
14 {
15     new HelloB();
16 }
17}
18class HelloA
19{
20 public HelloA()
21 {
22 }
23 {
24     System.out.println("I’m A class");
25 }
26 static
27 {
28     System.out.println("static A");
29 }
30}

A妆兑、static A
I’m A class
static B
I’m B class
?
B、I’m A class
I’m B class
static A
static B

C讨勤、static A
static B
I’m A class
I’m B class
?
D箭跳、I’m A class
static A
I’m B class
static B

解答:C
構(gòu)造方法是只有你在new對(duì)象的時(shí)候才會(huì)執(zhí)行,
靜態(tài)語(yǔ)句塊和靜態(tài)方法在類加載到內(nèi)存的時(shí)候就已經(jīng)執(zhí)行了

靜態(tài)語(yǔ)句塊只能給靜態(tài)變量賦值,里面不能出現(xiàn)方法,同樣,靜態(tài)方法里面也不能出現(xiàn)靜態(tài)語(yǔ)句塊

所以先是靜態(tài)語(yǔ)句塊執(zhí)行,然后靜態(tài)方法加載到內(nèi)存,靜態(tài)語(yǔ)句塊你不管它它自動(dòng)會(huì)執(zhí)行潭千,而靜態(tài)方法它一直存在于內(nèi)存中谱姓,只有你用類名點(diǎn)方法名的時(shí)候才會(huì)執(zhí)行

{
     System.out.println("I’m A class");
}

他是非靜態(tài)代碼塊,如果都是靜態(tài)代碼刨晴,一個(gè)類里面屉来,按照先后順序執(zhí)行,父子之間狈癞,父類靜態(tài)代碼塊先執(zhí)行

正確順序是:
父類A靜態(tài)代碼塊->子類B靜態(tài)代碼塊->父類A非靜態(tài)代碼塊->父類A構(gòu)造函數(shù)->子類B非靜態(tài)代碼塊->子類B構(gòu)造函數(shù)

問(wèn)題:檢查程序茄靠,是否存在問(wèn)題,如果存在指出問(wèn)題所在蝶桶,如果不存在慨绳,說(shuō)明輸出結(jié)果
1package algorithms.com.guan.javajicu; 
2public class Example { 
3  String str = new String("good"); 
4  char[] ch = {'a','b','c'}; 
5  public static void main(String[] args) { 
6     Example ex = new Example(); 
7     ex.change(ex.str, ex.ch); 
8     System.out.print(ex.str +"and"); 
9     System.out.print(ex.ch);  
10  } 
11    
12  public void change(String str, char ch[]){ 12
13     str= "test ok"; 
14     ch[0]= 'g'; 
15  } 
16} 

A、test okandabc
B、test okandgbc
C脐雪、goodandabc
D厌小、goodandgbc

解答:D
數(shù)組:
使用一個(gè)"new"創(chuàng)建一個(gè)對(duì)象時(shí),在堆中會(huì)分配一段內(nèi)存空間战秋,并返回一個(gè)引用璧亚。這一點(diǎn)對(duì)于數(shù)組也適用,因?yàn)樵趈ava中脂信,數(shù)組也是對(duì)象

字符串:
1癣蟋、顯式的String常量
str= “test ok”;
代碼執(zhí)行后就在常量池中創(chuàng)建了一個(gè)值為test ok的String對(duì)象;
此時(shí)該字符串的引用在虛擬機(jī)棧里面

2狰闪、String對(duì)象
String str = new String(“good”);
Class被加載時(shí)就在常量池中創(chuàng)建了一個(gè)值為good的String對(duì)象疯搅,執(zhí)行時(shí)會(huì)在堆里創(chuàng)建new String(“good”)對(duì)象

問(wèn)題:下面代碼運(yùn)行后,變量 total 的結(jié)果是?
1 int total = 0;
2 for (int i = 0, j = 5; total < 10 || j > 3; ++i, --j) {
3     total += (i + j);
4 }

A、5
B尝哆、10
C秉撇、無(wú)法通過(guò)編譯
D甜攀、運(yùn)行時(shí)出錯(cuò)
E秋泄、運(yùn)行時(shí)死循環(huán)

解答:B
for循環(huán)的表達(dá)式一般如下:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
    表達(dá)式4;
}

執(zhí)行的順序?yàn)椋?br> 1)第一次循環(huán),即初始化循環(huán)规阀。
首先執(zhí)行表達(dá)式1(一般為初始化語(yǔ)句)恒序,再執(zhí)行表達(dá)式2(一般為條件判斷語(yǔ)句),判斷表達(dá)式1是否符合表達(dá)式2的條件谁撼,如果符合歧胁,則執(zhí)行表達(dá)式4,否則厉碟,停止執(zhí)行喊巍,最后執(zhí)行表達(dá)式3
2)下次的循環(huán):
首先執(zhí)行表達(dá)式2,判斷表達(dá)式3是否符合表達(dá)式2的條件箍鼓;如果符合崭参,繼續(xù)執(zhí)行表達(dá)式4,否則停止執(zhí)行款咖,最后執(zhí)行表達(dá)式3.如果往復(fù)何暮,直到表達(dá)式3不再滿足表達(dá)式2的條件怜俐。

總的來(lái)說(shuō)膨蛮,執(zhí)行順序是一致的,先進(jìn)行條件判斷(表達(dá)式2)休里,再執(zhí)行函數(shù)體(表達(dá)式4)富腊,最后執(zhí)行表達(dá)式3坏逢,如此往復(fù),區(qū)別在于,條件判斷的對(duì)象是整,在第一次判斷時(shí)俯树,是執(zhí)行表達(dá)式1,初始化對(duì)象贰盗,后續(xù)的判斷對(duì)象是執(zhí)行后的結(jié)果(表達(dá)式3)

本題執(zhí)行順序?yàn)椋?br> total += (i + j); => i=0,j=5 , total=5
++i, --j ; => i=1,j=4 , total=5
total += (i + j); => i=1,j=4 , total=10
++i, --j ; => i=2,j=3 , total=10

問(wèn)題:執(zhí)行以下程序后的輸出結(jié)果是()
1public class Test {
2public static void main(String[] args) {
3    StringBuffer a = new StringBuffer("A"); 
4    StringBuffer b = new StringBuffer("B"); 
5    operator(a, b); 
6    System.out.println(a + "," + b); 
7} 
8public static void operator(StringBuffer x, StringBuffer y) { 
9    x.append(y); y = x; 
10}
11}

A许饿、A,A
B、A,B
C舵盈、B,B
D陋率、AB,B

解答:D
a和x是同個(gè)地址,b和y是同個(gè)地址秽晚,然后執(zhí)行x.append(y)就把y的值放在x的地址里面此時(shí)a地址和x是同一個(gè)所以a就是AB了瓦糟,接著執(zhí)行y=x是把x的地址給y,這時(shí)候axy屬于同一個(gè)地址赴蝇,所以y=x 只是改變了y的地址沒(méi)改變b的地址菩浙,所以b還是B

問(wèn)題:以下java程序代碼,執(zhí)行后的結(jié)果是()
1 public class Test {
2    public static void main(String[] args) {   
3        Object o = new Object() {  
4             public boolean equals(Object obj) {  
5                 return true; 
6         }
7     };   
8     System.out.println(o.equals("Fred"));
9     }
10}

A句伶、Fred
B劲蜻、true
C、編譯錯(cuò)誤
D考余、運(yùn)行時(shí)拋出異常

解答:B
重寫(xiě)了object 的equals 的方法先嬉,使他怎么輸出都是tue
相當(dāng)于創(chuàng)建了一個(gè)方法無(wú)論傳入什么對(duì)象返回都是true

問(wèn)題:下面代碼運(yùn)行結(jié)果是()
1 public class Test{ 
2    public int add(int a,int b){   
3         try {
4             return a+b;      
5        } 
6        catch (Exception e) {  
7            System.out.println("catch語(yǔ)句塊");
8         }
9         finally{ 
10             System.out.println("finally語(yǔ)句塊");
11         }
12         return 0;
13    } 
14     public static void main(String argv[]){ 
15         Test test =new Test(); 
16         System.out.println("和是:"+test.add(9, 34)); 
17     }
18}

A、catch語(yǔ)句塊
和是:43
B楚堤、編譯異常
C疫蔓、finally語(yǔ)句塊
和是:43
D、和是:43
finally語(yǔ)句塊

解答:C
try身冬、catch衅胀、finally 這個(gè)過(guò)程也就是這樣,如果try catch finally 都有return:
1酥筝、在沒(méi)有異常的情況下滚躯,try 中的返回值先保存到臨時(shí)區(qū)域里在去執(zhí)行finally ,這個(gè)finally 有返回值樱哼,這個(gè)返回值將之前try中的保存到臨時(shí)區(qū)域的值用返回的這個(gè)值替換哀九,再將這個(gè)臨時(shí)區(qū)域中的值返回給上一級(jí)方法。
2搅幅、如果有異常阅束,則執(zhí)行catch中的代碼,這里的return 將返回一個(gè)返回值放到臨時(shí)區(qū)域茄唐,再去執(zhí)行finally 息裸,這個(gè)finally有返回值蝇更,這樣就將catch中存在臨時(shí)區(qū)域中的值用這個(gè)finally 返回的值替換掉,在將這個(gè)臨時(shí)區(qū)域的值返回給上一級(jí)方法呼盆。
System.out.println(“和是:”+test.add(9, 34)); 這是進(jìn)行字符串拼接是一個(gè)整體年扩,所以首先是進(jìn)入add方法中,進(jìn)去之后先把先不運(yùn)算result访圃,而是輸出finally塊厨幻。注意:此時(shí)finally塊輸出結(jié)果是:finally語(yǔ)句塊,這句話首先打印到控制臺(tái)中腿时。打印完后返回來(lái)執(zhí)行try中的return得到43况脆,所以此時(shí)再將結(jié)果與"和是:"進(jìn)行拼接–>輸出:和是 43。所以此時(shí)控制臺(tái)又多了一句話:和是 43批糟。加上之前finally先在控制臺(tái)上的輸出格了,所以結(jié)果為:finally語(yǔ)句塊 和是 43

問(wèn)題:關(guān)于下面代碼片段敘述正確的是()
byte b1=1,b2=2,b3,b6; 
final byte b4=4,b5=6; 
b6=b4+b5; 
b3=(b1+b2); 
System.out.println(b3+b6);

A、輸出結(jié)果:13
B徽鼎、語(yǔ)句:b6=b4+b5編譯出錯(cuò)
C盛末、語(yǔ)句:b3=b1+b2編譯出錯(cuò)
D、運(yùn)行期拋出異常

解答:C
被final修飾的變量不會(huì)自動(dòng)轉(zhuǎn)換類型
b4,b5被final修飾否淤,所以不會(huì)轉(zhuǎn)成int類型
b1,b2沒(méi)有被final修飾悄但,會(huì)轉(zhuǎn)成int類型相加,得到的結(jié)果也是int叹括,從大的范圍變成小的范圍需要強(qiáng)轉(zhuǎn)算墨,同時(shí)需要注意不要超出小的范圍宵荒,不然計(jì)算結(jié)果不正確

問(wèn)題:現(xiàn)有二叉搜索樹(shù)(BST)前序遍歷結(jié)果序列為abdefgc汁雷,中序遍歷結(jié)果序列為debgfac,請(qǐng)問(wèn)后序遍歷結(jié)果序列?

A报咳、debgfac
B侠讯、edgfbca
C、edgbfca
D暑刃、degbfac

解答:B
前序遍歷:
1.訪問(wèn)根節(jié)點(diǎn)
2.前序遍歷左子樹(shù)
3.前序遍歷右子樹(shù)
中序遍歷:
1.中序遍歷左子樹(shù)
2.訪問(wèn)根節(jié)點(diǎn)
3.中序遍歷右子樹(shù)
后序遍歷:
1.后序遍歷左子樹(shù)
2.后序遍歷右子樹(shù)
3.訪問(wèn)根節(jié)點(diǎn)

問(wèn)題:下面代碼輸出的結(jié)果是厢漩?
public class NULL {
public static void print(){
    System.out.println(“MTDP”);
}
public static void main(String[] args) {
    try{
        ((NULL)null).print(); 
    }catch(NullPointerException e){
        System.out.println("NullPointerException");
    }
}
}

A、NullPointerException
B岩臣、MTDP
C溜嗜、都不輸出
D、無(wú)法正常編譯

解答:B
因?yàn)閚ull值可以強(qiáng)制轉(zhuǎn)換為任何java類類型架谎,(String)null也是合法的炸宵。但null強(qiáng)制轉(zhuǎn)換后是無(wú)效對(duì)象,其返回值還是為null谷扣,而static方法的調(diào)用是和類名綁定的土全,不借助對(duì)象進(jìn)行訪問(wèn)所以能正確輸出。反過(guò)來(lái),沒(méi)有static修飾就只能用對(duì)象進(jìn)行訪問(wèn)裹匙,使用null調(diào)用對(duì)象肯定會(huì)報(bào)空指針錯(cuò)了

問(wèn)題:以下JSP代碼定義了一個(gè)變量瑞凑,如何輸出這個(gè)變量的值?

<bean:define id=“stringBean” value=“helloWorld”/>

A概页、<bean:write name=“helloWorld”/>
B籽御、<%=stringBean%>
C、<bean:write name=“stringBean”/>
D惰匙、<%String myBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);%><%=myBean%>

解答:BCD

用Struts 的bean:define 標(biāo)簽定義了一個(gè)字符串變量 stringBean ,它的值為 helloworld

A:bean:write相當(dāng)于 <%=request.getAttribute(“something”)%> 其中 something 是屬性的名字篱蝇。所以 A 錯(cuò),C對(duì)
B:通過(guò)Jsp 表達(dá)式 獲取變量 stringBean 的值
D:通過(guò) pageContext(PageContext類的實(shí)例徽曲,提供對(duì)JSP頁(yè)面所有對(duì)象以及命名空間的訪問(wèn)) 獲取stringBean 的值零截,賦給 String 類型的變量 myBean,然后通過(guò) Jsp 表達(dá)式 處理該值

問(wèn)題:下面函數(shù)將返回秃臣?

1 public static int func (){
2 try{
3 return 1;
4 }catch (Exception e){
5 return 2;
6 }finally{
7 return 3;
8 }
9}
A涧衙、1
B、2
C奥此、3
D弧哎、編譯錯(cuò)誤

解答:C

try{
       return 1;     //  這里會(huì)執(zhí)行,但是不會(huì)立刻return稚虎,return之前會(huì)繼續(xù)執(zhí)行finally代碼
   }catch (Exception e){
        return 2;   // 異常才會(huì)執(zhí)行
   }finally{
       return 3;  // 無(wú)論如何這里都會(huì)執(zhí)行撤嫩,如果finally有return會(huì)立刻返回
   }
問(wèn)題:設(shè) m 和 n 都是 int 類型,那么以下 for 循環(huán)語(yǔ)句蠢终,___
for(m=0,n=-1;n=0;m++,n++)
   n++;

A序攘、循環(huán)體一次也不執(zhí)行
B、循環(huán)體執(zhí)行一次
C寻拂、是無(wú)限循環(huán)
D程奠、有限次循環(huán)
E、循環(huán)結(jié)束判斷條件不合法
F祭钉、運(yùn)行出錯(cuò)

解答:A
執(zhí)行順序:
(1)初始化m=0,n=-1
(2)循環(huán)條件n=0瞄沙,為假,所以循環(huán)體一次也不執(zhí)行

問(wèn)題:下面程序運(yùn)行的結(jié)果是慌核?
public static void main(String args[]) {  
     Thread t = new Thread() {  
         public void run() {  
             pong();  
         }  
     };  
t.run();  
System.out.print("ping");  
}  
static void pong() {  
    System.out.print("pong");  
}

A距境、pingpong
B、pongping
C垮卓、pingpong和pongping都有可能
D垫桂、都不輸出

解答:B
t.run();直接執(zhí)行java線程,主線被搶占

@FunctionalInterface
public interface Runnable {
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see     java.lang.Thread#run()
     */
    public abstract void run();
}

如果t.start();則答案是C
因?yàn)閖ava線程源碼看是,start最終他執(zhí)行的是本地方法start0扒接,是直接調(diào)用操系統(tǒng)的線程的一個(gè)方法伪货。
而這個(gè)start0 他會(huì)調(diào)用一個(gè)native文件们衙,也就是我們的c文件。但是這個(gè)c文件他并沒(méi)有直接去調(diào)用os(操作系統(tǒng))函數(shù)碱呼。他的實(shí)現(xiàn)是:start0會(huì)去調(diào)用操作系統(tǒng)函數(shù)的pthread_create創(chuàng)建線程的方法蒙挑。這個(gè)創(chuàng)建方法會(huì)有一個(gè)傳回調(diào)方法的參數(shù)然后再由操作系統(tǒng)去掉用java的run方法。這一系列的調(diào)用愚臀∫涫矗可能導(dǎo)致主線程main已經(jīng)執(zhí)行了。

問(wèn)題:閱讀以下JAVA程序段姑裂,執(zhí)行結(jié)果正確的是( )
public class Test
{
      public static void main (String[]  args)
      {
          Byte var1 = 126;
          Byte var2 = 127;
          Byte var3 = var1 + var2;   //第7行
      }
}

A馋袜、編譯成功并且變量var3的值為253
B、第7行有錯(cuò)誤導(dǎo)致編譯不成功
C舶斧、第7行有“溢出”導(dǎo)致執(zhí)行失敗
D欣鳖、編譯成功并且變量var3的值為1

解答:B
byte類型進(jìn)行運(yùn)算時(shí)會(huì)自動(dòng)轉(zhuǎn)化為int類型,需要強(qiáng)轉(zhuǎn)

問(wèn)題:下面代碼的運(yùn)行結(jié)果是( )
public class Arraytest 
{ 
int a[] = new int[6]; 
public static void main ( String arg[] ) { 
System.out.println ( a[0] ); 
} 
}

A茴厉、null
B泽台、0
C、編譯出錯(cuò)
D矾缓、運(yùn)行出錯(cuò)

解答:C
類的靜態(tài)成員(變量和方法)屬于類本身怀酷,在類加載的時(shí)候就會(huì)分配內(nèi)存;
非靜態(tài)成員(變量和方法)屬于類的對(duì)象嗜闻,所以只有在類的對(duì)象產(chǎn)生(創(chuàng)建類的實(shí)例)時(shí)才會(huì)分配內(nèi)存蜕依,然后通過(guò)類的對(duì)象(實(shí)例)去訪問(wèn)

因?yàn)閍是非靜態(tài)變量;
在一個(gè)類的靜態(tài)成員中去訪問(wèn)其非靜態(tài)成員之所以會(huì)出錯(cuò)是因?yàn)樵陬惖姆庆o態(tài)成員不存在的時(shí)候類的靜態(tài)成員就已經(jīng)存在了琉雳,訪問(wèn)一個(gè)內(nèi)存中不存在的東西就會(huì)出錯(cuò)

問(wèn)題:執(zhí)行如下程序样眠,輸出結(jié)果是( )
class MyTest { 
public static void main(String[] args) { 
Integer first = new Integer(3); 
Integer second = 3; 
int three = 3; 
System.out.println(first==second); 
System.out.println(first==three); 
} 
}

A、falsetrue
B咐吼、falsefalse
C吹缔、truetrue
D、truefalse

解答:A
1锯茄、int 和Integer在進(jìn)行比較的時(shí)候,Integer會(huì)進(jìn)行拆箱茶没,轉(zhuǎn)為int值與int進(jìn)行比較

2肌幽、Integer與Integer比較的時(shí)候,由于直接賦值的時(shí)候會(huì)進(jìn)行自動(dòng)的裝箱抓半,那么這里就需要注意兩個(gè)問(wèn)題喂急,一個(gè)是-128<= x<=127的整數(shù),將會(huì)直接緩存在IntegerCache中笛求,那么當(dāng)賦值在這個(gè)區(qū)間的時(shí)候廊移,不會(huì)創(chuàng)建新的Integer對(duì)象糕簿,而是從緩存中獲取已經(jīng)創(chuàng)建好的Integer對(duì)象。二:當(dāng)大于這個(gè)范圍的時(shí)候狡孔,直接new Integer來(lái)創(chuàng)建Integer對(duì)象

3懂诗、new Integer(1) 和Integer a = 1不同,前者會(huì)創(chuàng)建對(duì)象苗膝,存儲(chǔ)在堆中殃恒,而后者因?yàn)樵?128到127的范圍內(nèi),不會(huì)創(chuàng)建新的對(duì)象辱揭,而是從IntegerCache中獲取的离唐。那么Integer a = 128, 大于該范圍的話才會(huì)直接通過(guò)new Integer(128)創(chuàng)建對(duì)象,進(jìn)行裝箱

下面的程序?qū)?lái)打印什么?()
1 public class TestIncr {
2    public static void main(String args[]) {
3        int i = 0;
4        i = i++ + i;
5        System.out.println("I = "a + i);
6    }
7}

A问窃、I = 1
B亥鬓、I = 2
C、I = 3
D域庇、編譯出錯(cuò)

解答:D

問(wèn)題:以下類定義中的錯(cuò)誤是什么贮竟?()
1 abstract class xy
2{
3    abstract sum (int x, int y) { }
4}

A、沒(méi)有錯(cuò)誤
B较剃、類標(biāo)題未正確定義
C咕别、方法沒(méi)有正確定義
D、沒(méi)有定義構(gòu)造函數(shù)

解答:C
有兩個(gè)問(wèn)題1:不應(yīng)該有{ }写穴,2:沒(méi)有返回值

問(wèn)題:針對(duì)下面的代碼塊,哪個(gè)equal為true:()
String s1 = "xiaopeng" ;
String s2 = "xiaopeng" ;
String s3 =new String;

A惰拱、s1 == s2
B、s1 = s2
C啊送、s2 == s3
D偿短、都不正確

解答:A
== 用法:
如果作用于基本數(shù)據(jù)類型的變量,則直接比較其存儲(chǔ)的 “值”是否相等

如果作用于引用類型的變量馋没,則比較的是所指向的對(duì)象的地址昔逗, 比較的是兩個(gè)變量是否指向同一個(gè)對(duì)象

使用字符串常量給String變量賦值,s1和s2字符串常量會(huì)被存進(jìn)內(nèi)存的常量池里面篷朵,供整個(gè)程序使用勾怒,所以s1和s2實(shí)際是引用了同一個(gè)字符串對(duì)象,地址相同声旺,而new出來(lái)的是在存在堆內(nèi)存中笔链,單獨(dú)的一份,所以s3和另外兩個(gè)地址不同

問(wèn)題:嘗試編譯以下程序會(huì)產(chǎn)生怎么樣的結(jié)果腮猖?()
1 public class MyClass {
2    long var;
3    public void MyClass(long param) { var = param; }//(1)
4    public static void main(String[] args) {
5        MyClass a, b;
6        a =new MyClass();//(2)
7        b =new MyClass(5);//(3)
8    }
9 }

A鉴扫、編譯錯(cuò)誤將發(fā)生在(1),因?yàn)闃?gòu)造函數(shù)不能指定返回值
B澈缺、編譯錯(cuò)誤將發(fā)生在(2)坪创,因?yàn)樵擃悰](méi)有默認(rèn)構(gòu)造函數(shù)
C炕婶、編譯錯(cuò)誤將在(3)處發(fā)生,因?yàn)樵擃悰](méi)有構(gòu)造函數(shù)莱预,該構(gòu)造函數(shù)接受一個(gè)int類型的參數(shù)
D柠掂、該程序?qū)⒄_編譯和執(zhí)行

解答:C
因?yàn)镸yClass不是構(gòu)造函數(shù),而是一個(gè)普通的方法锁施。又因?yàn)橐粋€(gè)類陪踩,如果不自定義構(gòu)造方法,會(huì)有個(gè)缺省的構(gòu)造方法悉抵,所有(2)處是不會(huì)報(bào)錯(cuò)誤的肩狂。而缺省的構(gòu)造方法是無(wú)參的。所以在(3)處會(huì)報(bào)錯(cuò)

問(wèn)題:已知如下類定義:
1 class Base {  
2 public Base (){ 
3 //... 
4 }  
5 public Base ( int m ){ 
6 //... 
7 }  
8 public void fun( int n ){ 
9 //... 
10 } 
11}  
12public class Child extends Base{  
13 // member methods  
14}  

如下哪句可以正確地加入子類中姥饰?
A傻谁、private?void?fun(?int?n?){?//…}
B、void fun ( int n ){ //… }
C列粪、protected void fun ( int n ) { //… }
D审磁、public void fun ( int n ) { //… }

解答:D
方法的重寫(xiě)(override)兩同兩小一大原則:
方法名相同,參數(shù)類型相同
子類返回類型小于等于父類方法返回類型岂座,
子類拋出異常小于等于父類方法拋出異常态蒂,
子類訪問(wèn)權(quán)限大于等于父類方法訪問(wèn)權(quán)限。

問(wèn)題:以下語(yǔ)句的執(zhí)行結(jié)果是什么费什?

1+”10”+3+”2”
A钾恢、”11032”
B、“16”
C鸳址、16
D瘩蚪、“32101”

解答:A
當(dāng)一個(gè)整形類型數(shù)值加上“”,會(huì)轉(zhuǎn)化為字符串類型稿黍,這也是整形轉(zhuǎn)化為字符串的一種方式疹瘦。這種會(huì)產(chǎn)生兩個(gè)String對(duì)象,所以整形加上字符串時(shí)巡球,此時(shí)+就變成了了連接符

問(wèn)題:
1 public class IfTest{
2    public static void main(string[]args){
3        int x=3;
4        int y=1;
5        if(x=y)
6            System.out.println(“Not equal”);
7        else
8            System.out.println(“Equal”);
9     }
10 }

結(jié)果是?
A言沐、The output is “Equal”
B、The output in “Not Equal”
C辕漂、An error at line 5 causes compilation to fall.
D呢灶、The program executes but does not print a message.

解答:C
在 Java 中 if 只能匹配 ture、false钉嘹,賦值語(yǔ)句沒(méi)有返回結(jié)果,無(wú)法使用在 if 句式中鲸阻,會(huì)語(yǔ)法報(bào)錯(cuò)

問(wèn)題:輸出的是跋涣?
1 class Foo {
2    final int i;
3    int j;
4    public void doSomething() {
5        System.out.println(++j + i);
6    }
7}

A缨睡、0
B、1
C陈辱、2
D奖年、不能執(zhí)行,因?yàn)榫幾g有錯(cuò)

解答:D
final必須進(jìn)行初始化賦值沛贪,編譯報(bào)錯(cuò)

問(wèn)題:下列哪些針對(duì)代碼運(yùn)行結(jié)果的描述是正確的陋守?
1 class Car extends Vehicle
2{
4    public static void main (String[] args)
5    {
6        new  Car(). run();
7    }
8    private final void run()
9    {
10        System. out. println ("Car");
11    }
12}
13class Vehicle
14{
15    private final void run()
16    {
17        System. out. println("Vehicle");
18    }
19}

A、Car
B利赋、Vehicle
C水评、Compiler error at line 6
D、Compiler error at line 8
E媚送、Exception thrown at runtime

解答:A
父類用final修飾的方法 無(wú)法被子類重寫(xiě) 所以調(diào)用本身方法

問(wèn)題:經(jīng)過(guò)強(qiáng)制類型轉(zhuǎn)換以后中燥,變量a,b的值分別為多少塘偎?
short a =128疗涉;
byte b =(byte) a;

A吟秩、128 127
B咱扣、128 - 128
C、128 128
D涵防、編譯錯(cuò)誤

解答:B

## int占4個(gè)字節(jié)闹伪,32位
byte占1個(gè)字節(jié),8位
所以強(qiáng)轉(zhuǎn)時(shí)會(huì)截?cái)辔溲АG?4位

## 在內(nèi)存中表示形式( 注意java中是以補(bǔ)碼表示一個(gè)數(shù)祭往,所以表示形式是補(bǔ)碼,不是原碼火窒! ):
int a = 3 00000000 00000000 00000000 00000011 (強(qiáng)轉(zhuǎn)byte時(shí)前面24個(gè)0被截?cái)啵?byte b = 3 00000011
int a = -3 11111111 11111111 11111111 11111101 (強(qiáng)轉(zhuǎn)byte時(shí)前面24個(gè)1被截?cái)啵?byte b = -3 11111101

## 1硼补、Java中用補(bǔ)碼形式表示
2、第一位正負(fù)位熏矿,1表示負(fù)已骇,0表示正。
3票编、原碼:一個(gè)數(shù)的二進(jìn)制表示褪储。
3的原碼00000011 -3的 原碼 10000011
4、反碼:負(fù)數(shù)原碼按位取反(符號(hào)位不變)慧域。正數(shù)原碼本身鲤竹。
3的反碼00000011 -3的反碼11111100
5、補(bǔ)碼:正數(shù)是原碼本身昔榴。負(fù)數(shù)反碼加1辛藻。
3的補(bǔ)碼是00000011 -3的補(bǔ)碼是11111101

## 已知負(fù)數(shù)的補(bǔ)碼碘橘,求負(fù)數(shù):
補(bǔ)碼-1=反碼,反碼按位取反=該負(fù)數(shù)絕對(duì)值
已知負(fù)數(shù)吱肌,求負(fù)數(shù)的補(bǔ)碼:
1痘拆、負(fù)數(shù)原碼除了符號(hào)位,按位取反(不含符號(hào)位)氮墨,加1纺蛆。
2、負(fù)數(shù)絕對(duì)值的補(bǔ)碼(也就是原碼)规揪,按位取反(含符號(hào)位)桥氏,加1
java int 128轉(zhuǎn)為byte,值:
128為正數(shù)粒褒,補(bǔ)碼為10000000(前面24個(gè)0省略)识颊,變成byte,只剩下10000000(byte為1個(gè)字節(jié))奕坟,因?yàn)殚_(kāi)頭是1祥款,所以為負(fù)數(shù)。即1個(gè)負(fù)數(shù)的補(bǔ)碼是10000000月杉。反碼是01111111刃跛,原碼是1000000。是128.因?yàn)槭秦?fù)數(shù)苛萎,所以是-128桨昙。
問(wèn)題:假設(shè)如下代碼中,若t1線程在t2線程啟動(dòng)之前已經(jīng)完成啟動(dòng)腌歉。代碼的輸出是()
1 public static void main(String[]args)throws Exception {
2    final Object obj = new Object();
3    Thread t1 = new Thread() {
4        public void run() {
5            synchronized (obj) {
6                try {
7                    obj.wait();
8                    System.out.println("Thread 1 wake up.");
9                } catch (InterruptedException e) {
10                }
11            }
12        }
13    };
14    t1.start();
15    Thread.sleep(1000);//We assume thread 1 must start up within 1 sec.
16    Thread t2 = new Thread() {
17        public void run() {
18            synchronized (obj) {
19                obj.notifyAll();
20                System.out.println("Thread 2 sent notify.");
21            }
22        }
23    };
24    t2.start();
25 }

A蛙酪、Thread 1 wake up
Thread 2 sent notify.
B、Thread 2 sent notify.
Thread 1 wake up
C翘盖、A桂塞、B皆有可能
D、程序無(wú)輸出卡死

解答:B
t1 啟動(dòng)后執(zhí)行 obj.wait() 時(shí)馍驯,進(jìn)入阻塞狀態(tài)阁危,讓出時(shí)間片并釋放鎖,等待其他線程的喚醒汰瘫。然后 t2 獲取到 obj狂打,并喚醒 t1,待 t2 執(zhí)行完畢混弥,釋放鎖后趴乡,t1 再繼續(xù)執(zhí)行

問(wèn)題:下列代碼的執(zhí)行結(jié)果是:( )
1 public class Test3{
2 public static void main(String args[]){
3    System.out.println(100%3);
4    System.out.println(100%3.0);
5}
6}

A、1和1
B、1和1.0
C浙宜、1.0和1
D官辽、1.0和1.0

解答:B
大數(shù)據(jù)類型與小數(shù)據(jù)類型做數(shù)值運(yùn)算時(shí):
小的數(shù)據(jù)類型會(huì)自動(dòng)轉(zhuǎn)為大數(shù)據(jù)類型蛹磺,無(wú)無(wú)需強(qiáng)轉(zhuǎn)粟瞬。 (小轉(zhuǎn)大——類型聲明)

大的數(shù)據(jù)類型轉(zhuǎn)為小的數(shù)據(jù)類型,必須強(qiáng)轉(zhuǎn)萤捆,但是可能會(huì)丟失內(nèi)容 (大轉(zhuǎn)小——強(qiáng)轉(zhuǎn))

第一個(gè)裙品,沒(méi)有牽扯到不同類型之間的運(yùn)算,所以還是 1
第二個(gè)俗或,int對(duì)double取余市怎,自動(dòng)會(huì)轉(zhuǎn)換為double類型,所以是 1.0

問(wèn)題:運(yùn)行下面代碼辛慰,輸出的結(jié)果是()
1 class A {
2    public A() {
3        System.out.println("class A");
4    }
5    { System.out.println("I'm A class"); }
6    static { System.out.println("class A static"); }
7}
8public class B extends A {
9    public B() {
10        System.out.println("class B");
11    }
12    { System.out.println("I'm B class"); }
13    static { System.out.println("class B static"); }
14     
15    public static void main(String[] args) {
16 new B();
17 }
18}

A区匠、class A static
class B static
I’m A class
class A
I’m B class
class B
?
B、class A static
I’m A class
class A
class B static
I’m B class
class B

C帅腌、class A static
class B static
class A
I’m A class
class B
I’m B class
?
D驰弄、class A static
class A
I’m A class
class B static
class B
I’m B class

解答:A
執(zhí)行順序優(yōu)先級(jí):靜態(tài)塊>構(gòu)造塊>構(gòu)造方法
當(dāng)涉及到繼承時(shí),按照如下順序執(zhí)行:
1速客、執(zhí)行父類的靜態(tài)代碼塊戚篙,并初始化父類靜態(tài)成員變量
2、執(zhí)行子類的靜態(tài)代碼塊溺职,并初始化子類靜態(tài)成員變量
3岔擂、執(zhí)行父類的構(gòu)造代碼塊,執(zhí)行父類的構(gòu)造函數(shù)浪耘,并初始化父類普通成員變量
4乱灵、執(zhí)行子類的構(gòu)造代碼塊, 執(zhí)行子類的構(gòu)造函數(shù)七冲,并初始化子類普通成員變量

問(wèn)題:當(dāng)你編譯和運(yùn)行下面的代碼時(shí)痛倚,會(huì)出現(xiàn)下面選項(xiàng)中的哪種情況?
1 public class Pvf{
2    static boolean Paddy;
3    public static void main(String args[]){
4        System.out.println(Paddy);
5    }
6}

A癞埠、編譯時(shí)錯(cuò)誤
B状原、編譯通過(guò)并輸出結(jié)果false
C、編譯通過(guò)并輸出結(jié)果true
D苗踪、編譯通過(guò)并輸出結(jié)果null

解答:B
類中聲明的變量有默認(rèn)初始值颠区;方法中聲明的變量沒(méi)有默認(rèn)初始值,必須在定義時(shí)初始化通铲,否則在訪問(wèn)該變量時(shí)會(huì)出錯(cuò)毕莱。boolean類型默認(rèn)值是false

問(wèn)題:如下的Java程序
public class Test { 
     public static void main(String[] args) { 
     System.out.println(args[0]); 
     } 
} 

若采用命令行“java Test one two three”調(diào)用,則程序輸出的結(jié)果為:
A、Test
B朋截、one
C蛹稍、two
D、java

解答:B
題目少了public class Test {
采用命令行“java Test one two three”調(diào)用
其中Test為調(diào)用的方法部服,而one two three則為T(mén)est方法里面main函數(shù)的參數(shù)唆姐;System.out.println(args[0]);表示輸出第一個(gè)元素,故為one廓八;

問(wèn)題:執(zhí)行如下程序奉芦,輸出結(jié)果是( )
1 class Test
2{
3     private int data;
4     int result = 0;
5     public void m()
6     {
7         result += 2;
8         data += 2;
9         System.out.print(result + "  " + data);
10     }
11 }
12 class ThreadExample extends Thread
13 {
14     private Test mv;
15     public ThreadExample(Test mv)
16     {
17         this.mv = mv;
18     }
19     public void run()
20     {
21         synchronized(mv)
22         {
23             mv.m();
24         }
25     }
26 }
27 class ThreadTest
28 {
29     public static void main(String args[])
30     {
31         Test mv = new Test();
32         Thread t1 = new ThreadExample(mv);
33         Thread t2 = new ThreadExample(mv);
34         Thread t3 = new ThreadExample(mv);
35         t1.start();
36         t2.start();
37         t3.start();
38     }
39 }

A、0 22 44 6
B剧蹂、2 42 42 4
C声功、2 24 46 6
D、4 44 46 6

解答:C
Test mv =newTest()聲明并初始化對(duì)data賦默認(rèn)值
使用synchronized關(guān)鍵字加同步鎖線程依次操作m()
t1.start();使得result=2,data=2,輸出即為2 2
t2.start();使得result=4,data=4,輸出即為4 4
t3.start();使得result=6,data=6,輸出即為6 6
System.out.print(result +" "+ data);是print()方法不會(huì)換行,輸出結(jié)果為2 24 46 6

問(wèn)題:以下代碼執(zhí)行的結(jié)果顯示是多少( )宠叼?
1 public class Demo { class Super{  int flag=1;
2         Super(){
3             test();
4         }  void test(){
5            System.out.println("Super.test() flag="+flag);
6         }
7    } class Sub extends Super{
8        Sub(int i){  flag=i;
9            System.out.println("Sub.Sub()flag="+flag);
10        }  void test(){
11            System.out.println("Sub.test()flag="+flag);
12        }
13    }  public static void main(String[] args) {  new Demo().new Sub(5);
14     }
15}

A先巴、Sub.test() flag=1
Sub.Sub() flag=5
B、Sub.Sub() flag=5
Sub.test() flag=5
C冒冬、Sub.test() flag=0
Sub.Sub() flag=5
D伸蚯、Super.test() flag=1
Sub.Sub() flag=5

解答:A
在繼承中代碼的執(zhí)行順序?yàn)椋?br> 1.父類靜態(tài)對(duì)象,父類靜態(tài)代碼塊
2.子類靜態(tài)對(duì)象窄驹,子類靜態(tài)代碼塊
3.父類非靜態(tài)對(duì)象朝卒,父類非靜態(tài)代碼塊
4.父類構(gòu)造函數(shù)
5.子類非靜態(tài)對(duì)象,子類非靜態(tài)代碼塊
6.子類構(gòu)造函數(shù)

對(duì)于本題來(lái)說(shuō):在只想new Sub(5)的時(shí)候,父類先初始化了 int flag = 1,然后執(zhí)行父類的構(gòu)造函數(shù)Super()八千,父類構(gòu)造函數(shù)中執(zhí)行的test()方法,因子類是重寫(xiě)了test()方法的瑞眼,因此父類構(gòu)造函數(shù)中的test()方法實(shí)際執(zhí)行的是子類的test()方法,所以輸出為Sub.test() flag=1棵逊,接著執(zhí)行子類構(gòu)造函數(shù)Sub(5) 將flag賦值為5伤疙,因此輸出結(jié)果Sub.Sub() flag=5。最終選擇了A

問(wèn)題:對(duì)下面Spring聲明式事務(wù)的配置含義的說(shuō)明錯(cuò)誤的是()
1 <bean id="txProxyTemplate" abstract="true"
2class=
3"org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
4    <property name="transactionManager" ref="myTransactionManager" />
5<property name="transactionAttributes">      
6<props>
7        <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
8         <prop key="*">PROPAGATION_REQUIRED</prop>
9     </props>
10</property> 
11</bean>

A辆影、定義了聲明式事務(wù)的配置模板
B徒像、對(duì)get方法采用只讀事務(wù)
C、缺少sessionFactory屬性的注入
D蛙讥、配置需要事務(wù)管理的bean的代理時(shí)锯蛀,通過(guò)parent引用這個(gè)配置模板

解答:C
TransactionProxyFactoryBean 類沒(méi)有 sessionFactory 屬性,不需要注入次慢;直接用 parent 引用配置模板 Bean旁涤,關(guān)聯(lián)目標(biāo) DAO 對(duì)象即可

<bean id="myProxy" parent="txProxyTemplate">
    <property name="target" ref="myTarget">;
</bean>
問(wèn)題:有這么一段程序
1 public class Test{ 
2    public String name="abc"; 
3    public static void main(String[] args){ 
4        Test test=new Test(); 
5        Test testB=new Test(); 
6        System.out.println(test.equals(testB)+","+test.name.equals(testB.name)); 
7    } 
8}

請(qǐng)問(wèn)以上程序執(zhí)行的結(jié)果是()
A翔曲、true,true
B、true,false
C劈愚、false,true
D瞳遍、false,false

解答:C
Test未重寫(xiě)equals,則使用Object的equals方法:

public boolean equals(Object obj) {
        return (this == obj);
}

String 則使用String重寫(xiě)的equals方法:

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }
問(wèn)題:現(xiàn)有如下代碼段:
1    x = 2;
2   while(x<n/2) 
3          x = 2*x;

假設(shè)n>=0,則其時(shí)間復(fù)雜度應(yīng)為( )
A菌羽、O(log2(n))
B掠械、O(nlog2(n))
C、O(n)
D算凿、O(n^2)```language

解答:A
可以看到2*x為基本操作份蝴,基本操作的執(zhí)行的次數(shù)即為程序的時(shí)間復(fù)雜度;
x=1 x=2x2=4
x=2 x=4x2=8

執(zhí)行到n次
x=2(n+1)
即2(n+1)<n/2結(jié)束

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氓轰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浸卦,更是在濱河造成了極大的恐慌署鸡,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件限嫌,死亡現(xiàn)場(chǎng)離奇詭異靴庆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)怒医,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)炉抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人稚叹,你說(shuō)我怎么就攤上這事焰薄。” “怎么了扒袖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵塞茅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我季率,道長(zhǎng)野瘦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任飒泻,我火速辦了婚禮鞭光,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泞遗。我一直安慰自己惰许,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布刹孔。 她就那樣靜靜地躺著啡省,像睡著了一般娜睛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卦睹,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天畦戒,我揣著相機(jī)與錄音,去河邊找鬼结序。 笑死障斋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的徐鹤。 我是一名探鬼主播垃环,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼返敬!你這毒婦竟也來(lái)了遂庄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劲赠,失蹤者是張志新(化名)和其女友劉穎涛目,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體凛澎,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霹肝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塑煎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沫换。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖最铁,靈堂內(nèi)的尸體忽然破棺而出讯赏,到底是詐尸還是另有隱情,我是刑警寧澤炭晒,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布待逞,位于F島的核電站,受9級(jí)特大地震影響网严,放射性物質(zhì)發(fā)生泄漏识樱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一震束、第九天 我趴在偏房一處隱蔽的房頂上張望怜庸。 院中可真熱鬧,春花似錦垢村、人聲如沸割疾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宏榕。三九已至拓诸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麻昼,已是汗流浹背奠支。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抚芦,地道東北人倍谜。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像叉抡,于是被迫代替她去往敵國(guó)和親尔崔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛(ài)DE問(wèn)候閱讀 1,712評(píng)論 0 4
  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,693評(píng)論 0 73
  • 堅(jiān)持每天一篇文章褥民,直至元旦季春,不管寫(xiě)什么,養(yǎng)成輸出的習(xí)慣由于工資也漲了轴捎,目標(biāo)就減少了一個(gè)鹤盒,今年還有三個(gè)小目標(biāo)1、體重...
    法正31閱讀 111評(píng)論 0 0
  • 媒體黑話侦副。將別人的文章改頭換面,保持原有的邏輯發(fā)出來(lái)驼鞭,即為洗稿秦驯。洗稿并不是抄襲,但是本質(zhì)上與抄襲相同挣棕。差評(píng)我也在看...
    老穆閱讀 240評(píng)論 0 0
  • 有時(shí)候真的不明白译隘,明明相親相愛(ài)的兩個(gè)人突然之間會(huì)分手。感情真的這么不堪一擊嗎洛心?其實(shí)也不盡然固耘。 假如兩個(gè)人突然分手,...
    雨林木豐閱讀 216評(píng)論 1 5