Heinz likes to compare reflection to opium. Not the perfume. The drug. In this live coding session, he will start by showing some of the powerful features available to us in Java. We can dynamically create new classes, call methods, change fields, even if they are private and final. You will see some things done that you would not believe possible. We will then have a look at how dynamic proxies work in Java, starting with a virtual proxy and then showing how a composite pattern could be implemented with proxies. Of course we will use some of the new Java 8 syntax. Everything will be live coding, with no slides at all.