<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 4, comments - 5, trackbacks - 0, articles - 10

    java面試收集(持續更新)-1 原貼編輯太慢了

    Posted on 2005-11-28 15:24 勇敢的心 閱讀(246) 評論(0)  編輯  收藏 所屬分類: Java
    91、應用服務器與WEB SERVER的區別?
    通俗的講,Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用(call)的方法(methods)。確切一點,你可以說:Web服務器專門處理HTTP請求(request),但是應用程序服務器是通過很多協議來為應用程序提供(serves)商業邏輯(business logic)。

    92、BSCS的聯系與區別。
    C/SClient/Server的縮寫。服務器通常采用高性能的PC、工作站或小型機,并采用大型數據庫系統,如OracleSybaseInformix SQL Server。客戶端需要安裝專用的客戶端軟件。
    B/
    S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape NavigatorInternet Explorer,服務器安裝OracleSybaseInformix SQL Server等數據庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。瀏覽器通過Web Server 同數據庫進行數據交互。
    C/S
    B/S 區別:
    1.硬件環境不同:
      C/S 一般建立在專用的網絡上, 小范圍里的網絡環境, 局域網之間再通過專門服務器提供連接和數據交換服務.
      B/S 建立在廣域網之上的, 不必是專門的網絡硬件環境,例與電話上網, 租用設備. 信息自己管理. 有比C/S更強的適應范圍, 一般只要有操作系統和瀏覽器就行
    2.對安全要求不同
      C/S 一般面向相對固定的用戶群, 對信息安全的控制能力很強. 一般高度機密的信息系統采用C/S 結構適宜. 可以通過B/S發布部分可公開信息.
      B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。
    3.對程序架構不同
      C/S 程序可以更加注重流程, 可以對權限多層次校驗, 對系統運行速度可以較少考慮.
      B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優化的基礎之上. C/S有更高的要求 B/S結構的程序架構是發展的趨勢, MS.Net系列的BizTalk 2000 Exchange 2000, 全面支持網絡的構件搭建的系統. SUN IBM推的JavaBean 構件技術等,使 B/S更加成熟.
    4.軟件重用不同
      C/S 程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.
      B/S 對的多重結構,要求構件相對獨立的功能. 能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子
    5.系統維護不同 
      C/S 程序由于整體性, 必須整體考察, 處理出現的問題以及系統升級. 升級難. 可能是再做一個全新的系統
      B/S 構件組成,方面構件個別的更換,實現系統的無縫升級. 系統維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級.
    6.處理問題不同
      C/S 程序可以處理用戶面固定, 并且在相同區域, 安全要求高需求, 與操作系統相關. 應該都是相同的系統
      B/S 建立在廣域網上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的. 與操作系統平臺關系最小.
    7.用戶接口不同
      C/S 多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高
      B/S 建立在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流. 并且大部分難度減低,減低開發成本.
    8.信息流不同
      C/S 程序一般是典型的中央集權的機械式處理, 交互性相對低
      B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。

    二、JAVA代碼查錯

    1.
    abstract class Name {
       private String name;
       public abstract boolean isStupidName(String name) {}
    }
    大俠們,這有何錯誤?
    答案: 錯。abstract method必須以分號結尾,且不帶花括號。
    2.
    public class Something {
       void doSomething () {
           private String s = "";
           int l = s.length();
       }
    }
    有錯嗎?
    答案: 錯。局部變量前不能放置任何訪問修飾符 (privatepublic,和protected)final可以用來修飾局部變量
    (final
    如同abstractstrictfp,都是非訪問修飾符,strictfp只能修飾classmethod而非variable)
    3.
    abstract class Something {
       private abstract String doSomething ();
    }
    這好像沒什么錯吧?
    答案: 錯。abstractmethods不能以private修飾。abstractmethods就是讓子類implement(實現)具體細節的,怎么可以用privateabstract
    method
    封鎖起來呢? (同理,abstract method前不能加final)
    4.
    public class Something {
       public int addOne(final int x) {
           return ++x;
       }
    }
    這個比較明顯。
    答案: 錯。int x被修飾成final,意味著x不能在addOne method中被修改。
    5.
    public class Something {
       public static void main(String[] args) {
           Other o = new Other();
           new Something().addOne(o);
       }
       public void addOne(final Other o) {
           o.i++;
       }
    }
    class Other {
       public int i;
    }
    和上面的很相似,都是關于final的問題,這有錯嗎?
    答案: 正確。在addOne method中,參數o被修飾成final。如果在addOne method里我們修改了oreference
    (
    比如: o = new Other();),那么如同上例這題也是錯的。但這里修改的是omember vairable
    (
    成員變量),而oreference并沒有改變。
    6.
    class Something {
        int i;
        public void doSomething() {
            System.out.println("i = " + i);
        }
    }
    有什么錯呢? 看不出來啊。
    答案: 正確。輸出的是"i = 0"int i屬於instant variable (實例變量,或叫成員變量)instant variabledefault valueintdefault value0
    7.
    class Something {
        final int i;
        public void doSomething() {
            System.out.println("i = " + i);
        }
    }
    和上面一題只有一個地方不同,就是多了一個final。這難道就錯了嗎?
    答案: 錯。final int i是個finalinstant variable (實例變量,或叫成員變量)finalinstant variable沒有default value,必須在constructor (構造器)結束之前被賦予一個明確的值。可以修改為"final int i = 0;"
    8.
    public class Something {
         public static void main(String[] args) {
            Something s = new Something();
            System.out.println("s.doSomething() returns " + doSomething());
        }
        public String doSomething() {
            return "Do something ...";
        }
    }
     
    看上去很完美。
    答案: 錯。看上去在maincall doSomething沒有什么問題,畢竟兩個methods都在同一個class里。但仔細看,mainstatic的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能訪問non-static instant variable
    9.
    此處,Something類的文件名叫OtherThing.java
    class Something {
        private static void main(String[] something_to_do) {       
            System.out.println("Do something ...");
        }
    }
     
    這個好像很明顯。
    答案: 正確。從來沒有人說過JavaClass名字必須和其文件名相同。但public class的名字必須和文件名相同。
    10

    interface  A{
       int x = 0;
    }
    class B{
       int x =1;
    }
    class C extends B implements A {
       public void pX(){
          System.out.println(x);
       }
       public static void main(String[] args) {
          new C().pX();
       }
    }
    答案:錯誤。在編譯時會發生錯誤(錯誤描述不同的JVM有不同的信息,意思就是未明確的x調用,兩個x都匹配(就象在同時import java.utiljava.sql兩個包時直接聲明Date一樣)。對于父類的變量,可以用super.x來明確,而接口的屬性默認隱含為 public static final.所以可以通過A.x來明確。
    11.
    interface Playable {
        void play();
    }
    interface Bounceable {
        void play();
    }
    interface Rollable extends Playable, Bounceable {
        Ball ball = new Ball("PingPang");
    }
    class Ball implements Rollable {
        private String name;
        public String getName() {
            return name;
        }
        public Ball(String name) {
            this.name = name;       
        }
       public void play() {
            ball = new Ball("Football");
            System.out.println(ball.getName());
        }
    }
    這個錯誤不容易發現。
    答案: 錯。"interface Rollable extends Playable, Bounceable"沒有問題。interface可繼承多個interfaces,所以這里沒錯。問題出在interface Rollable里的"Ball ball = new Ball("PingPang");"。任何在interface里聲明的interface variable (接口變量,也可稱成員變量),默認為public static final。也就是說"Ball ball = new Ball("PingPang");"實際上是"public static final Ball ball = new Ball("PingPang");"。在Ball類的Play()方法中,"ball = new Ball("Football");"改變了ballreference,而這里的ball來自Rollable interfaceRollable interface里的ballpublic static final的,finalobject是不能被改變reference的。因此編譯器將在"ball = new Ball("Football");"這里顯示有錯。



    主站蜘蛛池模板: 在线观看免费视频网站色| 久久久久亚洲AV成人片| 亚洲欧美国产国产综合一区| 亚洲美女免费视频| 久久精品国产亚洲av麻豆色欲 | 久久久久亚洲AV成人片| 亚洲日本中文字幕一区二区三区 | 妞干网手机免费视频| 亚洲av乱码一区二区三区| 国产福利在线观看免费第一福利| 亚洲va在线va天堂va手机| 亚洲国产综合无码一区| 91老湿机福利免费体验| 亚洲www77777| 亚洲国产精品丝袜在线观看| 美女无遮挡免费视频网站| 亚洲精品无码av天堂| 日韩免费无码一区二区三区 | 成人午夜免费福利视频| 亚洲国产欧美一区二区三区| 亚洲精品麻豆av| 国产大片免费观看中文字幕| 国产精品免费久久久久久久久| 国产精品亚洲片在线观看不卡| 亚洲国产综合精品中文字幕 | 亚洲w码欧洲s码免费| 亚洲另类自拍丝袜第1页| 亚洲精品尤物yw在线影院| 国产美女无遮挡免费网站| 在线免费观看一区二区三区| 免费大片黄在线观看yw| eeuss影院www天堂免费| 日韩在线视频免费| 亚洲制服丝袜一区二区三区| 亚洲最大的视频网站| 精品亚洲一区二区三区在线播放| 69xx免费观看视频| 久草免费福利在线| 亚洲AV无码AV吞精久久| 亚洲国产香蕉碰碰人人| 又爽又黄无遮挡高清免费视频|