【283天】我愛刷題系列(42)

叨叨兩句

  1. 繼續改進學習方法,增長練習時間,腦圖先第一版,以後慢慢迭代

牛客網——java專項練習022

1

設有下面兩個賦值語句:java

a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();

下述說法正確的是()
正確答案: D安全

  1. a是整數類型變量,b是整數類對象。
  2. a是整數類對象,b是整數類型變量。
  3. a和b都是整數類對象而且它們的值相等。
  4. a和b都是整數類型變量而且它們的值相等。
intValue()是把Integer對象類型變成int的基礎數據類型; 
parseInt()是把String 變成int的基礎數據類型; 
Valueof()是把String 轉化成Integer對象類型;(如今JDK版本支持自動裝箱拆箱了。)
本題:parseInt獲得的是基礎數據類型int,valueof獲得的是裝箱數據類型Integer,而後再經過valueInt轉換成int,因此選擇D

2

枚舉(enum)屬於原始數據類型(primitive type)。
正確答案: B學習

  1. 正確
  2. 錯誤
在Java中,變量有兩種類型,一種是原始類型,一種是引用類型。
原始類型一共有8種,它們分別是char,boolean,byte,short,int,long,float,double。在Java API中,有它們對應的包裝類,分別是(首字母大寫)Character,Boolean,Byte,Short,Integer,Long,Float,Double(char,int的變化稍微大點)。


枚舉(enum)類型是Java 5新增的特性,它是一種新的類型,容許用常量來表示特定的數據片段,並且所有都以類型安全的形式來表示,是特殊的類,能夠擁有成員變量和方法。

3

閱讀下列程序,選擇哪個是正確的輸出結果指針

class HelloA{
public HelloA()
    {
        System.out.println("I’m A class ");
    }
    static
    {
    System.out.println("static A");
    }
}
public class HelloB extends HelloA{
    public HelloB()
    {
        System.out.println("I’m B class");
    }
    static{
        System.out.println("static B");
    }
    public static void main (String[] args){
        new HelloB();
    }
}

正確答案: Ccode

  1. static A I’m A class static B I’m B class
  2. I’m A class I’m B class static A static B
  3. static A static B I’m A class I’m B class
  4. I’m A class static A I’m B class static B
正確答案應該選C。 類的初始化順序是: 一、初始化父類中的靜態成員變量和靜態代碼塊。 二、初始化子類中的靜態成員變量和靜態代碼塊。 三、初始化父類中的普通成員變量和代碼塊,在執行父類中的構造方法。 四、初始化子類中的普通成員變量和代碼塊,在執行子類中的構造方法。

4

given the following code,what will be the output?對象

class Value{
    public int i=15;
}
public class Test{
    public static void main(String argv[]){
        Test t=new Test( );
        t.first( );
    }
 
public void first( ){
    int i=5;
    Value v=new Value( );
    v.i=25;
    second(v,i);
    System.out.println(v.i);
}
 
public void second(Value v,int i){
    i = 0;
    v.i = 20;
    Value val = new Value( );
    v = val;
    System.out.println(v.i+" "+i);
   }
}

正確答案: A索引

  1. 15 0 20
  2. 15 0 15
  3. 20 0 20
  4. 0 15 20
可能有人會選擇B,包括我剛開始也是。總覺得v不是已經指向了val了嗎??爲何仍是20呢?不該該是15嗎?
其實,緣由很簡單。如今咱們把second()換一下
publicvoidsecond(Value tmp,inti){
    i = 0;
    tmp.i = 20;
    Value val = newValue( );
    tmp = val;
    System.out.println(tmp.i+" "+i);
   }
這個tmp其實至關因而一個指向原來first中的V這個對象的指針,也就是對v對象的引用而已。可是引用是會改變所指的地址的值的。
因此在second中當tmp.i= 20的時候,就把原來first中的v的i值改成20了。接下來,又把tmp指向了新建的一個對象,因此在second中的tmp
如今指的是新的對象val,i值爲15.
當執行完畢second後,在first中在此輸出v.i的時候,應爲前面second中已經把該位置的i的值改成了20,因此輸出的是20.
至於疑惑v指向了val,其實只是名字的問題,在second中的v實踐也是另外的一個變量,名字相同了而已,這個估計也是糾結的重點。
簡單的總結,不對但願能夠提出來,謝謝!

5

ResultSet中記錄行的第一列索引爲?
正確答案: C 你的答案: C (正確)it

  1. -1
  2. 0
  3. 1
  4. 以上都不是
相關文章
相關標籤/搜索