SlideShare uma empresa Scribd logo
1 de 15
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3; 10: areturn Stack var value 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value 1 value depth 2 1 this 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0  1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value objectref 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value objectref 1 value depth 2 1 this 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 this 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3;//incValue 10: areturn Stack var value objectref 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8; 4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 X 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;// Integer.intValue:() 4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 1 3 2 X 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;  9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 X + 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd 6: invokestatic #7;  9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7;//Integer.valueOf 9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1  7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7; 9: areturn 5 1 6 2 3
Local Variables public java.lang.Object execute();   0: aload_0    1: invokespecial #2;   4: astore_1    5: aload_0    6: aload_1    7: invokespecial #3;  10: areturn Stack var value 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1  1: invokevirtual #8;  4: iconst_1  5: iadd  6: invokestatic #7; 9: areturn 5 1 6 2 3

Mais conteúdo relacionado

Mais procurados

Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testingVisual Engineering
 
Javascript Testing with Jasmine 101
Javascript Testing with Jasmine 101Javascript Testing with Jasmine 101
Javascript Testing with Jasmine 101Roy Yu
 
Dependency Injection with CDI in 15 minutes
Dependency Injection with CDI in 15 minutesDependency Injection with CDI in 15 minutes
Dependency Injection with CDI in 15 minutesAntonio Goncalves
 
Building Maintainable Applications in Apex
Building Maintainable Applications in ApexBuilding Maintainable Applications in Apex
Building Maintainable Applications in ApexJeffrey Kemp
 
Thoughts On Learning A New Programming Language
Thoughts On Learning A New Programming LanguageThoughts On Learning A New Programming Language
Thoughts On Learning A New Programming LanguagePatricia Aas
 
Voxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with JavassistVoxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with JavassistAnton Arhipov
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptRyan Anklam
 
Zen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsZen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsJay Shirley
 
Testing Against AWS APIs Go
Testing Against AWS APIs GoTesting Against AWS APIs Go
Testing Against AWS APIs GoStephen Scaffidi
 
The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)Patricia Aas
 
Testing Javascript with Jasmine
Testing Javascript with JasmineTesting Javascript with Jasmine
Testing Javascript with JasmineTim Tyrrell
 
First glance at Akka 2.0
First glance at Akka 2.0First glance at Akka 2.0
First glance at Akka 2.0Vasil Remeniuk
 
Introduction to CDI and DI in Java EE 6
Introduction to CDI and DI in Java EE 6Introduction to CDI and DI in Java EE 6
Introduction to CDI and DI in Java EE 6Ray Ploski
 
Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Tracy Lee
 
The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)Patricia Aas
 

Mais procurados (20)

Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
 
Javascript Testing with Jasmine 101
Javascript Testing with Jasmine 101Javascript Testing with Jasmine 101
Javascript Testing with Jasmine 101
 
Dependency Injection with CDI in 15 minutes
Dependency Injection with CDI in 15 minutesDependency Injection with CDI in 15 minutes
Dependency Injection with CDI in 15 minutes
 
Building Maintainable Applications in Apex
Building Maintainable Applications in ApexBuilding Maintainable Applications in Apex
Building Maintainable Applications in Apex
 
Thoughts On Learning A New Programming Language
Thoughts On Learning A New Programming LanguageThoughts On Learning A New Programming Language
Thoughts On Learning A New Programming Language
 
Voxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with JavassistVoxxed Days Vilnius 2015 - Having fun with Javassist
Voxxed Days Vilnius 2015 - Having fun with Javassist
 
Stop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScriptStop Making Excuses and Start Testing Your JavaScript
Stop Making Excuses and Start Testing Your JavaScript
 
Celery
CeleryCelery
Celery
 
Side effects-con-redux
Side effects-con-reduxSide effects-con-redux
Side effects-con-redux
 
Zen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsZen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst Applications
 
Testing Against AWS APIs Go
Testing Against AWS APIs GoTesting Against AWS APIs Go
Testing Against AWS APIs Go
 
Rails is not just Ruby
Rails is not just RubyRails is not just Ruby
Rails is not just Ruby
 
The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)The Anatomy of an Exploit (CPPP 2019)
The Anatomy of an Exploit (CPPP 2019)
 
Testing Javascript with Jasmine
Testing Javascript with JasmineTesting Javascript with Jasmine
Testing Javascript with Jasmine
 
First glance at Akka 2.0
First glance at Akka 2.0First glance at Akka 2.0
First glance at Akka 2.0
 
