1.2 Data Abstraction
笔记:
在Java中任何一个非原始类型的值都是对象,包括数组。
当数组作为参数传递给方法,或者放在赋值语句的右边进行赋值时,都是创建并使用该数组引用的一个副本。
assert是一条在程序开发中验证代码运行情况的布尔表达式。如果表达式是false,则程序运行终止,并报告一条错误信息。assert默认是没有启动的,可以在命令行下使用 -enableassertions标志启动。assert仅在调试过程中使用。
Java中没有真正的不可变类,如果使用反射,你可以访问任何类的private变量并进行改变。
- 反转字符串的递归实现
private static String reverseString(String s) {
int n = s.length();
if (n <= 1) {
return s;
}
String a = s.substring(0, n / 2);
String b = s.substring(n / 2, n);
return reverseString(b) + reverseString(a);
}
- 求最小公约数-欧几里德算法
private static int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
- 算数中如果两个数相乘可能会导致溢出,可以先计算除法。