Lab 01 Assignment

Question 01

运行时截图

Question 02

基本类型 默认值 基本类型 默认值
byte 0 boolean false
short 0 char null
int 0 float 0.0
long 0 double 0.0

相关代码见\solution\Question 2目录下的q2.java

Question 03

结果截图

相关代码见\solution\Question 3目录下的FindMinMax.java

Question 04

程序输出截图如下

1
2
3
4
public static void main(String[] args) {
boolean b = test1(0) && test2(2) && test3(2);
print("b is " + b);
}

首先调用test1 test1(0)的返回值为true

然后调用test2 test2(2)的返回值为false

由于test2(2)返回值为false 所以 &&后连接的test3(2)不会再执行

b的值为false 输出b is false

Question 05

  1. 源文件名为:Student.java

  2. 生成两个字节码,分别为Exam Student

  3. 执行java Student 错误提示:

    ​ 在类 Student 中找不到 main 方法, 请将main方法定义为: public static void main(String[] args)

  4. 执行java exam 错误提示:

    ​ 找不到或无法加载主类 exam

  5. 执行java Exam.class 错误提示:

    ​ 找不到或无法加载主类 Exam.class

  6. 执行java Exam 输出结果:

    ​ I am studying Java.

Question 06

运行结果

相关代码见\solution\Question 6目录下的TwoDimensionArray.java

Question 07

  • 结果:Jeep好好
  • i=1时 执行case 1 因为case 1没有break语句,在输出J后继续进入case 2中输出e,之后遇到break退出switch
  • i=2时 执行case 2 输出e,之后遇到break退出switch
  • i=3时 执行case 3 输出p,再执行default输出
  • i=4时 执行default输出

Question 08

运行结果

相关代码见\solution\Question 8目录下的q8.java

Question 09

相关代码见\solution\Question 9目录下的q9.java

Question 10

  1. 输出内容

    1. p1x, y 坐标: 1111, 2222
    2. p2x, y 坐标: -100, -200
    3. p1x, y 坐标: 0, 0
    4. p2x, y 坐标: 0, 0
  2. 浅拷贝与深拷贝

    1. 浅拷贝:对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的引用类型成员变量
    2. 深拷贝:深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性在内存中生成一个新的对象
  3. 确保进行的是深拷贝

    1. 实现Cloneable接口并重写clone()方法。
    2. clone()方法中,对引用类型的变量手动进行深拷贝。
  4. 解释String==equals() 的区别

    1. ==是比较两个对象的地址是否相同。
    2. equals()是比较两个对象的内容是否相同。

Question 11

测试截图

  1. 可变参数实现机制

    基于数组实现:当使用可变参数的时候,实际上是先创建了一个数组,该数组的大小就是可变参数的个数,然后将参数放入数组当中,再将数组传递给被调用的方法

  2. 调用 strscat(new String[]{"a", "b"}) 能通过编译吗,为什么?

    可以。变长参数在编译为字节码后,在方法签名中就是以数组形态出现的。

  3. 静态方法 String strscat(String[] args) 同时存在

    不能编译

  4. 声明的是 String strscat(String[] args)

    不能通过编译

Question 12

运行结果

相关代码见\solution\Question 12目录下的BigNumberAddition.java

Question 13

相关代码见\solution\Question 13目录下的Buyer.javaCook.javatest.java