Basic Java Programming总结
1.在Java中,产生一个对象的时候,最终是否一定会调用该类中的构造方法?
不一定。当反序列化创建对象时就不会调用构造方法
注意:需要了解反序列化知识点。
99%的情况产生对象时调用构造器,而有1%的情况就是反序列化创建对象,无需调用构造器。
2.基本数据类型和引用数据类型的核心区别。
基本数据类型变量直接存储在栈上;引用数据类型变量,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
注意:存储位置的差异是它们的核心差异。
3.以下代码运行是否有错,如果没有报错,结果是什么?如果报错应该怎么改?
package exam;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
person.add(new Person());
person.add(new Person());
person.add(new Person());
person.add(new Person());
FileOutputStream fos = new FileOutputStream("src/obj.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(persons);
oos.flush();
oos.close();
System.out.println("保存成功");
}
class Person{
}
}