大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

第一部分 Java基礎(chǔ)
第二部分 Java進(jìn)階

Java常見(jiàn)面試題及答案(131~140企業(yè)真題)

131、j2ee中的應(yīng)用服務(wù)器有哪些?(ACD)

A. Weblogic

B. Tomcat

C. JBoss

D. WebSphere

E. IIS

132、EJB程序與普通的java程序區(qū)別有哪些?

EJB是sun的服務(wù)器端組件模型,最大的用處是部署分布式應(yīng)用程序當(dāng)然,還有許多方式可以實(shí)現(xiàn)分布式應(yīng)用,類(lèi)似微軟的.net技術(shù)。

憑借 java 跨平臺(tái)的優(yōu)勢(shì),用EJB 技術(shù)部署的分布式系統(tǒng)可以不限于特定的平臺(tái)。EJB(EnterpriseJavaBean)是J2EE的一部分,定義了一個(gè)用于開(kāi)發(fā)基于組件的企業(yè)多重應(yīng)用程序的標(biāo)準(zhǔn)。其特點(diǎn)包括網(wǎng)絡(luò)服務(wù)支持和核心開(kāi)發(fā)工具(SDK)。

在J2EE里,Enterprise Java Beans(EJB)稱(chēng)為Java企業(yè)Bean,是Java 的核心代碼,分別是會(huì)話(huà) Bean(Session Bean),實(shí)體 Bean(Entity Bean)和消息驅(qū)動(dòng) Bean(MessageDriven Bean)。

簡(jiǎn)單來(lái)講:比如做一個(gè)工程就和蓋房子,如果,你會(huì) java,那么你就擁有了基本的技能,一步一步累磚,總能把房子蓋好但是EJB就是一個(gè)框架,蓋房子的時(shí)候,先有這個(gè)框架,然后你根據(jù)這個(gè)框架去累磚,房子就會(huì)蓋的又快又好。java是基礎(chǔ),EJB 是在java上發(fā)展出來(lái)的模型,框架。

133、請(qǐng)簡(jiǎn)述什么是集群?

服務(wù)器集群就是指將很多服務(wù)器集中起來(lái)一起進(jìn)行同一種服務(wù),在客戶(hù)端看來(lái)就象是只有一個(gè)服務(wù)器。集群可以利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多個(gè)計(jì)算機(jī)做備份,從而使得任何一個(gè)機(jī)器壞了整個(gè)系統(tǒng)還是能正常運(yùn)行。一旦在服務(wù)器上安裝并運(yùn)行了群集服務(wù),該服務(wù)器即可加入群集。群集化操作可以減少單點(diǎn)故障數(shù)量,并且實(shí)現(xiàn)了群集化資源的高可用性。

134、字符串中有重復(fù)的內(nèi)容去重 例如:abbccccaaddaggb-->abvadagb

public class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        System.out.println("沒(méi)有去重前的數(shù)據(jù)為>>>" + list.toString());
        for (int i = 0; i < list.size() - 1; i++) {
            for (int j = list.size() - 1; j > i; j--) {
                if (list.get(j).equals(list.get(i))) {
                    list.remove(j);
                }
            }
        }
        System.out.println("去重后的數(shù)據(jù)為>>>" + list.toString());
    }
}

135、利用 java 面向?qū)ο蟮乃悸吩O(shè)計(jì)正方形、長(zhǎng)方形、圓的計(jì)算面積的類(lèi)圓:

class MianJi {
    float r;
    float pai = (float) 3.14;

    void gongShi() {
        Float s = pai * r * r;
        System.out.println("圓的面積為" + s);
    }

    void zhengFangXing(float bianChang) {
        System.out.println("正方形的面積為" + bianChang * bianChang);
    }

    void changFangXing(float chang, float kuan) {
        System.out.println("長(zhǎng)方形的面積為" + chang * kuan);
    }

    public static void main(String[] arg) {
        MianJi c = new MianJi();
        System.out.println("請(qǐng)輸入圓的半徑:");
        Scanner sc = new Scanner(System.in);
        c.r = sc.nextFloat();
        c.gongShi();
        System.out.println("請(qǐng)輸入正方形的邊長(zhǎng):");
        float bian = sc.nextFloat();
        c.zhengFangXing(bian);
        System.out.println("請(qǐng)輸入長(zhǎng)方形的長(zhǎng)和寬:");
        float chang = sc.nextFloat();
        float kuan = sc.nextFloat();
        c.changFangXing(chang, kuan);
    }
}

