黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

第一部分 Java基礎
第二部分 Java進階

Java常見面試題及答案(131~140企業真題)

131、j2ee中的應用服務器有哪些?(ACD)

A. Weblogic

B. Tomcat

C. JBoss

D. WebSphere

E. IIS

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

EJB是sun的服務器端組件模型,最大的用處是部署分布式應用程序當然,還有許多方式可以實現分布式應用,類似微軟的.net技術。

憑借 java 跨平臺的優勢,用EJB 技術部署的分布式系統可以不限于特定的平臺。EJB(EnterpriseJavaBean)是J2EE的一部分,定義了一個用于開發基于組件的企業多重應用程序的標準。其特點包括網絡服務支持和核心開發工具(SDK)。

在J2EE里,Enterprise Java Beans(EJB)稱為Java企業Bean,是Java 的核心代碼,分別是會話 Bean(Session Bean),實體 Bean(Entity Bean)和消息驅動 Bean(MessageDriven Bean)。

簡單來講:比如做一個工程就和蓋房子,如果,你會 java,那么你就擁有了基本的技能,一步一步累磚,總能把房子蓋好但是EJB就是一個框架,蓋房子的時候,先有這個框架,然后你根據這個框架去累磚,房子就會蓋的又快又好。java是基礎,EJB 是在java上發展出來的模型,框架。

133、請簡述什么是集群?

服務器集群就是指將很多服務器集中起來一起進行同一種服務,在客戶端看來就象是只有一個服務器。集群可以利用多個計算機進行并行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常運行。一旦在服務器上安裝并運行了群集服務,該服務器即可加入群集。群集化操作可以減少單點故障數量,并且實現了群集化資源的高可用性。

134、字符串中有重復的內容去重 例如: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("沒有去重前的數據為>>>" + 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("去重后的數據為>>>" + list.toString());
    }
}

135、利用 java 面向對象的思路設計正方形、長方形、圓的計算面積的類圓:

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("長方形的面積為" + chang * kuan);
    }

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

