什么是Java的序列化
就是将一个对象保存到一个文件,可以通过流的方式进行传输,可以将文件内容的读取,转化为一个对象,序列化是为了解决对象流在进行读写操作的时候的引发的问题,
对象流就是将对象进行流化,流化后的对象可以在网络之间进行传输,可以对流化后的对象进行读写操作。
一个".java"源文件中是否可以包括多个类?有什么限制
就是一个java文件里可以写多个类,但是只有一个public修饰的类,如下
1 2 3 4 5 6 7 |
|
final类有什么特点:类不能再被继承,常量不能再被改变
继承的时候父类的构造方法总是先被调用的
1、序列化是干什么的?
简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
2、什么情况下需要序列化
a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
打印前一天的 时间
public void date(){
Calendar calendar=Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
System.out.println(calendar.getTime());
}
winson_张林说:
最大的区别在于内存。
静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,
所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。
静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快,
而且静态内存是有限制的,太多了程序会启动不了。
抽象类和接口的区别:
接口可以被多重继承,implements抽象类只能被单一继承,extends,接口只有定义,抽象类只有定义和实现,接口的默认字段是public static final,抽象类是本包可见的。
当功能需要类积时候用抽象类,当功能不需要累积的时候用接口。