技术帮
 

Java实用类测试题1

本网站内容基本都是原创作品,未得到作者同意也欢迎转载
转载请注明出处:技术帮
说你呢,赶紧长按二维码,然后点击识别图中二维码

任何技术难题可进QQ群提问:【小崔说编程
对于提问的原则是:没有你不能问的,只有我不会答的

1.下列String类的( )方法返回指定字符串的一部分(选择一项)

A.extractstring()

B.substring()

C.Substring()

D.Middlestring()

2.下列哪一个是正确的(     )

A)HashTable的关键字和值都允许为null

B)HashTable的关键字和值都不允许为null

C)HashTable的关键字允许为null,值不允许为null

D)HashTable的关键字不允许为null,值允许为null

3.对于下列代码:

String str1="java";

String str2="java";

String str3=new String("java");

StringBuffer str4=new StringBuffer("java");

以下表达式的值为true的是(     )

A)  str1= =str2;B)  str1= =str4; 

C)  str2= =str3;D)  str3= =str4;

4.以下程序段输出结果的是(     )

public class Test {

   public static void main(String args[]){

    String str="ABCDE";

    str.substring(3);

    str.concat("XYZ");

    System.out.print(str);

   }

}

A)  DE     B)  DEXYZ    C)  ABCDE      D)  CDEXYZ

5.对于下列代码:                                    

public class Example{

String str=new String("hello");

char ch[]={'d','b','c'};

public static void main(String args[]){

Example ex=new Example();

ex.change(ex.str,ex.ch);

System.out.println(ex.str+"and"+ex.ch[0]);

}

public void change(String str,char ch[]){

str="world";ch[0]= 'a';

}

}

输出结果是:  (      )

A) hello and dB) hello and a

C) world and dD) world and a

6.以下代码的运行结果是哪一项。(      )

public class StringTest

{

public static void mb_operate(String x,String y)

{

x.concat(y);

y=x;

}

public static void main (String args[])

{

String a="A";

String b="B";

mb_operate(a,b);

System.out.println(a+"."+b);

}

}

A)A.AB)B.A

C)A.BD)B.B

7.以下代码的运行结果是哪一项。(      )

public class StringArray Test

{

public static void mb_swap(String [] s)

{

if(s.length<2)

   return;

String t=s[0];

s[0]=s[1];

s[1]=t;

}

public static void main (String args[])

{

String [] s={"1","2"};

mb_swap(s);

System.out.print(s[0]+s[1]);

}

}

A)20B)21

C)22D)23

8.以下代码的运行结果是哪一项。(      )

public   class   TestGetChars{ 

  public   static   void   main(String[]   args){ 

String myString = new String("Hello World!");

char [] yourString = new char[16];

myString.getChars(6,11,yourString,0);

System.out.println(myString);

System.out.println(yourString);

  }   

}

A)Hello World! B)Hello World!

Hello                                           Hello!

C)Hello World! D)World

World World

9.以下代码的运行结果是哪一项。(      )

public   class   TestStringContructor{ 

  public   static   void   main(String[]   args){ 

  byte [] b = {49,50,51,52,53};

String myString = new String(b);

System.out.println(myString);

  }   

}

A)45555B)12345

C)90123D)4950515253

10.以下代码的运行结果是哪一项。

public class J_Intern

{

    public static void main(String args[ ])

    {

        String s1 = "123456"; 

        String s2 = "123456"; 

        String s3 = "123" + "456"; 

        String a0 = "123";

        String s4 = a0 + "456"; 

        String s5 = new String("123456"); 

        String s6 = s5.intern( );

        System.out.println("s2" + ((s2==s1) ? "==" : "!=") +"s1");

        System.out.println("s3" + ((s3==s1) ? "==" : "!=") +"s1");

        System.out.println("s4" + ((s4==s1) ? "==" : "!=") +"s1");

        System.out.println("s5" + ((s5==s1) ? "==" : "!=") +"s1");

        System.out.println("s6" + ((s6==s1) ? "==" : "!=") +"s1");

    } 

}

A)s2==s1 B)s2==s1

s3==s1 s3==s1

s4!=s1 s4==s1

s5!=s1s5!=s1

s6==s1 s6==s1

C)s2==s1 D)s2!=s1

s3==s1 s3==s1

s4!=s1 s4!=s1

s5!=s1 s5!=s1

s6!=s1 s6==s1

11.下面程序段的输出结果是(      ) 