Introduction to CDI and DI in Java EE 6
Introduction to CDI and DI in Java EE 6Introduction to CDI and DI in Java EE 6
Introduction to CDI and DI in Java EE 6
 
Excellent
ExcellentExcellent
Excellent
 
Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018Reactive programming with RxJS - ByteConf 2018
Reactive programming with RxJS - ByteConf 2018
 
The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)The Anatomy of an Exploit (NDC TechTown 2019)
The Anatomy of an Exploit (NDC TechTown 2019)
 
RSpec
RSpecRSpec
RSpec
 

Semelhante a Java Bytecode: Passing Parameters

Java Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvJava Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvAnton Arhipov
 
Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)Davide Cerbo
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentalsdenis Udod
 
Soundreader.classpathSoundreader.project Soundre.docx
Soundreader.classpathSoundreader.project  Soundre.docxSoundreader.classpathSoundreader.project  Soundre.docx
Soundreader.classpathSoundreader.project Soundre.docxwhitneyleman54422
 
Всеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsВсеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsYandex
 
Using Reflections and Automatic Code Generation
Using Reflections and Automatic Code GenerationUsing Reflections and Automatic Code Generation
Using Reflections and Automatic Code GenerationIvan Dolgushin
 
Mastering Java Bytecode With ASM - 33rd degree, 2012
Mastering Java Bytecode With ASM - 33rd degree, 2012Mastering Java Bytecode With ASM - 33rd degree, 2012
Mastering Java Bytecode With ASM - 33rd degree, 2012Anton Arhipov
 
Don't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesDon't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesJamund Ferguson
 
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...Lucidworks
 
Scala uma poderosa linguagem para a jvm
Scala   uma poderosa linguagem para a jvmScala   uma poderosa linguagem para a jvm
Scala uma poderosa linguagem para a jvmIsaias Barroso
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of JavascriptTarek Yehia
 
Scala @ TechMeetup Edinburgh
Scala @ TechMeetup EdinburghScala @ TechMeetup Edinburgh
Scala @ TechMeetup EdinburghStuart Roebuck
 
Need Help with this Java Assignment. Program should be done in JAVA .pdf
Need Help with this Java Assignment. Program should be done in JAVA .pdfNeed Help with this Java Assignment. Program should be done in JAVA .pdf
Need Help with this Java Assignment. Program should be done in JAVA .pdfarchiesgallery
 
Project Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallProject Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallChristoph Engelbert
 
アプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_wsアプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_wsTakahiro Yoshimura
 
A topology of memory leaks on the JVM
A topology of memory leaks on the JVMA topology of memory leaks on the JVM
A topology of memory leaks on the JVMRafael Winterhalter
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Anton Arhipov
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Paris Android User Group
 

Semelhante a Java Bytecode: Passing Parameters (20)

Java Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lvJava Bytecode Fundamentals - JUG.lv
Java Bytecode Fundamentals - JUG.lv
 
Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
 
Soundreader.classpathSoundreader.project Soundre.docx
Soundreader.classpathSoundreader.project  Soundre.docxSoundreader.classpathSoundreader.project  Soundre.docx
Soundreader.classpathSoundreader.project Soundre.docx
 
Всеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.jsВсеволод Струкчинский: Node.js
Всеволод Струкчинский: Node.js
 
Using Reflections and Automatic Code Generation
Using Reflections and Automatic Code GenerationUsing Reflections and Automatic Code Generation
Using Reflections and Automatic Code Generation
 
Mastering Java Bytecode With ASM - 33rd degree, 2012
Mastering Java Bytecode With ASM - 33rd degree, 2012Mastering Java Bytecode With ASM - 33rd degree, 2012
Mastering Java Bytecode With ASM - 33rd degree, 2012
 
"this" in JavaScript
"this" in JavaScript"this" in JavaScript
"this" in JavaScript
 
Don't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesDon't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax Trees
 
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...
Distributed Search in Riak - Integrating Search in a NoSQL Database: Presente...
 
Scala uma poderosa linguagem para a jvm
Scala   uma poderosa linguagem para a jvmScala   uma poderosa linguagem para a jvm
Scala uma poderosa linguagem para a jvm
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
 
Scala @ TechMeetup Edinburgh
Scala @ TechMeetup EdinburghScala @ TechMeetup Edinburgh
Scala @ TechMeetup Edinburgh
 
Need Help with this Java Assignment. Program should be done in JAVA .pdf
Need Help with this Java Assignment. Program should be done in JAVA .pdfNeed Help with this Java Assignment. Program should be done in JAVA .pdf
Need Help with this Java Assignment. Program should be done in JAVA .pdf
 
