Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ch.claude_martin.java8.security;
- public class Troll {
- volatile static Troll trash;
- private final String msg;
- public Troll(final byte[] bytes) {
- this.msg = new String(bytes);
- }
- @Override
- public String toString() {
- return this.msg;
- }
- @Override
- protected void finalize() throws Throwable {
- System.out.println("finalizing the object " + hashCode());
- trash = this; // Don't mind me putting the reference there...
- };
- public static void main(final String[] args) throws InterruptedException {
- try {
- Troll troll = new Troll(new byte[] { 85, 32, 109, 97, 100, 63 });
- System.out.println("hash=" + troll.hashCode());
- troll = null; // This hints the GC that "troll" can be collected
- } catch (final Exception e) {
- }
- while (trash == null) {
- System.gc(); // hint to run gc
- Thread.sleep(100);
- System.runFinalization(); // hint to run finalization
- Thread.sleep(100);
- }
- System.out.println(trash);
- System.out.println("hash=" + trash.hashCode());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement