亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Sun考試認(rèn)證題目解析

時間:2023-03-27 04:47:06 SUN認(rèn)證 我要投稿
  • 相關(guān)推薦

Sun考試認(rèn)證題目解析2016

  通過SUN任何一門專業(yè)認(rèn)證后,考生將收到SunMicrosystems總公司寄發(fā)的資格證書及徽章,并有權(quán)將通過Sun認(rèn)證的標(biāo)記印在個人名片上,作為個人技術(shù)能力的肯定。那么你準(zhǔn)備好考sun認(rèn)證了嗎?下面跟yjbys小編一起來看看吧!

Sun考試認(rèn)證題目解析2016

  1,給定以下代碼,求j的值。

  public class Test {

  public static void main(String[] args) throws Exception {

  int i = 0xFFFFFFF1;

  int j = ~i;

  }

  }

  A. 0 B. 1 C. 14 D. –15 E. An error at line 3 causes compilation to fail. F. An error at line 4 causes compilation to fail.

  答案:C

  解析:本題是考察進(jìn)制,原碼補(bǔ)碼,非操作等知識。首先,0xFFFFFFF1是16進(jìn)制,F(xiàn)用二進(jìn)制表示為1111,所以整個i用二進(jìn)制表示為11111111111111111111111111110001,由于j是~i(即0變1,1變0),表示j是00000000000000000000000000001110,所以變成了j的值是1110,即可求得j=14.此處若再加一個要求,求i的值。則由于計(jì)算機(jī)中存儲的都是補(bǔ)碼,第一位是符號位,轉(zhuǎn)換成原碼的方式是:其余位取反,最后加1,所以求得i的值是100000000000000000000000000001111,1表示負(fù)號,所以i=-15.

  2,給定以下代碼,選出下面為true的選項(xiàng):

  Integer i = new Integer (42);

  Long 1 = new Long (42);

  Double d = new Double (42.0);

  A. (i ==1) B. (i == d) C. (d == 1) D. (i.equals (d)) E. (d.equals (i)) F. (i.equals (42))

  答案:F

  解析:i,l,d由于類型不同,因此ABC無法通過編譯。DE選項(xiàng)返回false,能通過編譯,但是兩者對象類型不同,返回false。F選項(xiàng)在java5之后增加了自動裝箱的功能,所以F為true。題目答案給的是DE,可能是版本比較舊。不再過多琢磨了。

  3,求出下面程序的輸出結(jié)果:

  public class test {

  private static int j = 0;

  private static boolean methodB(int k) {

  j += k;

  return true;

  }

  public static void methodA(int i) {

  boolean b:

  b = i < 10 | methodB (4);

  b = i < 10 || methodB (8);

  }

  public static void main (String args[] ) {

  methodA (0);

  System.out.println(j);

  }

  }

  A. The program prints “0” B. The program prints “4” C. The program prints “8” D. The program prints “12” E. The code does not complete.

  答案:B

  解析:本題考察的是與或非以及邏輯運(yùn)算符的使用。首先要明確,&和|以及~是位運(yùn)算符,而||和&&是邏輯運(yùn)算符。位運(yùn)算符全部參與計(jì)算,而邏輯運(yùn)算符存在短路的情況。下面引用一段解釋:由于&& 要求它的參與操作的兩個操作數(shù)都是布爾值真,才得真,所以只要得出其中一個為假,那么另一部分的表達(dá)式就不會被求值。 同理由于||要求它的參與操作的兩個操作數(shù)只要其中之一為真,就得真,所以只要得出其中一個為真,那么另一部分也不會被求值(在上面的例子中是methodB (8)不會被調(diào)用)。這就是邏輯操作符所謂的“短路求值”。

  位操作沒有這一特性,所以不管那邊的值是如何,任何參與運(yùn)算的表達(dá)式都會被執(zhí)行求值,所以methodB(4)執(zhí)行。

  4,求出下面的輸出結(jié)果:

  public class test {

  public static void main (String args[]) {

  System.out.println (6 ^ 3);

  }

  }

  答案:5

  解析:考察^操作符。^指的是按位異或操作。即兩個二進(jìn)制數(shù)按位進(jìn)行異或,相同的值為0,不同的值為1。所以6的二進(jìn)制為0110,3的二進(jìn)制為0011,所以異或之后為0101,值為5。

  5,下面程序的輸出結(jié)果是:

  public class Foo {

  public static void main (String [] args) {

  StringBuffer a = new StringBuffer (“A”);

  StringBuffer b = new StringBuffer (“B”);

  operate (a,b);

  System.out.println{a + “,” +b};

  }

  static void operate (StringBuffer x, StringBuffer y) {

  x.append {y};

  y = x;

  }

  }

  A. The code compiles and prints “A,B”. B. The code compiles and prints “A,A”. C. The code compiles and prints “B,B”. D. The code compiles and prints “AB,B”. E. The code compiles and prints “AB,AB”. F. The code does not compile because “+” cannot be overloaded for StringBuffer

  答案:D

  解析:本題考察StringBuffer以及函數(shù)傳遞參數(shù)等問題,下面談一下我的理解,不敢保證全部正確。首先,a,b分別指向A和B的地址,其對應(yīng)的內(nèi)容是A和B,調(diào)用operate函數(shù)時,將a,b的引用傳遞給x,y,也就是說x,y分別復(fù)制了a,b的引用,現(xiàn)在x,y分別指向A和B。當(dāng)x執(zhí)行append操作時,由于StringBuffer的特性,這里的內(nèi)容變成了AB,也就是說這個時候x和a所指向內(nèi)存的內(nèi)容都是AB,而y==x表示的是讓y同樣指向x指向的內(nèi)容,即現(xiàn)在y指向的也是AB,但是b并沒有改變,所以b的值還是B。還有困惑的可以參考這里:http://blog.csdn.net/xia7139/article/details/8783066。

  6,下面的程序輸出什么?

  public class Test {

  public static void main(String[] args) {

  StringBuffer aBuffer = new StringBuffer("java");

  String bString = new String("java");

  stringReplace(bString);

  bufferReplace(aBuffer);

  System.out.println(bString+aBuffer);

  }

  public static void stringReplace(String string){

  string = string.replace("j", "i");

  }

  public static void bufferReplace(StringBuffer buffer){

  buffer = buffer.append("C");

  }

  }

  答案:javajavaC

  解析:本題考察String和StringBuffer的用法。定義一個String對象的時候會有個“池”的概念,也就是說String a = "abc";String b = "abc";這里表示,a和b指向的是一塊地址,定義b后發(fā)現(xiàn)string池中已有現(xiàn)在的對象,所以直接用,如果這時候用equal和==比較,二者都是true。但是如果是String c = new String("abc");則a,b和c用equal是true,用==是false。因?yàn)閏指向了不同的地址,但是內(nèi)容相同。

  而StringBuffer不同。StringBuffer指向的始終不變,通過append操作改變內(nèi)容,不會產(chǎn)生新的對象,所以StringBuffer比String快。

  所以上題很好解釋了,bString指向的是一塊地址B,而stringReplace函數(shù)只是改變了新的引用string的內(nèi)容,對bString沒有改變。而aBuffer通過append改變了自己指向的內(nèi)容,所以其內(nèi)容也會跟著變化。

  7,以下哪個輸出結(jié)果是正確的?

  public class Test {

  public static void main(String[] args) {

  Integer n = new Integer(0);

  add3(n);

  System.out.println(n);

  }

  public static void add3(Integer i){

  int a = i.intValue();

  a = a+3;

  i = new Integer(a);

  }

  }

  A. Compilation will fail. B. The program prints “0”. C. The program prints “3”. D. Compilation will succeed but an exception will be thrown at line 3.

  答案:B

  解析:Integer是對象,int是實(shí)數(shù),所以當(dāng)add3函數(shù)改變i引用指向的內(nèi)容時,原始的n并沒有改變,其內(nèi)容依然是0。

  8,選出正確的重載構(gòu)造函數(shù)

  public class ConstOver {

  public ConstOver (int x, int y, int z) {

  }

  }

  A. ConstOver ( ) { }

  B. Protected int ConstOver ( ) { }

  C. Private ConstOver (int z, int y, byte x) { }

  D. Public Object ConstOver (int x, int y, int z) { }

  E. Public void ConstOver (byte x, byte y, byte z) { }

  答案:AC

  解析:構(gòu)造函數(shù):可以用public,private,protected修飾,但不能有返回類型,或者void修飾。重載表示函數(shù)名相同,但是參數(shù)或類型一定不同。

  9,選出正確的重載函數(shù):

  public class MethodOver {

  public void setVar (int a, int b, float c) {

  }

  }

  A. Private void setVar (int a, float c, int b) { }

  B. Protected void setVar (int a, int b, float c) { }

  C. Public int setVar (int a, float c, int b) (return a;)

  D. Public int setVar (int a, int b, float c) (return a;)

  E. Protected float setVar (int a, int b, float c) (return c;)

  答案:AC

  解析:謹(jǐn)記重載的含義,函數(shù)名一定相同,參數(shù)或者類型不同。

  10,選出下面覆蓋getVar()的方法:

  class BaseClass {

  private float x = 1.0f ;

  protected float getVar ( ) { return x;}

  }

  class Subclass extends BaseClass {

  private float x = 2.0f;

  //insert code here

  }

  A. Float getVar ( ) { return x;}

  B. Public float getVar ( ) { return x;}

  C. Float double getVar ( ) { return x;}

  D. Public float getVar ( ) { return x;}

  E. Public float getVar (float f ) { return f;}

  答案:BD

  解析:覆蓋(overriding)指的是函數(shù)名和參數(shù)要和原方法相同,只是具體的實(shí)現(xiàn)細(xì)節(jié)不同。

【Sun考試認(rèn)證題目解析】相關(guān)文章:

SUN認(rèn)證考試科目06-03

SUN認(rèn)證考試項(xiàng)目06-03

SUN認(rèn)證考試流程06-10

sun認(rèn)證考試的作用05-29

Sun認(rèn)證考試類型05-29

SUN認(rèn)證考試流程詳細(xì)05-18

Sun國際認(rèn)證09-04

sun認(rèn)證考試:Java.io的使用05-29

2017年SUN認(rèn)證考試流程詳解06-16

PhotoShop認(rèn)證考試解析05-10