Project Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) WallProject Panama - Beyond the (JVM) Wall
Project Panama - Beyond the (JVM) Wall
 
アプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_wsアプリを弄ってみる #1 #antama_ws
アプリを弄ってみる #1 #antama_ws
 
A topology of memory leaks on the JVM
A topology of memory leaks on the JVMA topology of memory leaks on the JVM
A topology of memory leaks on the JVM
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012
 
Scala coated JVM
Scala coated JVMScala coated JVM
Scala coated JVM
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014
 

Mais de Anton Arhipov

JavaZone 2022 - Building Kotlin DSL.pdf
JavaZone 2022 - Building Kotlin DSL.pdfJavaZone 2022 - Building Kotlin DSL.pdf
JavaZone 2022 - Building Kotlin DSL.pdfAnton Arhipov
 
TechTrain 2019 - (Не)адекватное техническое интервью
TechTrain 2019 - (Не)адекватное техническое интервьюTechTrain 2019 - (Не)адекватное техническое интервью
TechTrain 2019 - (Не)адекватное техническое интервьюAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourDevoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourAnton Arhipov
 
GeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourGeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourAnton Arhipov
 
Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersAnton Arhipov
 
GeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersGeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersAnton Arhipov
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleAnton Arhipov
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingJavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationJUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationAnton Arhipov
 
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleAnton Arhipov
 
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingJEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingAnton Arhipov
 
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistJEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistAnton Arhipov
 

Mais de Anton Arhipov (20)

JavaZone 2022 - Building Kotlin DSL.pdf
JavaZone 2022 - Building Kotlin DSL.pdfJavaZone 2022 - Building Kotlin DSL.pdf
JavaZone 2022 - Building Kotlin DSL.pdf
 
Idiomatic kotlin
Idiomatic kotlinIdiomatic kotlin
Idiomatic kotlin
 
TechTrain 2019 - (Не)адекватное техническое интервью
TechTrain 2019 - (Не)адекватное техническое интервьюTechTrain 2019 - (Не)адекватное техническое интервью
TechTrain 2019 - (Не)адекватное техническое интервью
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hourDevoxx Ukraine 2018 - Kotlin DSL in under an hour
Devoxx Ukraine 2018 - Kotlin DSL in under an hour
 
GeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hourGeeCON Prague 2018 - Kotlin DSL in under an hour
GeeCON Prague 2018 - Kotlin DSL in under an hour
 
Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainers
 
GeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainersGeeCON Prague 2017 - TestContainers
GeeCON Prague 2017 - TestContainers
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
 
JavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassleJavaOne 2017 - TestContainers: integration testing without the hassle
JavaOne 2017 - TestContainers: integration testing without the hassle
 
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloadingJavaOne 2017 - The hitchhiker’s guide to Java class reloading
JavaOne 2017 - The hitchhiker’s guide to Java class reloading
 
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloadingJavaZone 2017 - The Hitchhiker’s guide to Java class reloading
JavaZone 2017 - The Hitchhiker’s guide to Java class reloading
 
JUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentationJUG.ua 20170225 - Java bytecode instrumentation
JUG.ua 20170225 - Java bytecode instrumentation
 
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
 
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloadingJEEConf 2017 - The hitchhiker’s guide to Java class reloading
JEEConf 2017 - The hitchhiker’s guide to Java class reloading
 
JEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with JavassistJEEConf 2017 - Having fun with Javassist
JEEConf 2017 - Having fun with Javassist
 

Java Bytecode: Passing Parameters

  • 1. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 2. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value 1 value depth 2 1 this 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 3. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 4. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value objectref 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 5. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value objectref 1 value depth 2 1 this 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 6. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 this 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 7. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3;//incValue 10: areturn Stack var value objectref 1 value depth 2 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 8. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 9. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 X 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8;// Integer.intValue:() 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 10. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 1 3 2 X 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 11. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 X + 1 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 12. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7;//Integer.valueOf 9: areturn 5 objectref 1 6 2 3
  • 13. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; //incValue 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 objectref 1 6 2 3
  • 14. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value objectref 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3
  • 15. Local Variables public java.lang.Object execute(); 0: aload_0 1: invokespecial #2; 4: astore_1 5: aload_0 6: aload_1 7: invokespecial #3; 10: areturn Stack var value 1 value depth 2 1 objectref 3 2 3 private java.lang.Integer incValue(java.lang.Integer); 4 var value 0: aload_1 1: invokevirtual #8; 4: iconst_1 5: iadd 6: invokestatic #7; 9: areturn 5 1 6 2 3