ArrayList list = new ArrayList(20);中的list扩充几次
(1)ArrayList()构造一个初始容量为 10 的空列表。
(2)ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
(3)ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。
调用的是第三个构造函数,直接初始化为大小为20的list,没有扩容
1、String s = "abc"
创建了一个对象;
2、 那么 String a="abc" ; String b="abc" 创建了几个对象呢??
答案还是一个;
3、那么 String s = "ab"+"cd"; 呢???
3个
4、String s = new String("xyz");
创建了几个
String Object?
二者之间有什么区别?
两个对象。一个是"xyz",为缓冲区对象。另一个是new出来的String对象。
5、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。
s = s + " world!";相当于: (JDK 1.5以上版本)
s = new StringBuilder(String.valueOf(s)).append(" world!").toString();
1.final修饰变量,则等同于常量
2.final修饰方法中的参数,称为最终参数。
3.final修饰类,则类不能被继承
4.final修饰方法,则方法不能被重写。
final 不能修饰抽象类
final修饰的方法可以被重载 但不能被重写
构造方法可以被重载,一个构造方法可以通过this关键字调用另一个构造方法,this语句必须位于构造方法的第一行;
重载:方法的重载(overload):重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。
重载:方法的重载(overload):重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。
构造方法不能被重写