136、任何>=6的偶數(shù)都可以分解為兩個(gè)質(zhì)數(shù)之和,從鍵盤(pán)輸入一個(gè)偶數(shù),輸出其分解的質(zhì)數(shù)

public class Test {
    public static void main(String[] args) {
        int num = inPut();
        outPut(num);
    }

    public static int inPut() {
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入大于 6 的偶數(shù):");
        int num = sc.nextInt();
        if (num % 2 != 0 || num <= 6) {
            System.out.println("輸入錯(cuò)誤,請(qǐng)重新輸入大于 6 的偶數(shù):");
            return inPut();
        }
        return num;
    }

    public static boolean isPrim(int num) {
        for (int i = 2; i <= Math.sqrt((double) num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static void outPut(int num) {
        for (int i = 2; i <= num / 2; i++) {
            if (isPrim(i) == true && isPrim(num - i) == true) {
                System.out.println(i + " " + (num - i));
            }
        }
    }
}

137、什么叫對(duì)象?什么叫類(lèi)?什么是面向?qū)ο螅∣OP)?

類(lèi)的概念:類(lèi)是具有相同屬性和行為的一組對(duì)象的集合。它為屬于該類(lèi)的所有對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和行為兩個(gè)主要部分。在面向?qū)ο蟮木幊陶Z(yǔ)言中,類(lèi)是一個(gè)獨(dú)立的程序單位,它應(yīng)該有一個(gè)類(lèi)名并包括屬性說(shuō)明和服務(wù)說(shuō)明兩個(gè)主要部分。

對(duì)象的概念:對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的一組服務(wù)組成。從更抽象的角度來(lái)說(shuō),對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象,它反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用;它是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一組服務(wù)的封裝體。客觀世界是由對(duì)象和對(duì)象之間的聯(lián)系組成的。

類(lèi)與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類(lèi)對(duì)象的抽象就是類(lèi)。類(lèi)描述了一組有相同特性(屬性)和相同行為(方法)的對(duì)象。

上面大概就是它們的定義吧,也許你是剛接觸面象對(duì)象的朋友,不要被概念的東西搞暈了, 給你舉個(gè)列子吧,如果你去中關(guān)村想買(mǎi)幾臺(tái)組裝的PC機(jī),到了那里你第一步要干什么,是不是裝機(jī)的工程師和你坐在一起,按你提供的信息和你一起完成一個(gè)裝機(jī)的配置單呀,這個(gè)配置單就可以想像成是類(lèi),它就是一張紙,但是它上面記錄了你要買(mǎi)的PC機(jī)的信息,如果用這個(gè)配置單買(mǎi)10臺(tái)機(jī)器,那么這10臺(tái)機(jī)子,都是按這個(gè)配置單組成的,所以說(shuō)這10臺(tái)機(jī)子是一個(gè)類(lèi)型的,也可以說(shuō)是一類(lèi)的。那么什么是對(duì)象呢,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,用這個(gè)配置單配置出來(lái)(實(shí)例化出來(lái))的機(jī)子就是對(duì)象,是我們可以操作的實(shí)體,10 臺(tái)機(jī)子,10 個(gè)對(duì)象。每臺(tái)機(jī)子都是獨(dú)立的,只能說(shuō)明他們是同一類(lèi)的,對(duì)其中一個(gè)機(jī)(對(duì)象)做任何動(dòng)作都不會(huì)影響其它9臺(tái)機(jī)器,但是我對(duì)類(lèi)修改,也就是在這個(gè)配置單上加一個(gè)或少一個(gè)配件,那么裝出來(lái)的9個(gè)機(jī)子都改變了,這是類(lèi)和對(duì)象的關(guān)系(類(lèi)的實(shí)例化結(jié)果就是對(duì)象) 

138、JAVA中使用final修飾符,對(duì)程序有哪些影響?

● 修飾類(lèi)

當(dāng)用final修飾一個(gè)類(lèi)時(shí),表明這個(gè)類(lèi)不能被繼承。也就是說(shuō),如果一個(gè)類(lèi)你永遠(yuǎn)不會(huì)讓他被繼承,就可以用final進(jìn)行修飾。final類(lèi)中的成員變量可以根據(jù)需要設(shè)為final,但是要注意 final 類(lèi)中的所有成員方法都會(huì)被隱式地指定為final 方法。在使用 final 修飾類(lèi)的時(shí)候,要注意謹(jǐn)慎選擇,除非這個(gè)類(lèi)真的在以后不會(huì)用來(lái)繼承或者出于安全的考慮,盡量不要將類(lèi)設(shè)計(jì)為 final類(lèi)。

