~/talk

Disassembling and Decompiling Scala Code

Talkat Scala Days Copenhagen 2017 · 2017-05-30..06-02· [ruby]
links:none on file
slides:none on file

Disassembles .class files with javap and a JD decompiler and shows concrete surprises: Scala emits a big @ScalaSignature byte array, case classes create companion $ classes that bloat permgen, default parameters become public static helper methods, and lazies compile to a volatile boolean plus a synchronized double‑check and a private compute method (thread‑safe). Demonstrates type erasure to Object for primitive-typed traits, shows tail-recursion converted to loop/break, and uses scalac -print and compiler phases to explain why mixed Java/Scala APIs can introduce runtime vs compile-time tradeoffs.

AI-written summary · about

  1. 0:00Intro
  2. 1:07Motivation
  3. 3:27Tools
  4. 4:09Hello World
  5. 6:44Case Class
  6. 9:21Defaults via javap
  7. 10:27Profiler Lessons
  8. 12:44Decompiled Java Bean
  9. 13:57Companions
  10. 14:46Decompiled Generics
  11. 18:01Decompiled WorkerClConfig
  12. 23:00Decompiler Lessons
  13. 24:05scalac -Xprint:YYY Foo.scala
  14. 25:19Future Examples
  15. 26:37Architecture
  16. 27:36References
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.