Java3000问~第1问

1. 静态方法内调用一个非静态成员为什么是非法的?

答:由于静态方法可以不通过对象进行调用,因此在静态方法里面不能调用其他非静态变量,也不可以访问非静态变量成员。

2. 一个类的构造方法有什么用?

答:完成对类对象的初始化工作

3. 构造方法有哪些特性?

答:

  • 名字与类名相同
  • 没有返回值,但不能用void声明构造函数
  • 生成类对象时自动执行,不需调用

4. ==与equals()区别?

答:==:它的作用是判断俩个对象的地址是否相等。
equals(): 他的作用是判断俩个对象是否相等。

5. 序列化?

答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。即将对象转化为二进制,用于保存,或者网络传输。

  • 静态变量不会被序列化( static,transient)
  • 当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口。
  • 当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化。

6. 序列化中如果有些字段不想进行序列化,这么做?

答:对于不想进行序列化的变量,使用transient关键字修饰。
transient关键字的作用的是:阻止实例中那些关键字修饰的变量序列化;当对象被反序列化时,被transient修饰的变量值不会被持久化和回复。transient关键字只能修饰变量,不能修饰类和方法。

猜你喜欢

转载自blog.csdn.net/qq_40247570/article/details/124631680