Jvm fundamentals

Click here to load reader

  • date post

  • Category


  • view

  • download


Embed Size (px)


Basic slides about some of the news

Transcript of Jvm fundamentals

  • 1.Java Fundamentals

2. Java 7: Project CoinImproved exception handlingStrings as switch selectorsDiamond syntaxTWR (Try With Resource)Some more . . . 3. Java 7: NIO.2Easy handling of files ,file systemsand permissionsNew file visitor interface to traversefilesystemsWatch servicesThe most important one: asynchronousI/O: Futures style and callback style 4. Dependency Injection 5. Quick introInversion of Control and DependencyInjectionJSR-330Some examples 6. Modern Concurrency 7. Basic Concepts (to becompleted)SafetyLivenessPerformanceReusability 8. Building blocks (I)Atomic classLocksCountdownLatchConcurrent HashMapCopyOnWriteArrayList 9. Building blocks (II)QueuesBlocking queuesTransferQueues (added in Java 7)Thread executorsFutures 10. ForkJoin frameworkMaximize processing capabilitiesSubtasks communicating each otherMap-Reduce (divide and conquer)SplitCollect 11. Classfiles andbytecode 12. ClassloadingLoadingReading the classfileLinkingVerificationPreparationResolutiou 13. ClassloadersBootstrap classloaderUsually native codeExtension classloaderStandard extensionsApplication classloaderApplication classes 14. Method handlesNew API for invoking methodsWhat is a MethodHandle?Comparative exampleWhy choose them?Full access to all methods (context)Typesafe at runtime. No extrapermgen 15. Understanding classfiles Binary blobs Hard to work with it directly A quick intro to javap Examining classfiles 16. A quick look to bytecode Intermediate representation Output from javac (not highly optimized) JIT compiler will optimize it! 17. A quick look to bytecode Runtime environment Stack based Overview of the opcodes: structure Name Args Stack Layout Description 18. A quick look to bytecode Load/Store opcodes Arithmetic opcodes Control execution opcodes Invocation opcodes Platform operations 19. A quick look to bytecode To be completed with . . . New invokedynamic bytecode 20. Coming soon . . . 21. Coming soon . . . Understanding performance Polyglot programming Alternative JVM languages Unit testing, TDD, CI More on modern concurrency Actors, STM