● 修飾方法

被final修飾的方法將不能被子類(lèi)覆蓋,主要用于:

把方法鎖定,以防任何繼承類(lèi)修改它的含義。

在早期的Java實(shí)現(xiàn)版本中,會(huì)將final方法轉(zhuǎn)為內(nèi)嵌調(diào)用,所以效率能夠提升。

● 修飾變量

對(duì)于一個(gè)final變量,如果是基本數(shù)據(jù)類(lèi)型的變量,則其數(shù)值一旦在初始化之后便不能更改;如果是引用類(lèi)型的變量,則在對(duì)其初始化之后便不能再讓其指向另一個(gè)對(duì)象。當(dāng)用 final 作用于類(lèi)的成員變量時(shí),成員變量(注意是類(lèi)的成員變量,局部變量只需要保證在使用之前被初始化賦值即可)必須在定義時(shí)或者構(gòu)造器中進(jìn)行初始化賦值,而且final變量一旦被初始化賦值之后,就不能再被賦值了。

139、寫(xiě)出 5 個(gè)你在 JAVA 開(kāi)發(fā)中常用的包含(全名),并簡(jiǎn)述其作用。

● java.lang.*

提供利用Java編程語(yǔ)言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)類(lèi)。最重要的類(lèi)是Object(它是類(lèi)層次結(jié)構(gòu)的根)和Class(它的實(shí)例表示正在運(yùn)行的應(yīng)用程序中的類(lèi))。

● java.util.*

包含集合框架、遺留的Collection類(lèi)、事件模型、日期和時(shí)間設(shè)施、國(guó)際化和各種實(shí)用工具類(lèi)(字符串標(biāo)記生成器、隨機(jī)數(shù)生成器和位數(shù)組、日期 Date 類(lèi)、堆棧 Stack 類(lèi)、向量 Vector 類(lèi)等)。集合類(lèi)、時(shí)間處理模式、日期時(shí)間工具等各類(lèi)常用工具包。

● java.io.*

Java 的核心庫(kù)java.io提供了全面的IO接口。包括:文件讀寫(xiě)、標(biāo)準(zhǔn)設(shè)備輸出等。Java 中 IO是以流為基礎(chǔ)進(jìn)行輸入輸出的,所有數(shù)據(jù)被串行化寫(xiě)入輸出流,或者從輸入流讀入。

● java.net.*

并非所有系統(tǒng)都支持 IPv6 協(xié)議,而當(dāng) Java 網(wǎng)絡(luò)連接堆棧嘗試檢測(cè)它并在可用時(shí)透明地使用它時(shí),還可以利用系統(tǒng)屬性禁用它。在IPv6不可用或被顯式禁用的情況下,Inet6Address  對(duì)大多數(shù)網(wǎng)絡(luò)連接操作都不再是有效參數(shù)。雖然可以保證在查找主機(jī)名時(shí) java.net.InetAddress.getByName之類(lèi)的方法不返回Inet6Address,但仍然可能通過(guò)傳遞字面值來(lái)創(chuàng)建此類(lèi)對(duì)象。在此情況下,大多數(shù)方法在使用 Inet6Address 調(diào)用時(shí)都將拋出異常。

● java.sql.*

提供使用JavaTM編程語(yǔ)言訪問(wèn)并處理存儲(chǔ)在數(shù)據(jù)源(通常是一個(gè)關(guān)系數(shù)據(jù)庫(kù))中的數(shù)據(jù)的API。此API包括一個(gè)框架,憑借此框架可以動(dòng)態(tài)地安裝不同驅(qū)動(dòng)程序來(lái)訪問(wèn)不同數(shù)據(jù)源。

140、方法重載(overload)需要滿(mǎn)足什么條件,方法覆蓋/方法重寫(xiě)(override)需要滿(mǎn)足什么條件?

重載需要滿(mǎn)足的條件:在同一類(lèi)中定義的方法,方法名必須相同,參數(shù)一定不同。

