在Java中,只有基本类型(primitive types)不是对象,如 int, char, boolean。
Object obj;
obj = new String(); //ok
obj = new int[10]; //ok| Modifier | Class | Package | Out Subclass | Other | Total |
|---|---|---|---|---|---|
private |
Y | N | N | N | 1 |
default |
Y | Y | N | N | 2 |
protected |
Y | Y | Y | N | 3 |
public |
Y | Y | Y | Y | 4 |
Type[] array = new Type[size]; //size大小
ArrayList<Type> = new ArrayList<>(); //动态增长
// In ArrayList<Type>, 'Type' can't be primitive types将 Type[] 替换成 ArrayList<Type> 要注意的变化:
- 不必指出数组的大小
- 使用
add将任意多的元素添加到数组中 - 使用
size()替代length计算元素的数目 - 使用
a.get(i)替代a[i]访问元素
包装器类(Integer, Long, Float, Double, Short, Byte, Character, Boolean)的对象是不可变的,一旦被构建,包装器里的值就不能被改变。
//this method won't work
public void triple (Integer i) {
Integer j = i;
System.out.println(i == j); //true
i = 3 * i; //i -> a new wrapper
System.out.println(i == j); //false
}public static double max(double... values) {
double largest = Double.NEGATIVE_INFINITY;
for (double v : values) {
if (v > largest) {
largest = v;
}
}
return largest;
}