Java习题二.docx

上传人:b****7 文档编号:9644768 上传时间:2023-02-05 格式:DOCX 页数:17 大小:19.30KB
下载 相关 举报
Java习题二.docx_第1页
第1页 / 共17页
Java习题二.docx_第2页
第2页 / 共17页
Java习题二.docx_第3页
第3页 / 共17页
Java习题二.docx_第4页
第4页 / 共17页
Java习题二.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java习题二.docx

《Java习题二.docx》由会员分享,可在线阅读,更多相关《Java习题二.docx(17页珍藏版)》请在冰豆网上搜索。

Java习题二.docx

Java习题二

1.指出下列程序的运行结果

publicclassExample

{

  Stringstr=newString("good");

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

  publicstaticvoidmain(Stringargs[])

{

    Exampleex=newExample();

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

    System.out.print(ex.str+"and");

    Sytem.out.print(ex.ch);

  }

  publicvoidchange(Stringstr,charch[])

{

    str="testok";

    ch[0]='g';

  }

}

传值和传地址

①goodandabc

②goodandgbc

③testokandabc

④testokandgbc

2.给出下面代码:

静态数组,arr

publicclassPerson

{

  staticintarr[]=newint[10];

  publicstaticvoidmain(Stringa[])

  {

   System.out.println(arr[1]);

  }

}

哪个语句是正确的?

①编译时将产生错误;

②编译时正确,运行时将产生错误;

③输出零;

④输出空。

3.下列哪些语句关于内存回收的说明是正确的?

①程序员必须创建一个线程来释放内存;

②内存回收程序负责释放无用内存

③内存回收程序允许程序员直接释放内存

④内存回收程序可以在指定的时间释放内存对象

4.1)publicvoidmodify(){

2)intI,j,k;

3)I=100;

4)while(I>0){

5)j=I*2;

6)System.out.println("Thevalueofjis"+j);

7)k=k+1;

8)I--;

9)}

10)}

①line4

②line6

③line7局部变量必须初始化,成员变量不需初始化,数组不需初始化

④line8

5.指出下列哪些方法与方法publicvoidadd(inta){}为合理的重载方法。

①publicintadd(inta)

②publicvoidadd(longa)

③publicvoidadd(inta,intb)

④publicvoidadd(floata)

6.给出下面代码段

  1)publicclassTest{

  2)intm,n;

  3)publicTest(){}

  4)publicTest(inta){m=a;}

  5)publicstaticvoidmain(Stringarg[]){

  6)Testt1,t2;

  7)intj,k;

8)j=0;k=0;

  9)t1=newTest();

  10)t2=newTest(j,k);

  11)}

  12)}

  哪行将引起一个编译时错误?

1ine3

2line5

3line6

4line10

7.main()方法的返回类型是:

①int

②void

③Boolean

④static

8.System类在哪个包中?

1java.util

2java.io

3java.awt

4java.lang

9.给出下面代码:

publicclassTest

{

   staticinta[]=newa[10];

publicstaticvoidmain(Stringargs[])

{

    System.out.println(a[10]);

   }

  }

那个选项是正确的?

①译时将产生错误;

②编译时正确,运行时将产生错误;

③输出零;

④输出空。

10.Strings="hello";

  Stringt="hello";

  charc[]={'h','e','l','l','o'};

下列哪些表达式返回true?

1s.equals(t);t

2t.equals(c);f

3s==t;t

4t.equals(newString("hello"));t

11.下述哪些说法是正确的?

1实例变量是类的成员变量

2实例变量是用static关键字声明的

3方法变量在方法执行时创建

4方法变量在使用之前必须初始化(见test24.java)

12.Strings=newString("xyz");创建了几个StringObject?

1个

13.int和Integer有什么区别?

14.Java有没有goto?

是关键字吗?

15.用最有效率的方法算出2乘以8等於几?

2<<3

16.a=null和a.length()=0有什么区别?

17.publicclassSomething

{

  voiddoSomething()

{

      privateStrings="";方法变量没有访问权限

      intl=s.length();

  }

}

有错吗?

若有,错在哪里?

18.publicclassSomething

{

publicstaticvoidmain(String[]args)

{

Somethings=newSomething();

System.out.println("s.doSomething()returns"+doSomething());或者创建实例再调用,或者改成static方法

}

publicstaticStringdoSomething()

{

return"Dosomething...";

}

}

有错吗?

若有,错在哪里?

19. 此处,Something类的文件名叫OtherThing.java

classSomething

{编译没错,执行有错

private改成publicstaticvoidmain(String[]something_to_do)

{

System.out.println("Dosomething...");

}

}

有错吗?

若有,错在哪里?

20.classTest

{

publicstaticvoidmain(String[]args)

{

Strings=newString("Hello");

Stringss=method(s);

System.out.println(ss);

}

publicstaticStringmethod(Strings)

{

s+="world";没有返回值

}

}

程序返回的结果是什么?

21.classCompare

{

publicstaticvoidmain(String[]args)

{

Stringstr1=newString("abc");

Stringstr2=newString("abc");

Stringstr3=str1;

Stringstr4=”bcd”;

Stringstr5=”bcd”;

if(str1==str2)

{

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

}

else

{

System.out.println("str1!

=str2");

}

if(str1==str3)

{

System.out.println("str1==str3");

}

else

{

System.out.println("str1!

=str3");

}

if(str4==str5)

{

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

}

else

{

System.out.println("str4!

=str5");

}

if(str1.equals(str2))

{

System.out.println("str1equalstr2");

}

else

{

System.out.println("str1notequalstr2");

}

if(str1.equals(str3))

{

System.out.println("str1equalstr3");

}

else

{

System.out.println("str1notequalstr3");

}

}

}

程序的运行结果是什么?

23.给出下面的代码片断

1)publicvoidcreate(){

2)VectormyVect;

3)myVect=newVector();

4)}

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

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

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

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

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

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

