Java3000问~第1问
1. 静态方法内调用一个非静态成员为什么是非法的?
答:由于静态方法可以不通过对象进行调用,因此在静态方法里面不能调用其他非静态变量,也不可以访问非静态变量成员。
2. 一个类的构造方法有什么用?
答:完成对类对象的初始化工作
3. 构造方法有哪些特性?
答:
- 名字与类名相同
- 没有返回值,但不能用void声明构造函数
- 生成类对象时自动执行,不需调用
4. ==与equals()区别?
答:==:它的作用是判断俩个对象的地址是否相等。
equals(): 他的作用是判断俩个对象是否相等。
5. 序列化?
答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。即将对象转化为二进制,用于保存,或者网络传输。
- 静态变量不会被序列化( static,transient)
- 当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口。
- 当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化。
6. 序列化中如果有些字段不想进行序列化,这么做?
答:对于不想进行序列化的变量,使用transient关键字修饰。
transient关键字的作用的是:阻止实例中那些关键字修饰的变量序列化;当对象被反序列化时,被transient修饰的变量值不会被持久化和回复。transient关键字只能修饰变量,不能修饰类和方法。