136、任何>=6的偶數都可以分解為兩個質數之和,從鍵盤輸入一個偶數,輸出其分解的質數

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("請輸入大于 6 的偶數:");
        int num = sc.nextInt();
        if (num % 2 != 0 || num <= 6) {
            System.out.println("輸入錯誤,請重新輸入大于 6 的偶數:");
            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、什么叫對象?什么叫類?什么是面向對象(OOP)?

類的概念:類是具有相同屬性和行為的一組對象的集合。它為屬于該類的所有對象提供了統一的抽象描述,其內部包括屬性和行為兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名并包括屬性說明和服務說明兩個主要部分。

對象的概念:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。客觀世界是由對象和對象之間的聯系組成的。

類與對象的關系就如模具和鑄件的關系,類的實例化結果就是對象,而對一類對象的抽象就是類。類描述了一組有相同特性(屬性)和相同行為(方法)的對象。

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

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

● 修飾類

當用final修飾一個類時,表明這個類不能被繼承。也就是說,如果一個類你永遠不會讓他被繼承,就可以用final進行修飾。final類中的成員變量可以根據需要設為final,但是要注意 final 類中的所有成員方法都會被隱式地指定為final 方法。在使用 final 修飾類的時候,要注意謹慎選擇,除非這個類真的在以后不會用來繼承或者出于安全的考慮,盡量不要將類設計為 final類。

● 修飾方法

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

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

在早期的Java實現版本中,會將final方法轉為內嵌調用,所以效率能夠提升。

● 修飾變量

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

139、寫出 5 個你在 JAVA 開發中常用的包含(全名),并簡述其作用。

● java.lang.*

提供利用Java編程語言進行程序設計的基礎類。最重要的類是Object(它是類層次結構的根)和Class(它的實例表示正在運行的應用程序中的類)。

● java.util.*

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

● java.io.*

Java 的核心庫java.io提供了全面的IO接口。包括:文件讀寫、標準設備輸出等。Java 中 IO是以流為基礎進行輸入輸出的,所有數據被串行化寫入輸出流,或者從輸入流讀入。

● java.net.*

并非所有系統都支持 IPv6 協議,而當 Java 網絡連接堆棧嘗試檢測它并在可用時透明地使用它時,還可以利用系統屬性禁用它。在IPv6不可用或被顯式禁用的情況下,Inet6Address  對大多數網絡連接操作都不再是有效參數。雖然可以保證在查找主機名時 java.net.InetAddress.getByName之類的方法不返回Inet6Address,但仍然可能通過傳遞字面值來創建此類對象。在此情況下,大多數方法在使用 Inet6Address 調用時都將拋出異常。

● java.sql.*

提供使用JavaTM編程語言訪問并處理存儲在數據源(通常是一個關系數據庫)中的數據的API。此API包括一個框架,憑借此框架可以動態地安裝不同驅動程序來訪問不同數據源。

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

重載需要滿足的條件:在同一類中定義的方法,方法名必須相同,參數一定不同。

發生覆蓋的條件:“三同一不低”,子類和父類的方法名稱,參數列表,返回類型必須完全相同,而且子類方法的訪問修飾符的權限不能比父類低。子類方法不能拋出比父類方法更多的異常。即子類方法所拋出的異常必須和父類方法所拋出的異常一致,或者是其子類,或者什么也不拋出;被覆蓋的方法不能是final類型的。因為final修飾的方法是無法覆蓋的。被覆蓋的方法不能為private。否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。被覆蓋的方法不能為static。所以如果父類中的方法為靜態的,而子類中的方法不是靜態的,但是兩個方法除了這一點外其他都滿足覆蓋條件,那么會發生編譯錯誤。反之亦然。即使父類和子類中的方法都是靜態的,并且滿足覆蓋條件,但是仍然不會發生覆蓋,因為靜態方法是在編譯的時候把靜態方法和類的引用類型進行匹配。

重寫規則:重寫方法不能比被重寫方法限制有更嚴格的訪問級別。(但是可以更廣泛,比如父類方法是包訪問權限,子類的重寫方法是public訪問權限)。比如:Object類有個toString()方法,開始重寫這個方法的時候我們總容易忘記public修飾符,編譯器當然不會放過任何教訓我們的機會。出錯的原因就是:沒有加任何訪問修飾符的方法具有包訪問權限,包訪問權限比 public當然要嚴格了,所以編譯器會報錯的。參數列表必須與被重寫方法相同。重寫有個孿生的弟弟叫重載,也就是后面要出場的。如果子類方法的參數與父類對應的方法不同,那么就是你認錯人了,那是重載,不是重寫。返回類型必須與被重寫方法的返回類型相同。

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

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

全部教程
主站蜘蛛池模板: 色狠狠狠狠综合影视 | 成年人视频在线播放 | 国产欧美精品一区二区三区 | 国产在线综合视频 | 日本黄线在线播放免费观看 | 免费在线你懂的 | 日韩成人在线观看 | xxxxxx日本护士xxxx | 波多野结衣最新 | 国产偷视频 | 一级全黄色片 | 欧美一级免费 | 手机在线视频一区 | 国产亚洲午夜精品 | 波多野结衣在线播放视频 | 欧美日韩一区二区综合 | 97人人澡人人爽人人爱 | 亚洲日本中文字幕天堂网 | 成年人免费在线视频网站 | 欧美日韩视频二区三区 | 欧美在线一区二区 | 天天操夜夜添 | 黄色网址日本 | 亚洲欧美日韩高清专区一区 | 波多野结衣 在线资源观看 波多野结衣 一区二区 | 男人和女人日批视频 | 中文国产成人精品久久96 | 国产在线观看一区二区三区四区 | 午夜爱爱毛片xxxx视频免费看 | 欧美综合国产精品日韩一 | 中国黄色毛片视频 | 国产欧美日本 | 无遮羞禁黄动漫在线观看 | 狠狠色丁香婷婷久久综合不卡 | 91最新视频在线观看 | 欧美性爰视频 | 亚洲午夜在线视频 | 久久99精品久久久久久秒播放器 | 午夜私人影院4480yy毛片 | 亚洲专区第一页 | 黄色片一级视频 |