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

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

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

    小小

    IT
    數據加載中……
    一些著名的大公司面試題目-java
    文章來源:一路讀  http://www.yiludu.cn
    一、Java基礎知識
    1. Java有那些基本數據類型,String是不是基本數據類型,他們有何區別。
    Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.
    String 不是基本數據類型
    2. 字符串的操作:
    寫一個方法,實現字符串的反轉,如:輸入abc,輸出cba
    public static String reverse(String s){
    int length=s.length();
    StringBuffer result=new StringBuffer(length);
    for(int i=length-1;i>=0;i--)
    result.append(s.charAt(i));
    return result.toString();
    }
    寫一個方法,實現字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。
    3. 數據類型之間的轉換
    如何將數值型字符轉換為數字(Integer,Double)
    如何將數字轉換為字符
    如何去小數點前兩位,并四舍五入。
    4. 日期和時間
    如何取得年月日,小時分秒
    Date dat=new Date();
    dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...
    如何取得從1970年到現在的毫秒數
    long now=dat.getTime();
    如何獲取某個日期是當月的最后一天
    如何格式化日期
    DateFormate df=DateFormate.getInstance();
    df.Format(dat);
    5. 數組和集合
    6. 文件和目錄(I/O)操作
    如何列出某個目錄下的所有文件
    如何列出某個目錄下的所有子目錄
    判斷一個文件或目錄是否存在
    如何讀寫文件
    7. Java多態的實現(繼承、重載、覆蓋)
    8. 編碼轉換,怎樣實現將GB2312編碼的字符串轉換為ISO-8859-1編碼的字符串。
    9. Java中訪問數據庫的步驟,Statement和PreparedStatement之間的區別。
    10. 找出下列代碼可能存在的錯誤,并說明原因:
    二、JSP&Servlet技術
    1. 描述JSP和Servlet的區別、共同點、各自應用的范圍
    2. 在Web開發中需要處理HTML標記時,應做什么樣的處理,要篩選那些字符(< > & "")
    3. 在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。
    4. 描述Cookie和Session的作用,區別和各自的應用范圍,Session工作原理。
    5. 列出Jsp中包含外部文件的方式,兩者有何區別。
    6. 說明Jsp中errorPage的作用,應用范圍。
    7. 介紹在Jsp中如何使用JavaBeans。
    8. 簡單介紹JSP的標記庫
    9. Jsp和Servlet中的請求轉發分別如何實現。
    三、J2EE相關知識
    1. 介紹J2EE、J2SE、J2SE的區別。
    2. J2EE是一種技術還是一種平臺,他提供了那些技術。
    3. 什么是Application Server,它有什么功能和優點。
    4. 簡單介紹連接池的優點和原理。
    5. Web.xml的作用
    四、其他
    1. Web安全性的考慮(表單驗證、瀏覽器Basic方式的驗證,應用程序的安全性,SSL,代碼考慮)
    2. 簡單介紹您所了解的MVC。
    3. 簡單介紹所了解的XML。
    4. 文檔和編碼規范
    5. Java中的分頁、效率考慮。
    6. 簡單介紹您所了解的structs。


    找出以下程序錯誤。
    Class Test{
    private String par1;
    private String par2;
    Test(){
    }

    public static void main(String[] arg){
    int a ;
    if(a){
    System.out.println("par1="+par1);
    }else{
    System.out.println("par2=" + par2);
    }
    }
    }

    ==================================

    public class Test
    {
    public static int a = 5;
    public static void main(String[] args)
    {
    Test test = new Test();
    test = null;
    System.out.println(test.a);
    }
    }
    答案是5,a為靜態變量;不依賴對象,即使為空。

    J2EE初學者需要理解的問題

    一、J2EE提出的背景
    1、 企業級應用框架的需求

    在許多企業級應用中,例如數據庫連接、郵件服務、事務處理等都是一些通用企業需求模塊,這些模塊如果每次再開發中都由開發人員來完成的話,將會造成開發周期長和代碼可*性差等問題。于是許多大公司開發了自己的通用模塊服務。這些服務性的軟件系列統稱為中間件。

    2、 為了通用必須要提出規范,不然無法達到通用

    在上面的需求基礎之上,許多公司都開發了自己的中間件,但其與用戶的溝通都各有不同,從而導致用戶無法將各個公司不同的中間件組裝在一塊為自己服務。從而產生瓶頸。于是提出標準的概念。其實J2EE就是基于JAVA技術的一系列標準。

    注:中間件的解釋 中間件處在操作系統和更高一級應用程序之間。他充當的功能是:將應用程序運行環境與操作系統隔離,從而實現應用程序開發者不必為更多系統問題憂慮,而直接關注該應用程序在解決問題上的能力 。我們后面說到的容器的概念就是中間件的一種。

    二、相關名詞解釋
    容器:充當中間件的角色

    WEB容器:給處于其中的應用程序組件(JSP,SERVLET)提供一個環境,使JSP,SERVLET直接更容器中的環境變量接口交互,不必關注其它系統問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

    EJB容器:Enterprise java bean 容器。更具有行業領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現成的接口來獲得系統級別的服務。例如郵件服務、事務管理。

    WEB容器和EJB容器在原理上是大體相同的,更多的區別是被隔離的外界環境。WEB容器更多的是跟基于HTTP的請求打交道。而EJB容器不是。它是更多的跟數據庫、其它服務打交道。但他們都是把與外界的交互實現從而減輕應用程序的負擔。例如SERVLET不用關心HTTP的細節,直接引用環境變量session,request,response就行、EJB不用關心數據庫連接速度、各種事務控制,直接由容器來完成。

    RMI/IIOP:遠程方法調用/internet對象請求中介協議,他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規范才能在異構的系統之間進行通信。RMI是JAVA特有的。

    JNDI:JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統,讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。

    JMS:JAVA消息服務。 主要實現各個應用程序之間的通訊。包括點對點和廣播。

    JAVAMAIL:JAVA郵件服務。提供郵件的存儲、傳輸功能。他是JAVA編程中實現郵件功能的核心。相當MS中的EXCHANGE開發包。

    JTA:JAVA事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。

    JAF:JAVA安全認證框架。提供一些安全控制方面的框架。讓開發者通過各種部署和自定義實現自己的個性安全控制策略。

    EAI:企業應用集成。是一種概念,從而牽涉到好多技術。J2EE技術是一種很好的集成實現。

    三、J2EE的優越性
    1、 基于JAVA 技術,平臺無關性表現突出

    2、 開放的標準,許多大型公司已經實現了對該規范支持的應用服務器。如BEA ,IBM,ORACLE等。

    3、 提供相當專業的通用軟件服務。

    4、 提供了一個優秀的企業級應用程序框架,對快速高質量開發打下基礎

    四、現狀
    J2EE是由SUN 公司開發的一套企業級應用規范?,F在最高版本是1.4。支持J2EE的應用服務器有IBM WEBSPHERE APPLICATION SERVER,BEA WEBLOGIC SERVER,JBOSS,ORACLE APPLICATION SERVER,SUN ONE APPLICATION SERVER 等。


    學習Java的30個基本概念

    Java概述:
    目前Java主要應用于中間件的開發(middleware)---處理客戶機于服務器之間的通信技術,早期的實踐證明,Java不適合pc應用程序的開發,其發展逐漸變成在開發手持設備,互聯網信息站,及車載計算機的開發.Java于其他語言所不同的是程序運行時提供了平臺的獨立性,稱許可以在windows,solaris,linux其他操作系統上使用完全相同的代碼.Java的語法與C++語法類似,C++/C程序員很容易掌握,而且Java是完全的徹底的面向對象的,其中提出了很好的GC(Garbage Collector)垃圾處理機制,防止內存溢出.


    Java的白皮書為我們提出了Java語言的11個關鍵特性.

    (1)Easy:Java的語法比C++的相對簡單,另一個方面就是Java能使軟件在很小的機器上運行,基礎解釋其和類庫的支持的大小約為40kb,增加基本的標準庫和線程支持的內存需要增加125kb.


    (2)分布式:Java帶有很強大的TCP/IP協議族的例程庫,Java應用程序能夠通過URL來穿過網絡來訪問遠程對象,由于servlet機制的出現,使Java編程非常的高效,現在許多的大的web server都支持servlet.


    (3)OO:面向對象設計是把重點放在對象及對象的接口上的一個編程技術.其面向對象和C++有很多不同,在與多重繼承的處理及Java的原類模型.


    (4)健壯特性:Java采取了一個安全指針模型,能減小重寫內存和數據崩潰的可能性。


    (5)安全:Java用來設計網路   和分布系統,這帶來了新的安全問題,Java可以用來構建防病毒和防攻擊的System.事實證明Java在防毒這一方面做的比較好.

    (6)中立體系結構:Java編譯其生成體系結構中立的目標文件格式可以在很多處理器上執行,編譯器產生的指令字節碼(Javabytecode)實現此特性,此字節碼可以在任何機器上解釋執行.


    (7)可移植性:Java中對基本數據結構類型的大小和算法都有嚴格的規定所以可移植性很好.


    (8)多線程:Java處理多線程的過程很簡單,Java把多線程實現交給底下操作系統或線程程序完成.所以多線程是Java作為服務器端開發語言的流行原因之一


    (9)Applet和servlet:能夠在網頁上執行的程序叫Applet,需要支持Java的瀏覽器很多,而applet支持動態的網頁,這是很多其他語言所不能做到的.


    基本概念:


    1.OOP中唯一關系的是對象的接口是什么,就像計算機的銷售商她不管電源內部結構是怎樣的,他只關系能否給你提供電就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數調用來完成,對象間所有的交流都是通過方法調用,通過對封裝對象數據,很大限度上提高復用率.


    2.OOP中最重要的思想是類,類是模板是藍圖,從類中構造一個對象,即創建了這個類的一個實例(instance)


    3.封裝:就是把數據和行為結合起在一個包中)并對對象使用者隱藏數據的實現過程,一個對象中的數據叫他的實例字段(instance field)


    4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴展而得,根超類下文會做介紹.


    5.對象的3個主要特性

    behavior---說明這個對象能做什么.

    state---當對象施加方法時對象的反映.

    identity---與其他相似行為對象的區分標志.

    每個對象有唯一的indentity 而這3者之間相互影響.

    6.類之間的關系:

    use-a :依賴關系

    has-a :聚合關系

    is-a :繼承關系--例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在于共性中)


    7.構造對象使用構造器:構造器的提出,構造器是一種特殊的方法,構造對象并對其初始化.

    例:Data類的構造器叫Data

    new Data()---構造一個新對象,且初始化當前時間.

    Data happyday=new

    Data()---把一個對象賦值給一個變量happyday,從而使該對象能夠多次使用,此處要聲明的使變量與對象變量二者是不同的.new返回的值是一個引用.

    構造器特點:構造器可以有0個,一個或多個參數

    構造器和類有相同的名字

    一個類可以有多個構造器

    構造器沒有返回值

    構造器總是和new運算符一起使用.


    8.重載:當多個方法具有相同的名字而含有不同的參數時,便發生重載.編譯器必須挑選出調用哪個方法.


    9.包(package)Java允許把一個或多個類收集在一起成為一組,稱作包,以便于組織任務,標準Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內.


    10.繼承思想:允許在已經存在的類的基礎上構建新的類,當你繼承一個已經存在的類時,那么你就復用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段.


    11.擴展類:擴展類充分體現了is-a的繼承關系. 形式為:class (子類) extends (基類).


    12.多態:在java中,對象變量是多態的.而java中不支持多重繼承.


    13.動態綁定:調用對象方法的機制.

    (1)編譯器檢查對象聲明的類型和方法名.

    (2)編譯器檢查方法調用的參數類型.

    (3)靜態綁定:若方法類型為priavte static final 編譯器會準確知道該調用哪個方法.

    (4)當程序運行并且使用動態綁定來調用一個方法時,那么虛擬機必須調用x所指向的對象的實際類型相匹配的方法版本.

    (5)動態綁定:是很重要的特性,它能使程序變得可擴展而不需要重編譯已存代碼.


    14.final類:為防止他人從你的類上派生新類,此類是不可擴展的.


    15.動態調用比靜態調用花費的時間要長,


    16.抽象類:規定一個或多個抽象方法的類本身必須定義為abstract例: public abstract string getDescripition


    17.Java中的每一個類都是從Object類擴展而來的.


    18.object類中的equal和toString方法.equal用于測試一個對象是否同另一個對象相等.toString返回一個代表該對象的字符串,幾乎每一個類都會重載該方法,以便返回當前狀態的正確表示.(toString 方法是一個很重要的方法)


    19.通用編程:任何類類型的所有值都可以同object類性的變量來代替.


    20.數組列表:ArrayList動態數組列表,是一個類庫,定義在java.uitl包中,可自動調節數組的大小.


    21.class類 object類中的getclass方法返回ckass類型的一個實例,程序啟動時包含在main方法的類會被加載,虛擬機要加載他需要的所有類,每一個加載的類都要加載它需要的類.


    22.class類為編寫可動態操縱java代碼的程序提供了強大的功能反射,這項功能為JavaBeans特別有用,使用反射Java能支持VB程序員習慣使用的工具.能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機制十分強大.

    1.在運行時分析類的能力.

    2.在運行時探察類的對象.

    3.實現通用數組操縱代碼.

    4.提供方法對象.

    而此機制主要針對是工具者而不是應用及程序.

    反射機制中的最重要的部分是允許你檢查類的結構.用到的API有:

    java.lang.reflect.Field 返回字段.

    java.reflect.Method 返回方法.

    java.lang.reflect.Constructor 返回參數.

    方法指針:java沒有方法指針,把一個方法的地址傳給另一個方法,可以在后面調用它,而接口是更好的解決方案.



    23.接口(Interface)說明類該做什么而不指定如何去做,一個類可以實現一個或多個interface.


    24.接口不是一個類,而是對符合接口要求的類的一套規范.若實現一個接口需要2個步驟:

    1.聲明類需要實現的指定接口.

    2.提供接口中的所有方法的定義.

    聲明一個類實現一個接口需要使用implements 關鍵字class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是類,不能用new實例化一個接口.


    25.一個類只有一個超類,但一個類能實現多個接口.Java中的一個重要接口Cloneable


    26.接口和回調.編程一個常用的模式是回調模式,在這種模式中你可以指定當一個特定時間發生時回調對象上的方法.例:ActionListener 接口監聽.

    類似的API有:java.swing.JOptionPane

    java.swing.Timer

    java.awt.Tookit


    27.對象clone:clone方法是object一個保護方法,這意味著你的代碼不能簡單的調用它.


    28.內部類:一個內部類的定義是定義在另一個內部的類

    原因是:1.一個內部類的對象能夠訪問創建它的對象的實現,包括私有數據

    2.對于同一個包中的其他類來說,內部類能夠隱藏起來.

    3.匿名內部類可以很方便的定義回調.

    4.使用內部類可以非常方便的編寫事件驅動程序.

    29.代理類(proxy):1.指定接口要求所有代碼 2.object類定義的所有的方法(toString equals)

    30.數據類型:Java是強調類型的語言,每個變量都必須先申明它都類型,java中總共有8個基本類型.4種是整型,2種是浮點型,一種是字符型,被用于Unicode編碼中的字符,布爾型.

    posted on 2008-09-22 02:16 小小it 閱讀(148) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产偷v国产偷v亚洲高清| 免费A级毛片无码久久版| 国产亚洲精品资源在线26u| 成年免费大片黄在线观看com| 免费看美女让人桶尿口| 国产日本亚洲一区二区三区 | 亚洲中文字幕视频国产| 校园亚洲春色另类小说合集| 日本免费一区尤物| 国产成人久久精品亚洲小说| 国产小视频在线观看免费| 亚洲高清毛片一区二区| 国产人妖ts在线观看免费视频| 爱情岛论坛亚洲品质自拍视频网站 | 91在线视频免费观看| 国产亚洲综合网曝门系列| 国内精品免费视频精选在线观看| 亚洲v高清理论电影| 亚洲啪啪免费视频| 亚洲无码一区二区三区| 日韩免费电影在线观看| 免费毛片毛片网址| 久久亚洲伊人中字综合精品| 久久成人国产精品免费软件| 亚洲熟妇AV一区二区三区宅男| 在线免费观看韩国a视频| 成年免费a级毛片| 亚洲伊人tv综合网色| 久久久久免费看黄A片APP| 污污视频免费观看网站| 亚洲AV午夜成人影院老师机影院| 黄页网站在线看免费| 黄色网址大全免费| 亚洲AV无码日韩AV无码导航| 黄页网站免费观看| 人妻18毛片a级毛片免费看| 内射干少妇亚洲69XXX| 永久免费观看的毛片的网站| 光棍天堂免费手机观看在线观看| 亚洲三级视频在线观看| 亚洲精品动漫人成3d在线 |