StringBuffer buf1=new StringBuffer(20); 

System.out.println(buf1.length()+ ‘,’+buf1,capacity()); 

A)  0,20 B)  0,null C)  20,20 D)  0,0

12.下面的语句序列的输出结果为(      )

String s= “ABCD”; 

s.concat(“E”); 

s.replace(‘C’,‘F’); 

A)ABCDEF B)ABFDE C)ABCDED)ABCD

13.下面的哪些程序片断可能导致错误? (      )

A) String s = "Gone with the wind"; B) String s = "Gone with the wind";

String t = " good ";  String t;

String k = s + t;  t = s[3] + "one";

C) String s = "Gone with the wind"; D) String s = "home directory";

String standard = s.toUpperCase();   String t = s - "directory";

14.给出下面的代码片断

1) public void create() { 

2} Vector myVect;

3} myVect = new Vector(); 

4} } 

下面的哪些陈述为true(真)? (      )

A) 第二行的声明不会为变量myVect分配内存空间。 

B) 第二行的声明分配一个到Vector对象的引用的内存空间。

C) 第二行语句创建一个Vector类对象。

D) 第三行语句创建一个Vector类对象。

E) 第三行语句为一个Vector类对象分配内存空间。 

15.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的(      ) 

A )  ArrayList myList=new Object();B)  List myList=new ArrayList(); 

C)  ArrayList myList=new List();D)  List myList=new List(); 

16.执行下列代码后,哪个结论是正确的 String[] s=new String[10]; (      )

A)  s[10] 为 ""; B)  s[9] 为 null; 

C)  s[0] 为 未定义 D)  s.length 为10 

17.下面的表达式哪个是正确的? (      )

A)  String s="你好";int i=3; s+=i; 

B)  String s="你好";int i=3; if(i==s){ s+=i}; 

C)  String s="你好";int i=3; s=i+s; 

D)  String s="你好";int i=3; s=i+; 

E)  String s=null; int i=(s!=null)&&(s.length>0)?s.length():0; 

18.给定下列程序:

public class Test

{

  public static void main(String args[]){

  String str=new String("World");

      char ch[]={'C','e','l','l','o'};

  change(str,ch);

  System.out.println(str+"and"+ch);

  }

  public static void change(String str,char ch[]){

   str="Changed";ch[0]='H';

  }

};

上述程序的运行结果应该是?(      )

A)  World and CelloB)  World and Hello

C)  Changed and HelloD)  Changed and Cello

19.在java语言中,下列表达式返回true的是哪些项目。(      )

A)  "hello"=="hello" B)  "word".equals("word")

C)  "john"="john"D)  "john".equals(new Button("john"))

20.下面的哪些程序片断可能导致错误?(      )

A)  String s="Hello"; B)  String s="Hello";

    String t="World"; String t;

    String k=s+t;t=s[3]+"one";

C)  String s="Hello"; D)  String s="Hello World";

    String standard = s.toUpperCase();String t=s-"World";

21.在java语言中,下列语句中正确的是哪个?(      )

A)  String temp[]=new String{"a" "b" "c"};

B)  String temp[]={"a" "b" "c"};

C)  String temp={"a" "b" "c"};

D)  String temp[]={"a","b","c"};

22.下面的哪些叙述为真? (      )

A)  equals()方法判定引用值是否指向同一对象。

B)  == 操作符判定两个分立的对象的内容和类型是否一致。

C)  equals()方法只有在两个对象的内容一致时返回true。 

D)  类File重写方法equals()在两个分立的对象的内容和类型一致时返回true。 

23.关于以下程序段,正确的说法是

1.  String  s1="Hello";

2.  String  s2="Hello";

3.  if(s1= =s2)

4.      System.out.println("s1= =s2");

5.  if (s1.equals(s2))

6.  System.out.println("s1.equals(s2) ");

A.  行4与行6都将执行 

B.  行4执行,行6不执行

C.  行6执行,行4不执行

D.  行4、行6都不执行

24.要产生[20,999]之间的随机整数使用哪个表达式?

A.(int)(20+Math.random()*97)

B. 20+(int)(Math.random()*980)

C. (int)Math.random()*999

D. 20+(int)Math.random()*980

25.下列程序运行的结果为:

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 "); 

    Sytem.out.print(ex.ch); 

  } 

  public 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 

26.设有如下程序

public class test {

