JAVA核心技术I---JAVA基础知识(回顾)

时间:2022-04-11 20:03:07

一:对象实例化问题:

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后使用

JAVA核心技术I---JAVA基础知识(回顾)

四:赋值问题

如下赋值语句,有编译错误的是?

A.byte b = -127;

B.int i = (byte)512;

C.byte b = 129;

D.byte b = -0; 
byte b = (byte) 129; 需要强制转,且结果是-2.
byte类型-127~128

五:编译问题:

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方法可以被重载。可以在类中写一个同名函数,参数等不一致,是重载,符合要求

JAVA核心技术I---JAVA基础知识(回顾)

七:构造函数问题(重点)

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