發(fā)生覆蓋的條件:“三同一不低”,子類(lèi)和父類(lèi)的方法名稱(chēng),參數(shù)列表,返回類(lèi)型必須完全相同,而且子類(lèi)方法的訪問(wèn)修飾符的權(quán)限不能比父類(lèi)低。子類(lèi)方法不能拋出比父類(lèi)方法更多的異常。即子類(lèi)方法所拋出的異常必須和父類(lèi)方法所拋出的異常一致,或者是其子類(lèi),或者什么也不拋出;被覆蓋的方法不能是final類(lèi)型的。因?yàn)閒inal修飾的方法是無(wú)法覆蓋的。被覆蓋的方法不能為private。否則在其子類(lèi)中只是新定義了一個(gè)方法,并沒(méi)有對(duì)其進(jìn)行覆蓋。被覆蓋的方法不能為static。所以如果父類(lèi)中的方法為靜態(tài)的,而子類(lèi)中的方法不是靜態(tài)的,但是兩個(gè)方法除了這一點(diǎn)外其他都滿(mǎn)足覆蓋條件,那么會(huì)發(fā)生編譯錯(cuò)誤。反之亦然。即使父類(lèi)和子類(lèi)中的方法都是靜態(tài)的,并且滿(mǎn)足覆蓋條件,但是仍然不會(huì)發(fā)生覆蓋,因?yàn)殪o態(tài)方法是在編譯的時(shí)候把靜態(tài)方法和類(lèi)的引用類(lèi)型進(jìn)行匹配。

重寫(xiě)規(guī)則:重寫(xiě)方法不能比被重寫(xiě)方法限制有更嚴(yán)格的訪問(wèn)級(jí)別。(但是可以更廣泛,比如父類(lèi)方法是包訪問(wèn)權(quán)限,子類(lèi)的重寫(xiě)方法是public訪問(wèn)權(quán)限)。比如:Object類(lèi)有個(gè)toString()方法,開(kāi)始重寫(xiě)這個(gè)方法的時(shí)候我們總?cè)菀淄沺ublic修飾符,編譯器當(dāng)然不會(huì)放過(guò)任何教訓(xùn)我們的機(jī)會(huì)。出錯(cuò)的原因就是:沒(méi)有加任何訪問(wèn)修飾符的方法具有包訪問(wèn)權(quán)限,包訪問(wèn)權(quán)限比 public當(dāng)然要嚴(yán)格了,所以編譯器會(huì)報(bào)錯(cuò)的。參數(shù)列表必須與被重寫(xiě)方法相同。重寫(xiě)有個(gè)孿生的弟弟叫重載,也就是后面要出場(chǎng)的。如果子類(lèi)方法的參數(shù)與父類(lèi)對(duì)應(yīng)的方法不同,那么就是你認(rèn)錯(cuò)人了,那是重載,不是重寫(xiě)。返回類(lèi)型必須與被重寫(xiě)方法的返回類(lèi)型相同。

父類(lèi)方法A:void eat(){}子類(lèi)方法B:int eat(){}兩者雖然參數(shù)相同,可是返回類(lèi)型不同,所以不是重寫(xiě)。

父類(lèi)方法A:int eat(){} 子類(lèi)方法 B:long eat(){} 返回類(lèi)型雖然兼容父類(lèi),但是不同就是不同,所以不是重寫(xiě)。???????

全部教程
主站蜘蛛池模板: 日本精品久久久久中文字幕8 | 亚洲情综合五月天 | 日韩大片在线 | 中文字幕在线二区 | 99国产国人青青视频在线观看 | 中文字幕在线精品不卡 | 精品一久久香蕉国产线看观看下 | 亚洲精品一区二区手机在线 | 欧美国产片 | 亚洲一区二区影院 | 欧美性色生活片天天看99 | 精品一区二区三区色花堂 | 在线看日本吃奶孕交 | 偷偷操99 | 欧美亚洲另类视频 | 在线观看中文字幕第一页 | 国产成人一区免费观看 | 伊人精品视频一区二区三区 | 久久天天躁狠狠躁夜夜躁 | 亚洲一区二区三区香蕉 | 国产日韩亚洲欧洲一区二区三区 | 色婷婷中文网 | 久久久这里只有免费精品2018 | a毛片免费播放全部完整 | 日韩欧美一区二区久久黑人 | 国产中文一区 | 天天插日日射 | 五月婷婷狠狠 | 欧美一区二区在线观看视频 | 成人免费大片a毛片 | 亚洲精品视频在线播放 | 四虎国产精品影库永久免费 | 国产一级毛片午夜 | 中文字幕在线视频免费观看 | 久久精品亚洲 | 色天使色婷婷丁香久久综合 | 不卡的 | 一级特黄性色生活片 | 狼人久久尹人香蕉尹人 | 久操成人 | 国产在线91区精品 |