   public static void main(String args[]) { 

      Integer intObj=Integer.valueOf(args[args.length-1]);

      int i = intObj.intValue();

      if(args.length > 1) 

         System.out.println(i);

      if(args.length > 0)

         System.out.println(i - 1);

      else 

         System.out.println(i - 2);

   }

运行程序,输入如下命令:

   java test 2 

则输出为:

A. test      B. test -1     C. 0 

D. 1         E. 2 

27.下列程序运行的结果为:

public class test {

  public static void main(String args[]) { 

    int i;

    float  f = 2.3f;

    double d = 2.7;

    i = ((int)Math.ceil(f)) * ((int)Math.round(d)); 

    System.out.println(i);

  }

}

A. 4       B. 5       C.  6    D. 6.1     E. 9 

28.如果以下条件成立,则用到java.lang.Math 类中哪个方法?

method( -4.4 ) == -4;

A. round()    B. min()   C. trunc()    D. abs()

E. floor()    F. ceil()

29.set集合如何处理重复元素

A.如果加入一个重复元素将抛出异常

B.如果加入一个重复元素add方法将返回false

C. 集合通过调用equals方法可以返回包含重复值的元素。

D. 重复值将导致编译出错。

30.以下哪个方法是Vector类中增加一个新元素的方法。

A.addElement    B. insert    C. append   D. addItem

31. 以下哪些方法是Collection 接口的方法?

A. iterator    B. isEmpty    C. toArray    D. setText

32.对于以下声明:

String s1="hello";

       String s2="world";

       String s3;

 下面的操作合法的是(          )

 A)s3=s1+s2;    B)s3=s1-s2;    C)s3=s1&s2;    D)s3=s1&&s2;

33.下面的程序段执行后输出的结果是(  )。

     StringBuffer  buf=new  StringBuffer("Beijing2008");

     buf.insert(7,"@");

    System.out.println(buf.toString());

A、  Beijing@2008      B、  @Beijing2008    

C、  Beijing2008@      D、  Beijing#2008  

二、程序阅读题

1、阅读下面的程序:

①public class Test{

②  public static void main(String[] a){

③    int i = Integer.parseInt(a[0]);

④    switch (i) {

⑤      case 1:System.out.println("Frist season");break;

⑥      case 2:System.out.println("Second season");

⑦      case 3:System.out.println("3th season");break;

⑧      case 4:System.out.println("Last season");

⑨    }

⑩  }

11}

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 2 运行得到的输出结果是什么?

2、阅读下面的程序:

1)public class Test{

2)     public static void main(String[ ] args) {

3)        int x,y=2,i=0,j=0;

4)        if(args.length<2) System.exit(-1);

5)        x = Integer.parseInt(args[1]);

6)        switch(x){

7)            case 2:switch(y){

8)                           case 1:i++;break;

9)                           case 2:j++;break;

10)                           default:i++;j++;

11)                       }

12)            case 3:i++;j++;break;

13)            default:i++;j++;

14)        }

15)        System.out.println("i="+i);

16)        System.out.println("j="+j);

17)     }

18)}

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,用java Test 1 2 3 运行得到的运行结果是什么?

3、阅读下面的程序TestMonth.java:

public class TestMonth{

public static void main(String []args){

try{

int month=Integer.parseInt(args[0]);

if(month<0||month>12){

  throw new ArithmeticException("没有"+month+"月份!");

}

System.out.println("您输入的月份为"+month+"月份");

}catch(ArrayIndexOutOfBoundsException e){

System.out.println("请输入月份!");

}catch(ArithmeticException e){

System.out.println("捕获ArithmeticException异常");

System.out.println(e.toString());

}

}

}

已知ArrayIndexOutOfBoundsException和ArithmeticException都是java.lang.*下的异常类,编译TestMonth.java后,用java TestMonth 13的运行结果是什么?

4、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。

1)class TestString{

2)  public void stringReplace (String text) {

3)    text = text.replace('j' , 'i'); 

4)    text=text+"C";

5)  }

6)  public void bufferReplace (StringBuffer text) {

7)    text.setCharAt(0,'i');

8)    text = text.append("C"); 

9)  }

10)  public void change(char ch[]){

11)    ch[0]= 'Y';

12)  }

13)  public static void main(String args[]){

14)    String str1="java";

15)    StringBuffer str2=new StringBuffer("java");

16)    char ch[]={'j','a','v','a'}; 

17)    TestString t=new TestString();  

18)    t.change(ch);

19)    t.stringReplace (str1);   

20)    t.bufferReplace (str2);    

