Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bench;
- import org.openjdk.jmh.annotations.Benchmark;
- import java.lang.ref.PhantomReference;
- import java.lang.ref.ReferenceQueue;
- public class Finalizer {
- @Benchmark
- public Object plain() {
- return new Plain();
- }
- @Benchmark
- public Object finalizable() {
- return new Finalizable();
- }
- @Benchmark
- public Object phantom() {
- return new Phantom();
- }
- static class Plain {
- }
- static class Finalizable {
- @Override
- protected void finalize() throws Throwable {
- super.finalize();
- }
- }
- static class Phantom {
- static final ReferenceQueue<Phantom> QUEUE = new ReferenceQueue<>();
- public Phantom() {
- new PhantomReference<>(this, QUEUE);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement