java面試題

1.面向對象的特徵有哪幾方面?java

答:面向對象的特徵有:spring

1)抽象:抽象是將一類對象的共同特徵總結出來構造類的過程,包括數據抽象和行爲抽象兩方面sql

2)繼承:繼承是從已有類中繼承信息建立新類的過程。父子類數據庫

3)多態性:多態性指不一樣的子類型對同一消息做出的不一樣相應數組

4)封裝:封裝是將數據和操做數據的方法捆綁起來,操做數據只能調用已定義好的接口緩存

2.重載(overload)與重寫(override)的區別安全

都是實現多態性的方式mybatis

重載:方法名相同,參數不一樣,編譯時多態性mvc

重寫:方法名相同,參數相同,父子類中,覆蓋父類方法,運行時多擡oracle

3.int和Integer的區別

int是基本數據類型,Integer是int的包裝類型

4.&和&&的區別

&位運算符,邏輯與,&&是短路與,都要求兩側布爾類型爲true才能運行,可是&&前面爲false,再也不執行後面

5.數組有沒有length()方法?String有沒有length()方法?(筆試基礎題)

數組有length屬性沒有length()方法,數組的長度,String有length()方法,表示字符串長度

6.構造器(constructor)能否背重寫(override)?

不能,可是能夠背重載

7.是否能夠繼承String類?

不能,String是final修飾類,值沒法改變,不能背繼承

8.String ,StringBuffer和StringBuild的區別?

Sting值不可變,StringBuffer和StringBuild能夠改變

StringBuild非同步,效率快

StringBuffer同步,線程安全

9.char是否能夠存儲一個漢字

能夠,char能夠存儲16個字節,漢子佔8個字節

10.抽象類(abstract class)和接口(interface)的區別?

都不能夠被實例化,但能夠定義引用,繼承接口或抽象類須要實現所有方法,否則必須聲明爲抽象類,

接口成員必須是public聲明,,抽象類能夠是public、protect、private、默認的,

抽象類的成員能夠定義成員變量,接口的成員定義的成員變量都是常量

11.靜態嵌套類(Static Nested class)和內部類(inner class)的區別?

Static Nested class 是被聲明爲靜態的內部類,不須要外部實例化

內部類是須要在外部類實例化以後才能實例化

12.java 中final的做用

修飾類:不可被繼承

修飾方法:不可被重寫

修飾變量:變量爲常量,不能夠被修改

13.JDBC操做數據庫

1.加載驅動

    Class.forName("oracle.jdbc.driver.OracleDriver");

建立鏈接

    Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");

建立語句

    PreparedStatement ps = con.prepareStatement("select * from emp where sal between ? and ?");
    ps.setInt(1, 1000);
    ps.setInt(2, 3000);

執行語句

    ResultSet rs = ps.executeQuery();

處理結果

    while(rs.next()) {
        System.out.println(rs.getInt("empno") + " --- " + rs.getString("ename"));
    }

關閉資源

    finally {
        if(con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

 14.hibernate與mybatis的區別?

Hibernate與mybatis相比較,mybatis更爲輕便、靈活,容易掌握。mybatis能夠把sql語句從Java代碼中分離了出來,放在了配置文件中書寫,大大下降裏java代碼與SQL語句的耦合度,更容易對sql語句操做,重要的是mybatis還能夠書寫動態的sql語句,但mybatis也存在一些缺陷,好比mybatis自己的緩存機制沒有hibernate那麼完善,hibernate除了自己有良好的緩存機制,還可使用第三方緩存。Hibernate較完整的封裝了JDBC,Hibernate的DAO層開發比MyBatis簡單,對對象的維護和緩存要比MyBatis好。

15.springmvc與Struts的區別

springmvc是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,參數的傳遞是直接注入到方法中的,是該方法獨有的。

struts2是類級別的攔截, 一個類對應一個request上下文, struts是在接受參數的時候,能夠用屬性來接受參數, 這就說明參數是讓多個方法共享的,這也就沒法用註解或其餘方式標識其所屬方法了

相關文章
相關標籤/搜索