21)    System.out.println(str1);  

22)    System.out.println(str2.toString());                               

23)    System.out.println (new String(ch));                               

24)  }

25)}

5、阅读下面的程序代码,判断18~27行(带划线部分)各语句编译是否通过,如果编译通过,直接写出该行的打印结果。

1.class TestString{

2.public static String stringReplace (String text) {

3.      text = text.replace('j' , 'i'); 

4.      text=text+"C";

5.      return text; 

6. }

7. public static StringBuffer bufferReplace (StringBuffer text) {

8.       text.setCharAt(0,'i');

9.       text = text.append("C"); 

10.       return text;

11. }

12.public static void main(String args[]){

13.String str1="java";

14.String str2="java";

15.String str3="j"+"a"+"v"+"a";

16.String str4=new String("java");

17.StringBuffer str5=new StringBuffer("java");

18.System.out.println(str1= =str2);                                        

19.System.out.println(str2= =str3);                                        

20.System.out.println(str2= =str4);                                        

21.System.out.println(str4= =str5);                                     

22.System.out.println(str3.equals(str4));                                    

23.System.out.println(str4.equals(str5));                                    

24.System.out.println (stringReplace (str1));                                 

25.System.out.println(bufferReplace (str5));                                 

26.     System.out.println (str1);                                             

27.     System.out.println(str5);                                             

28.}

29.}

6、阅读下面的程序,修改程序中编译错误的地方(提示:共五处错误)

interface Shape{

    double PI;

    public double area( );

    public double perimeter( );

    

}

class Cycle extends Shape{

    private double r;

    public Cycle(double r){

        this.r=r;

    }

    double area( ){

        System.out.println(PI*r*r);

    }

}

public class Test{

    public static void main(String args[]){

        Cycle c=new Cycle(1.5);

        System.out.println("面积为:"+c.area());

    }

}


三、简答题

1、对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

解析:String类型是实际工作中经常使用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类。所以String类型的对象可以使用new创建,例如String name=new String(“ETC”);为变量name进行赋值,值为“ETC”。然而,String类比起其他类有些特殊,可以使用“=”直接赋值,如String name=“ETC”,也是为变量name进行赋值,值为“ETC”。这两种赋值方式是有差别的,使用new赋值,永远都是创建一个新对象,在新的内存空间初始化了字符串的值;而使用“=”赋值,不会每次都初始化新的字符串,而是从一个“字符串实例池”中去查找有没有要赋值的字符串,如有则直接引用;如不存在,则初始化一个字符串,并放入“字符串实例池”。在实际编程中,往往使用“=”好对String类型变量进行赋值。

参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。

2、什么叫引用类型,引用类型和基本数据类型有什么区别?

解析:初级程序员常常对float和Float或者double和Double感到混淆。在Java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,API中定义了八个类,能把这些基本类型转换成引用类型,分别是Byte、Short、Int、Long、Double、Character、Boolean。这八个类被统称为包装器类。JDK5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it++;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依**行了类似 it= new Integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。

参考答案:包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。

3、String类和StringBuffer类有什么区别?

解析:初级程序员常常对float和Float或者double和Double感到混淆。在Java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,API中定义了八个类,能把这些基本类型转换成引用类型,分别是Byte、Short、Int、Long、Double、Character、Boolean。这八个类被统称为包装器类。JDK5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it++;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依**行了类似 it= new Integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。

参考答案:包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。

4、包装器类型包括哪些类,有什么作用?

解析:初级程序员常常对float和Float或者double和Double感到混淆。在Java语言中,有八中基本数据类型,即byte、int、long、float、double、char、boolean。对应这八种基本数据类型,API中定义了八个类,能把这些基本类型转换成引用类型,分别是Byte、Short、Int、Long、Double、Character、Boolean。这八个类被统称为包装器类。JDK5之后,包装器类和基本数据类型之间可以直接转换,称为自动的装箱拆箱(boxing/unboxing)。例如integer it=3;it++;虽然写法上可以像使用基本数据类型一样使用包装器类型,但是本质上依**行了类似 it= new Integer(3)的转换,因此,不要轻易使用包装器类的自动装箱拆箱,以优化的性能。能够使用基本类型就使用基本类型。

参考答案:包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。

5、使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组打印出数组中的元素。

解析:增强for循环是JDK5增加的特性,可以方便地遍历数组或集合。程序员需要了解的是,如果JDK版本低于5.0,则不支持这个功能。另外,并不是说有了增强for循环后,传统的for循环就不被使用,增强for循环只能用来方便地遍历数组和集合,其他情况下还要使用传统的for循环。

