1.Java是值传递还是引用传递?
我直接答案:值传递
在, java中不会影响调用它的方法的参数。
值传递(pass by value):在调用函数时,将实际参数复制一份传递到函数中,这样在函数中对参数进行修改,就不会影响到原来的实际参数;
引用传递(pass by reference):在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数;
我的理解这传递就是定义的实际参数在调用结束后不会变,引用就是在调用函数后,定义的实际参数会在调用后改变。
举两个例子,
1.值传递:
public class Test {
public static void main(String[] args) {
// 基本数据类型
int i = 10;
zzz(i);
System.out.println("i = " + i);
}
public static void zzz(int ccc) {
ccc = 20;
System.out.println("ccc = " + ccc);
}
}
结果:
ccc = 20
i = 10
2.引用传递:
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
yyy(arr);
System.out.println("yyy以后arr的第一个值="+arr[0]);
}
public static void yyy(int[] array) {
System.out.println("arr第一个值="+ array[0]);
array[0] = 0;
}
结果:
arr第一个值=1
yyy以后arr的第一个值=0
2.JUnit
JUnit 是一个编写可重复测试的简单框架。它是单元测试框架的 xUnit 架构的一个实例。
1.编写一个单元测试用例。
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JunitDemo1 {
@Test
public void myFirstTest() {
assertEquals(1 + 1, 2);
}
}
@Test 用来注释一个普通的方法为一条测试用例。
assertEquals() 方法用于断言两个值是否相关。
所以这个用例就是测试1+1是不是等于2.如果相等,那么测试的就是对的,如果错的,就会报错。