回答編集履歴
2
ちょっと文言修正
test
CHANGED
@@ -174,4 +174,4 @@
|
|
174
174
|
|
175
175
|
|
176
176
|
|
177
|
-
Java
|
177
|
+
Javaで同等の機能を見つけようとしたのですが、普通のAPIにはないようです。"java.bsae/jdk.internal"(内部用のAPI、通常は隠しになっていて、ドキュメントもない)にあるものも一通り見てみましたが、なさそうでした。もしどうしてもしたいなら、C等でnative実装するしかないと思います。(オブジェクトのID取得に使われる`System#identityHashCode(Object)`も直接native実装で、内部APIを使っているわけではなかったです。ただ、これはHashCode用にカスタマイズされていると思われるため、単純にメモリ番地を取ってきているとかではないかも知れません。)場合によっては、JVMのコードを書き換える必要もあるかも知れませんが、幸い、OpenJDKならオープンソースで、誰でも自由に閲覧して改変して(ライセンスに従って)配付できますので、IDでオブジェクト再利用が可能なオリジナルOpenJDKを作ってくれることを楽しみに待っています(私は作りませんし、使いませんが)。
|
1
過去形
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
ファイナライザでthisを別の所に参照させた場合、何処にも参照されていな
|
1
|
+
ファイナライザでthisを別の所に参照させた場合、何処にも参照されて**いなかった**状態でも、GC回収のタイミングで参照が作られせて、再利用できるようにすることはできるようです。(ただし、`finalize()`はJava 9からdeprecatedですので、使用しない方が良いです。)
|
2
2
|
|
3
3
|
|
4
4
|
|