1. 程式人生 > >牛客網第16天

牛客網第16天

  1. 若有定義語句: int a=10 ; double b=3.14 ; 則表示式 ‘A’+a+b 值的型別是()
    A.char
    B.int
    C.double
    D.float
    正確答案: C 你的答案: C (正確)
    解析:因為按照型別大的與型別小的運算,強制轉換型別小的進行運算的規則,double>int>char,因此結果是double型別、
    2.在開發中使用泛型取代非泛型的資料型別(比如用ArrayList取代ArrayList),程式的執行時效能會變得更好。()
    A.正確
    B.錯誤
    正確答案: B 你的答案: B (正確)
    解析:泛型只在編譯的時候保證資料型別的正確性,和執行期間的效能無關
    3.以下程式的輸出結果是?
    public class Example {
    String str = new String(“good”);
    char[] ch = { ‘a’, ‘b’, ‘c’ };
    public static void main(String args[]) {
    Example ex = new Example();
    ex.change(ex.str,
    ex.ch
    );
    System.out.print(ex.str + " and ");
    System.out.print(ex.ch);
    }
    public static void change(String str, char ch[])
    {
    str = “test ok”;
    ch[0] = ‘g’;
    }
    }
    A.good and abc
    B.good and gbc
    C.test ok and abc
    D.test ok and gbc
    正確答案: B 你的答案: B (正確)
    解析:其實都是引用傳遞,只是因為String是個特殊的final類,所以每次對String的更改都會重新建立記憶體地址並存儲(也可能是在字串常量池中建立記憶體地址並存入對應的字串內容),但是因為這裡String是作為引數傳遞的,在方法體內會產生新的字串而不會對方法體外的字串產生影響。
    4.我們在程式中經常使用“System.out.println()”來輸出資訊,語句中的System是包名,out是類名,println是方法名。()
    A.正確
    B.錯誤
    正確答案: B 你的答案: B (正確)
    解析:
    java規範中包名一般是小寫的
    類名一般是大寫的
    System是類名 java.lang.System
    out是System的成員
    println是方法名
    5.對下面Spring宣告式事務的配置含義的說明錯誤的是()




    PROPAGATION_REQUIRED,readOnly
    PROPAGATION_REQUIRED



    A.定義了宣告式事務的配置模板
    B.對get方法採用只讀事務
    C.缺少sessionFactory屬性的注入
    D.配置需要事務管理的bean的代理時,通過parent引用這個配置模板,程式碼如下:



    正確答案: C 你的答案: B (錯誤)
    解析:
  <property name="transactionAttributes">        <props>

宣告式事務 管理建立在AOP之上的。其本質是對方法前後進行攔截,然後在目標方法開始之前建立或者加入一個事務,在執行完目標方法之後根據執行情況提交或者回滾事務。宣告式事務最大的優點就是不需要通過程式設計的方式管理事務,這樣就不需要在業務邏輯程式碼中摻雜事務管理的程式碼,只需在配置檔案中做相關的事務規則宣告(或通過基於@Transactional註解的方式),便可以將事務規則應用到業務邏輯中。
6.下面程式碼的輸出是什麼?
public class Base
{
private String baseName = “base”;
public Base()
{
callName();
}

public void callName()
{
    System. out. println(baseName);
}

static class Sub extends Base
{
    private String baseName = "sub";
    public void callName()
    {
        System. out. println (baseName) ;
    }
}
public static void main(String[] args)
{
    Base b = new Sub();
}

}
A.null
B.sub
C.base
正確答案: A 你的答案: C (錯誤)
解析:new Sub();在創造派生類的過程中首先建立基類物件,然後才能建立派生類。
建立基類即預設呼叫Base()方法,在方法中呼叫callName()方法,由於派生類中存在此方法,則被呼叫的callName()方法是派生類中的方法,此時派生類還未構造,所以變數baseName的值為null
7.根據下面的程式碼,
String s = null;
會丟擲NullPointerException異常的有()。
A.if( (s!=null) & (s.length()>0) )
B.if( (s!=null) && (s.length()>0) )
C.if( (s==null) | (s.length()0) )
D.if( (s
null) || (s.length()==0) )
正確答案: A C 你的答案: A C (正確)
解析:String s=null;沒有給s開闢任何空間,當執行length()方法時候,
因為沒有具體指向的記憶體空間,所以報出NullPointerException沒有指向的錯誤。
A &是與,位運算,兩個都得執行,執行到s.length()自然就報錯了。
B S!=null 結果為false 整體就為false ,&& 後面就不會執行。下面的同
8.String str = new String(“abc”),“abc”在記憶體中是怎麼分配的?
A.堆
B.棧
C.字串常量區
D.暫存器
正確答案: A C 你的答案: C D (錯誤)
解析:“abc”儲存在常量池,str引用的物件儲存在堆裡,而java7中又把常量池移到了堆中,所以這題題目就不夠嚴謹
9. 以下JSP程式碼定義了一個變數,如何輸出這個變數的值?
<bean:define id=“stringBean” value=“helloWorld”/>
A.<bean:write name=“helloWorld”/>
B.<%=stringBean%>
C.<bean:write name=“stringBean”/>
D.<%String myBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);%>
<%=myBean%>
正確答案: B C D 你的答案: C D (錯誤)
解析: bean是Struts1的標籤,先下載struts-taglib-1.3.10.jar,然後新增到lib.
測試程式碼:
<%@ page language=“java” contentType=“text/html; charset=gbk”
pageEncoding=“gbk”%>
<%@ taglib prefix=“bean” uri=“http://struts.apache.org/tags-bean”%>

test <%=stringBean%> <%String myBean=(String)pageContext.getAttribute("stringBean",PageContext.PAGE_SCOPE);%> <%=myBean%> 10.下面哪幾個語句正確的宣告一個整型的二維陣列()

A.int a[][]=new int[][]

B.int b[10][10]=new int[][]

C.int c[][]=new int[10][10]

D.int []d[]=new int[10][10]
正確答案: C D 你的答案: C D (正確)
解析:後面不給出陣列的長度都是錯的。