Java回收机制
- 在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行。
- 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法, 并且在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存(《java 编程思想》)
- 在C++中,对象的内存在哪个时刻被回收,是可以确定的,在C++中,析构函数和资源的释放息息相关,能不能正确处理析构函数,关乎能否正确回收对象内存资源。
- 在java中,对象的内存在哪个时刻回收,取决于垃圾回收器何时运行,在java中,所有的对象,包括对象中包含的其他对象,它们所占的内存的回收都依靠垃圾回收器,因此不需要一个函数如C++析构函数那样来做必要的垃圾回收工作。当然存在本地方法时需要finalize()方法来清理本地对象。在《java编程思想》中提及,finalize()方法的一个作用是用来回收“本地方法”中的本地对象
默认RMI采用的是什么通信协议?
TCP/IP
RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的对象来获取远程数据。
实现接口的方法
接口方法默认是public abstract的,且实现该接口的类中对应的方法的可见性不能小于接口方法的可见性,因此也只能是public的。
复制数组最有效率的方法
- System.arraycopy():native方法+JVM手写函数,在JVM里预写好速度最快
- clone():native方法,但并未手写,需要JNI转换,速度其次
- Arrays.copyof():本质是调用1的方法
- for():全是深复制,并且不是封装方法,最慢
数组长度是不能动态调整的
在Java中,“普通”数组是固定大小的。您必须给它们一个尺寸,并且不能扩展或收缩它们。