创建对象就是分配空间么?

不是

24.给出下面的不完整的类代码

classPerson

{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

publicPerson(Stringn,inta){name=n;age=a;}

publicPerson(Stringn,Stringd,inta){

//doingthesameastwoargumentsversionofconstructor

//includingassignmentname=n,age=a

department=d;

}

}

下面的哪些表达式可以加到构造方法中的"doingthesameas..."处?

1Person(n,a);

2this(Person(n,a));

3this(n,a);

4this(name,age).

25.下面关于变量及其范围的陈述哪些是对的?

1实例变量是类的成员变量。

2实例变量用关键字static声明。

3在方法中定义的局部变量在该方法被执行时创建。

4局部变量在使用前必须被初始化。

26.给出下面的代码:

1)publicvoidmodify(){

2)inti,j,k;

3)i=100;

4)while(i>0){

5)j=i*2;

6)System.out.println("Thevalueofjis"+j);

7)k=k+1;

8)i--;

9)}

10)}

哪些行在编译时可能产生错误。

1line4

2line6

3line7

4line8

27.下面有关变量及其作用域的陈述哪些是对的?

1在方法里面定义的局部变量在方法退出的时候被撤销。

2局部变量也叫自动变量。

3在方法外面定义的变量(实例变量)在对象被构造时创建。

4在方法中定义的方法的参变量只要该对象被需要就一直存在。

28.类的设计要求它的某个成员变量不能被外部类直接访问。

应该使用下面的哪些修饰符获得需要的访问控制?

1public

2nomodifier

3protected

4private

29.下面有关java代码安全性的叙述哪些是对的?

1字节码校验器加载查询执行需要的所有类。

2运行时解释器执行代码。

3在运行时,字节码被加载,验证然后在解释器里面运行。

4类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。

SL275中描述的Java程序运行的过程是这样的:

类加载器(classloader)加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性,这可以限制任何的特洛伊木马程序,因为本机类总是先被加载,一旦所有的类被加载完,执行文件的内存划分就固定了,在这个时候特定的内存地址被分配给对应的符号引用,查找表(lookuotable)也被建立,由于内存划分发生在运行时,解释器在受限制的代码区增加保护防止未授权的访问;然后字节码校验器(bytecodeverifier)进行校验,主要执行下面的检查:

类符合JVM规范的类文件格式,没有违反访问限制,代码没有造成堆栈的上溢或者下溢,所有操作代码的参数类型都是正确的,没有非法的数据类型转换(例如将整型数转换成对象类型)发生;校验通过的字节码被解释器(interpreter)执行,解释器在必要时通过运行时系统执行对底层硬件的合适调用。

后三个答案是SL275中的原话。

30.给出下面的代码

publicclassPerson{

staticintarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1];)

}

}

1编译时将发生错误。

2编译时正确但是运行时出错。

3输出为0。

4输出为null

31.给出下面的代码

publicclassPerson

{

doubled1;

publicstaticvoidmain(String[]args)

{

floatf1=0.2f;

System.out.println(f1);

System.out.println(f2);

}

}

有错吗?

若有,错在哪里?

32.给出下面的代码

classPerson

{

privateStringname;

Privateintage;

voidprivate去掉Person(Stringname,intage)

{

this.name=name;

this.age=age;

}

voidgetInfo()

{

System.out.println(“Iamchinese”);

}

}

classTestPerson

{

publicstaticvoidmain(String[]args)

{

Personp1=newPerson();

P1.getInfo();

Personp2=newPerson(“张三”,21);

System.out.println(p2.name);

}

}

有错吗?

若有,错在哪里?

34.classStaticCode

{

staticStringcountry;

static

{

country="China";

System.out.println("StaticCodeisloading");

}

}

classTestStaticCode

{

static

{

System.out.println("TestStaticCodeisloading");

}

publicstaticvoidmain(String[]args)

{

System.out.println("beginexecutingmainmethod");

newStaticCode();

newStaticCode();

}

}

TestStaticCodeisloading

beginexecutingmainmethod

StaticCodeisloading

程序是否有错?

若有,错在哪里,若没有,程序执行的结果是什么?

为什么?

35.classOuter

{

privateintsize=10;

publicclassInner

{

publicvoiddoStuff()

{

System.out.println(++size);

}

}

}

classTestInner

{

publicstaticvoidmain(String[]args)

{

Outerouter=newOuter();

Outer.Innerinner=newouter.Inner();

//outer.newInner()

inner.doStuff();

}

}

程序是否有错?

若有,错在哪里?

36.classInOut

{

Stringstr=newString("Between);

publicvoidamethod(finalintiArgs)

{

intabc=8;

classBicycle

{

publicvoidsayHello()

{

System.out.println(str);

System.out.println(iArgs);

System.out.println(abc);方法中定义的内部类只能访问方法的final变量

}

}//EndofBicycleclass

}//Endofamethod

}//EndofInOutclass

程序是否有错?

若有,错在哪里,若没有,程序执行的结果是什么?

为什么?

37.编写一个Java程序,定义一个表示学生的类Student,包括成员变量“学号”、“班级”、“姓名”、“性别”、“年龄”;方法“获得学号”、“获得班级”、“获得性别”、“获得姓名”、“获得年龄”和“修改年龄”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1