`
westlifesz
  • 浏览: 118282 次
社区版块
存档分类
最新评论

一个简单的java测试题

阅读更多

  今天做了一份看似简单的java测试题,但。。。看来java基础知识还是很重要,要加强。 第9题还要编译测试下,第10题可参考下sevlet线程安全研究文章。

<o:p></o:p>

<o:p></o:p>

1.   <o:p></o:p>

Consider the following code. Please list which lines below will not compile. (choose all that apply)

 <o:p></o:p>

  1. public class acd {
  2.     public static void main(String arg[])
  3.     {

      4.        Object obj1 =   new Object();

      5.        char c       =   3;

      6.         short    s    =       41;

      7.         byte b     =   41;

      8.         s    =   b*b;

      9.         Double      d       =     new Double(4.12f);

    10.        Float        f     = new Double(2.33);

    11.        d  =    obj1;

    12.        Float []ff     =   new Float[5];

     13.       float  f1      =    ff[0];

     14.       obj1 = ff;

     15.      obj1   = ff[5];

     16.     }

17. }

 <o:p></o:p>

8,10,11

另一类似题: 

Which of the following statements are legal?
  A. long l = 4990;
  B. int i = <st1:chmetcnv w:st="on" tcsc="0" unitname="l" sourcevalue="4" negative="False" numbertype="1" hasspace="False">4L</st1:chmetcnv>;
  C. float f = 1.1;
  D. double d = 34.4;
  E. double t = <st1:chmetcnv w:st="on" tcsc="0" unitname="F" sourcevalue=".9" negative="False" numbertype="1" hasspace="False">0.9F</st1:chmetcnv>.

  题目:下面的哪些声明是合法的。
   
答案: (ade)
  此题的考点是数字的表示法和基本数据类型的类型自动转换,没有小数点的数字被认为是int型数,带有小数点的数被认为是double型的数,其它的使用在数字后面加一个字母表示数据类型,加l或者Llong型,加d或者Ddouble,加f或者Ffloat可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将int,short,byte赋值给long型时不需要显式的类型转换,反之,将long型数赋值给byte,short,int型时需要强制转换(int a=(int)<st1:chmetcnv w:st="on" tcsc="0" unitname="l" sourcevalue="123" negative="False" numbertype="1" hasspace="False">123L</st1:chmetcnv>;)。<o:p></o:p>

 

      

2.   <o:p></o:p>

Consider the source code of the following class UIDTest

1.         class UIDTest

2.         {

3.           long testing (float a, float b) {return 0;}

4.   

5.    }

 <o:p></o:p>

Which one of the following methods would be legal, at line 4 in class UIDTest. (choose all that apply)

 <o:p></o:p>

  1. String testing (float a, float b){ return “acd”;}
  2. long testing (float a, float b, int i ) { return 0;}
  3. long testing (float a, float b ) throws Exception { return ‘0’;}
  4. float testing (float a, int b ) { return 0.01;}
  5. double testing (float a, int b, int c ) { return 1e10;}

a,b,d,e

答案是 b ,e

方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int long,floatdouble就不能作为唯一的类型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和c++中不同,c++中返回类型必须一致)。<o:p></o:p>

 <o:p></o:p>

3.   <o:p></o:p>

True or False: In the code fragment below, line 4 is executed.

  1. String s1 = “UID”
  2. String s2 = “UID”
  3. if(s1 == s2)
  4.   System.out.println(“ UID is printed”);

 <o:p></o:p>

A. True

B.  False

B

答案应该是A。参考一类似题:

String s= "hello";
  String t = "hello";
  char c[] = {'h','e','l','l','o'} ;
  Which return true?
  A. s.equals(t);
  B. t.equals(c);
  C. s==t;
  D. t.equals(new String("hello"));
  E. t==c.

  题目:哪些返回true
   
答案: (acd)
  这个在前面第10题的equals()方法和==操作符的讨论中论述过。==操作符比较的是操作符两端的操作数是否是同一个对象,而Stringequals()方法比较的是两个String对象的内容是否一样,其参数是一个String对象时才有可能返回true,其它对象都返回假。需要指出的是由于st并非使用new创建的,他们指向内存池中的同一个字符串常量,因此其地址实际上是相同的(这个可以从反编译一个简单的测试程序的结果得到,限于篇幅不列出测试代码和反编译的分析),因此答案c也是正确的。

      

4.   <o:p></o:p>

Given a string constructed by calling s = new String(“Hung”), which of the call listed below modify the string? (choose all that apply)

  1. s. append(“xxx”);
  2. s.trim();
  3. s.substring(3)
  4. s.replace(‘z’.’a’);
  5. s.concat(s);
  6. Non of the above

F<o:p></o:p>

 <o:p></o:p>

5.   <o:p></o:p>

Which would be the most suitable for storing data elements that must not appear in the store more than once, if searching is not a priority? 

  1. java.util.Collection
  2. java.util.List
  3. java.util.Set
  4. java.util.Map
  5. java.util.Vector
  6. java.util.HashSet

C,F<o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

6.   <o:p></o:p>

Which one of the following statements is true? (choose all that apply)

  1. Transient methods may not be overridden.
  2. Transient classes may not be serialized.
  3. Transient variables must be static.
  4. Transient variables are not serialized.

 <o:p></o:p>

D

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

7.   <o:p></o:p>

Consider the source code of the following source code, which is in UIDTest.java

 <o:p></o:p>

1.        class Test

2.        {

3.               long result (float a, float b) {return 0;}

4.        }

 <o:p></o:p>

5.        public class UIDTest extends Test

6.        {

7.                 <o:p></o:p>

8.        }

 <o:p></o:p>

Which of the following method would be legal (individual), at line 7.  (choose all that apply)

 <o:p></o:p>

  1. public long result (float a, float b) {return 0;}
  2. public long result (float a, float b) throws Exception {return 0;}
  3. public long result (float a, float b, int c) {return 0;}
  4. public long result (float a, float b, int c) throw Exception {return 0;}
  5. public String result2 (float a, float b) throw Exception {return "0";}
  6. public  String  result2(float a, float b) {return "0"; }

a,b,c,d,e,f     

惭愧,上面答案b是错误的,重写的方法比父类的方法抛出更多的异常了! 注:java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。

  另一类似题:

      public class Parent {
  public int addValue( int a, int b) {
  int s;
  s = a+b;
  return s;
  }
  }
  class Child extends Parent {
  }
  Which methods can be added into class Child?
  A. int addValue( int a, int b ){// do something...}
  B. public void addValue (){// do something...}
  C. public int addValue( int a ){// do something...}
  D. public int addValue( int a, int b )throws MyException {//do something...}
  题目:哪些方法可以加入类Child中。
   
答案: (bc)
  此题涉及方法重载(overload),方法重写(override)以及类派生时方法重写的规则。方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int long,floatdouble就不能作为唯一的类型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和c++中不同,c++中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。

分享到:
评论
1 楼 wxf0701 2008-08-13  
个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int 和long,float和double就不能作为唯一的类型不同????
class Test{
public int addValue( int a, int b){ return 3; }
public int addValue(int a, long b){return 5;}
}

相关推荐

    测试题 Java测试题

    Java测试题 用于检测学习效果的一个小测验!

    JAVA第一阶段基础测试题,java变量,运算符,分支,循环测试题.pdf

    JAVA基础知识点总结 本资源总结了 JAVA 基础知识点,涵盖变量、运算符、分支结构、循环结构和...通过本资源的学习和实践,初学者可以对 JAVA 基础知识有一个系统的了解和掌握,提高自己的编程能力和解决问题的能力。

    2019年Java程序设计教程测试题及答案-测试题一.rar

    2019年Java程序设计教程测试题及答案-测试题一.rar 2019年Java程序设计教程测试题及答案-测试题一.rar 2019年Java程序设计教程测试题及答案-测试题一.rar 2019年Java程序设计教程测试题及答案-测试题一.rar 2019年...

    java测试题

    "Java测试题"可能包含了一系列针对Java语言核心概念、语法、数据结构、异常处理、多线程、集合框架、IO流、网络编程以及单元测试等方面的题目。 Java测试通常分为以下几个关键部分: 1. **基本概念**:这包括了解...

    Java 技能测试题

    Java 技能测试题主要涵盖了三个核心领域:线程、Socket和I/O以及算法和数据库操作。这些知识点在Java编程中至关重要,对于软件工程师的角色尤其重要。以下是对这些知识点的详细解释: 1. **线程**: 线程是程序中...

    JAVA基础测试题(含答案)

    这个压缩包中的"JAVA基础测试题答案.doc"文档将为学习者提供即时反馈,帮助他们理解错误并改进。同时,"编程题"可能是实践性的编程任务,要求直接编写代码,以加深对理论知识的理解。 总之,掌握这些Java基础知识...

    java测试题(内含java测试题)

    在Java测试题中,我们通常会遇到各种类型的题目,旨在检验开发者对语言特性的理解和应用能力。以下是一些可能涉及的知识点: 1. **数组的构造与初始化**: - 在Java中,数组是固定大小的内存块,用于存储相同类型...

    java测试题java测试题.doc

    Java测试题 本资源主要测试了Java语言的基础知识和编程能力,涵盖了Java的基本概念、面向对象编程、异常处理、线程编程、Java应用程序和Applet程序的开发等方面。 一、填空题 1. Java源文件的扩展名为.java,而...

    北大高科java测试题

    北大高科的Java测试题通常涵盖了Java基础、面向对象编程、集合框架、异常处理、多线程、输入/输出(I/O)、网络编程、数据库连接以及JVM原理等多个方面。以下是对这些知识点的详细解读: 1. **Java基础**:这包括基本...

    北大青鸟Y2Java结业测试题 包含源码

    这是一份针对北大青鸟Y2阶段Java学员的结业测试题,它旨在检验学员在学习完这一阶段课程后对Java编程语言的理解程度和应用能力。这份测试题不仅包含了一系列问题,还附带了源代码,便于学员在解答过程中参考和学习。...

    JAVA的内部测试题

    Java测试题通常涵盖以下几个核心知识点: 1. **基础语法**:包括变量声明、数据类型、运算符、流程控制(如if-else、switch、for、while循环)、方法定义与调用等。 2. **类与对象**:Java是一种面向对象的语言,...

    《java程序设计》期中考试测试题 含答案.doc

    本文档提供了一个全面的 Java 程序设计考试测试题,涵盖了 Java 基础知识点,可以帮助学习者快速了解 Java 语言的基本概念和编程技术。 知识点: 1. Java 源程序编译后的文件扩展名是.class。 2. Java 中的合法...

    java测试题 Word版

    在Java测试题中,通常会涵盖以下几个核心领域: 1. **基础语法**:包括变量、数据类型、运算符、流程控制(如if语句、switch语句、循环)、方法定义和调用等。理解这些基础知识是编写Java代码的基础。 2. **类与...

    Java阶段测试题+答案(英文)

    Java阶段测试题+答案 Java阶段测试题+答案是Java语言的测试题和答案,涵盖了Java的多个方面,包括变量、数据类型、运算符、控制结构、方法、数组、对象等。下面是对测试题的解释和答案。 1. 关于变量和数据类型 ...

    一个好玩的java测试题源代码

    一款好玩的java测试代码,本人新手请高手不吝赐教。

Global site tag (gtag.js) - Google Analytics