Maison > Questions et réponses > le corps du texte
我们知道Object基类有如下的方法:
问题一:
为什么唯独clone方法,在源码中要定义成protected呢?其他定义成public的呢?
问题二:
finalize()这个方法好像在项目中很少被用到,但是它能够被定义到基类当中,说明其重要性是很高的,那么这个具体如何使用?在什么情况下,必须使用,非用不可呢??
// 对象相关
getClass()
clone() - protected
toString()
equals(Object)
hashCode()
// 线程相关
notify()
notifyAll()
wait([long[, int]])
// GC相关
finalize()
大家讲道理2017-04-18 09:36:52
Parce que la méthode clone
doit d'abord implémenter l'interface Cloneable
puis réécrire la méthode clone().
public class Test01 implements Cloneable{
}
Si vous avez une expérience en programmation de niveau relativement faible (comme le langage C), vous pouvez accorder plus d'attention à la libération de mémoire, puis à la libération de ressources, etc. L’application et la publication doivent se produire par paires. Cependant, en raison de la machine virtuelle Java, il existe un mécanisme de récupération de place et vous n'avez peut-être jamais prêté attention au problème de libération de mémoire. En fait, vous n’avez pas vraiment besoin d’y prêter attention.
Donc, alors que beaucoup de gens connaissent 构造函数
, ils oublient le 析构函数
correspondant. (Comme mentionné ci-dessus, Java libérera automatiquement de la mémoire.)
Mais : java
libère la mémoire demandée par java
.
Si vous utilisez Java pour appeler l'API C, C++ ou Windows, cela s'appelle en fait JNI(Java Native Interface)
Java ne peut pas libérer automatiquement la mémoire appliquée ici, vous devrez donc peut-être utiliser finalize
Version parallèle.
Pour faire simple, cela fonctionne comme un destructeur.