参考答案:

      String[] sArray = new String[5];

For(String s:sArray){

  System.out.println(s);

}

6、Object类有什么特点?

解析:Object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个Java类,不管是API中定义的,还是自定义的类,都直接或间接的继承了Object类。所以,如果有一个方法f(Object o),那么可以传递给这个方法任意一个类的对象,包括%%%%。因为所有对象都可以说是Object类型。

参考答案:Object类是多有类的直接或间接的父类。

7、Object类中的equals方法和hashCode 方法。

解析:在Object类中,equals方法比较对象的引用值,也就是只有物理上是同一对象的两个引用,在使用equals方法返回true。hashCode方法返回一个对象的内在地址的十六进制值。由于Object类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作Set,Map对象时集合元素类的equals方法和hashCode方法非常必要,因为Set和Map判断元素是否重%%%是依靠这两个方法进行。一般的原则是:如果存在X和Y两个对象,调用X.equals(Y)相同时,那么调用hashCode方法返回值也应该相同;如果X.equals(Y)返回false时,那么调用hashCode方法返回值可能相同,也可能不同。值得注意的是,只要你覆盖了equals方法,一定%%%则覆盖hashCode 方法。在实际工作中,很多IDE环境都支持覆盖equals和hashCode 方法。

参考答案:Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。

8、请画出Java集合框架的主要接口和类的继承关系。

解析:集合是非常重要的类型, 也是企业考察员工编程能力时常常关注的知识点。程序员应该熟悉Java集合框架的主要继承关系, 掌握常用集合类的用法和特点




9、Collection接口和Map接口分别定义了什么集合类型?有什么区别?


10、Date和Calender类有什么区别和联系?

解析:应用开发中经常需要对日期进行处理。Java语言中与日期有关的类包括Date和Calender,程序员应该熟悉这两个类。

参考答案:Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,Calender类中就定义了这样一系列方法。往往可以先创建一个Date实例,然后通过Calender中的setTime方法将该实例关联到Calender,接下来就可以使用Calender中的方法处理Date实例中的信息。

11、DateFormart类有什么作用?用简单代码展示其使用方法

解析:DateFormat类是和日期格式相关的类,当需要将日期按照一定格式显示时,应该考虑使用DateFormat类,程序员对这样常用的类都应该熟练使用。

参考答案:DateFormat是一个用来对日期和时间类型进行格式转换的类,该类是一个抽象类,定义了日期时间格式化的通用方法。例如:

DateFormat format1=Dateformat.getInstance();

System.out.println(format1.format(new Date()));

12.SimpleDateFormat类有什么作用? 用简单代码展示其使用方法。

解析:SimpleDateFormat类是DateFormat类的子类,能够灵活定义日期显示格式,对于程序员来说,想要能够灵活定义日期格式,必须熟悉API中定义的字符模式。

参考答案:SimpleDateFormat类是DateFormat类的子类,可以非常灵活地定义日期显示格式,例如:

SimpleDateFormat sdf1=new SimpleDateFormat(“yyyy年MM月dd日hh时mm分ss秒EE”,Locale.CHINA);

System.out.println(sdf1.format(new date()));


13、什么是自动装箱/拆箱?使用该特征有哪些注意事项? 

解析:自动装箱/拆箱指的是八个包装器类与八个基本类型的转换问题。然而。这个特征却需要谨慎使用,因为虽然表面上看起来非常方便,而实质上依然需要创建对象、进行转换等操作,使用不恰当会降低性能。 

参考答案:自动装箱指的是可以直接将基本数据类型转换为包装器类型,自动拆箱指的是可以直接将包装器类型转换为基本数据类型,如下代码所示:

int  m=100;

Integer  im=m;

int  n=im; 

上诉代码中,直接将m赋值给包装器对象im,这就是自动装箱,然后直接将im赋值给基本数据类型n,这就是自动拆箱。虽然表面上看代码简洁方便,然而本质上装箱时候依然使用new创建了对象,而拆箱时也依然调用了方法进行运算。因此,不要在没有必要的时候,频繁使用装箱拆箱,会降低性能。  

14、int  和  Integer  有什么区别?

答:Java  提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是 java 的原始数据类型,Integer是java 为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类,booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDouble

引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为  null,而原始类型实例变量的缺省值与它们的类型有关