116、下列语句那一个正确()
A、java程序经编译后会产生machine code
B、java程序经编译后会产生 byte code
C、java程序经编译后会产生DLL
D、以上都不正确
答案:B
分析:java程序编译后会生成字节码文件,就是.class文件
117、下列说法正确的有()
A、class中的constructor不可省略
B、constructor必须与class同名,但方法不能与class同名
C、constructor在一个对象被new时执行
D、一个class只能定义一个constructor
答案:C
118、下列哪一种叙述是正确的()
A、abstract修饰符可修饰字段、方法和类
B、抽象方法的body部分必须用一对大括号{}包住
C、声明抽象方法,大括号可有可无
D、声明抽象方法不可写出大括号
答案:D
分析: abstract不能修饰字段。既然是抽象方法,当然是没有实现的方法,根本就没有body部分。
119、下列语句正确的是()
A、形式参数可被视为local variable
B、形式参数可被字段修饰符修饰
C、形式参数为方法被调用时,真正被传递的参数
D、形式参数不可以是对象
答案:A
分析:
- A:形式参数可被视为local variable。形参和局部变量一样都不能离开方法。都只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。
- B:对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误。但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改。 不过一般情况下,一个方法的形参不用final修饰。只有在特殊情况下,那就是:方法内部类。 一个方法内的内部类如果使用了这个方法的参数或者局部变量的话,这个参数或局部变量应该是final。
- C:形参的值在调用时根据调用者更改,实参则用自身的值更改形参的值(指针、引用皆在此列),也就是说真正被传递的是实参。
- D:方法的参数列表指定要传递给方法什么样的信息,采用的都是对象的形式。因此,在参数列表中必须指定每个所传递对象的类型及名字。想JAVA中任何传递对象的场合一样,这里传递的实际上也是引用,并且引用的类型必须正确。--《Thinking in JAVA》
120、成员变量用static修饰和不用static修饰有什么区别?
1、两个变量的生命周期不同。
成员变量随着对象的创建而存在,随着对象的被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2、调用方式不同。
成员变量只能被对象调用。
类名调用 :Person.country
3、别名不同。
成员变量也称为实例变量。
静态变量称为类变量。
4、数据存储位置不同。
成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。