Lab01
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 | public static void main(String[] args) { |
首先调用test1 test1(0)的返回值为true
然后调用test2 test2(2)的返回值为false
由于test2(2)返回值为false 所以 &&后连接的test3(2)不会再执行
b的值为false 输出b is false
Question 05
-
源文件名为:
Student.java -
生成两个字节码,分别为
ExamStudent -
执行
java Student错误提示: 在类
Student中找不到main方法, 请将main方法定义为:public static void main(String[] args) -
执行
java exam错误提示: 找不到或无法加载主类 exam
-
执行
java Exam.class错误提示: 找不到或无法加载主类 Exam.class
-
执行
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退出switchi=2时 执行case 2输出e,之后遇到break退出switchi=3时 执行case 3输出p,再执行default输出好i=4时 执行default输出好
Question 08
运行结果
相关代码见\solution\Question 8目录下的q8.java。
Question 09
相关代码见\solution\Question 9目录下的q9.java。
Question 10
-
输出内容
p1的x,y坐标:1111, 2222p2的x,y坐标:-100, -200p1的x,y坐标:0, 0p2的x,y坐标:0, 0
-
浅拷贝与深拷贝
- 浅拷贝:对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的引用类型成员变量。
- 深拷贝:深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性在内存中生成一个新的对象。
-
确保进行的是深拷贝
- 实现
Cloneable接口并重写clone()方法。 - 在
clone()方法中,对引用类型的变量手动进行深拷贝。
- 实现
-
解释
String的==和equals()的区别==是比较两个对象的地址是否相同。equals()是比较两个对象的内容是否相同。
Question 11
测试截图
-
可变参数实现机制
基于数组实现:当使用可变参数的时候,实际上是先创建了一个数组,该数组的大小就是可变参数的个数,然后将参数放入数组当中,再将数组传递给被调用的方法。
-
调用
strscat(new String[]{"a", "b"})能通过编译吗,为什么?可以。变长参数在编译为字节码后,在方法签名中就是以数组形态出现的。
-
静态方法
String strscat(String[] args)同时存在不能编译
-
声明的是
String strscat(String[] args)不能通过编译
Question 12
运行结果
相关代码见\solution\Question 12目录下的BigNumberAddition.java。
Question 13
相关代码见\solution\Question 13目录下的Buyer.java和Cook.java和test.java。














