一:对象实例化问题:
public class Rectangle {
public int width = 3;
public int height = 4;
public int area() {
return width * height;
}
}
则如下代码输出结果为:
Rectangle rectangle;
rectangle.height = 5;
System.out.println(rectangle.area());
A.15
B.有编译错误,程序不能运行
C.12
D.0
D、rectangle没有被初始化,因此报错。
Rectangle rectangle=new Rectangle()
二:类型转换问题
如下赋值语句中,有语法错误的是?
A.float f1 = 1.2;
B.float f1 = 1.2f
C.float f1 = 1;
D.float f1 = 0xAE;
注意double类型可以不加后缀,所以小数不加上f后缀,则默认为double类型,若不是强制转换则编译不通过。
三:switch语句
对于Java1.7及之后版本,如下不能用于switch的类型是:
A.String
B.int
C.char
D.double
double和float是不精确的数值,不用于判断,但是String类型可以在1.7后使用
![](https://img2018.cnblogs.com/blog/1309518/201812/1309518-20181228152335085-1146819878.png)
四:赋值问题
如下赋值语句,有编译错误的是?
A.byte b = -127;
B.int i = (byte)512;
C.byte b = 129;
D.byte b = -0;
byte b = (byte) 129; 需要强制转,且结果是-2.
五:编译问题:
Java有“一次编译,到处运行”的说法,此种说法中编译的结果是:
A.机器码
B.符号表
C.字节码
D.中间代码
class文件,即为字节码(bytecode)文件。
六:main函数:
下列关于main方法的描述中,错误的是?
A.main方法是Java程序的入口
B.main方法格式为
public static void main(String[] args) {
//Your code here
}
C.B选项中所描述格式中形参args不能更改,如果将args改为arguments则不能编译通过
D.main方法可以被重载
形参名字可以随意更改,形参类型不可以更改,必须是String[].
main方法可以被重载。可以在类中写一个同名函数,参数等不一致,是重载,符合要求
![](https://img2018.cnblogs.com/blog/1309518/201812/1309518-20181228153043394-460843959.png)
七:构造函数问题(重点)
Given the following class
class MyNumber
{
private int num = 5;
public MyNumber(int num) { this.num = num; }
public int getNum() { return num; }
public void setNum(int num) { this.num = num; }
}
What is output after the executation of following code?
MyNumber obj1 = new MyNumber();
MyNumber obj2 = new MyNumber(10);
obj2 = obj1;
obj2.setNum(20);
System.out.println(obj1.getNum() + “,” + obj2.getNum());
A.5, 20
B.5, 10
C.20,20
D.编译错误
MyNumber有一个带形参的构造函数,编译器不会自动添加无参的构造函数。因此在创建obj1的时候,MyNumber obj1 = new MyNumber();,找不到相应的构造函数,报错。
八:对象赋值问题
Given the following class:
class Mixer {
Mixer() { }
Mixer(Mixer m) { m1 = m; }
Mixer m1; //注意m2.m1虽然没有被被赋值,但是由于在类中定义,所有有初值null
public static void main(String[] args) {
Mixer m2 = new Mixer();
Mixer m3 = new Mixer(m2); m3.go();
Mixer m4 = m3.m1; m4.go();
Mixer m5 = m2.m1; m5.go(); //m2中m1未被赋值,为null,调用方法会报错
}
void go() { System.out.print("hi "); }
}
A.Compilation fails
B.hi hi hi
C.hi hi, followed by an exception
D.hi, followed by an exception