https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison
Shows complete examples where the Kotlin code is compiled to bytecode and decompiled to Java
https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison
comparison java kotlin kotlin-vs-java
Last synced: about 1 year ago
JSON representation
Shows complete examples where the Kotlin code is compiled to bytecode and decompiled to Java
- Host: GitHub
- URL: https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison
- Owner: tomasbjerre
- License: apache-2.0
- Created: 2018-08-20T05:37:12.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-09-28T07:11:02.000Z (almost 7 years ago)
- Last Synced: 2025-03-26T13:45:32.056Z (over 1 year ago)
- Topics: comparison, java, kotlin, kotlin-vs-java
- Language: Java
- Homepage:
- Size: 1.57 MB
- Stars: 18
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Yet Another Kotlin VS Java Comparison
This one shows complete examples where the Kotlin code is compiled to bytecode and decompiled to Java. Enabling a person familiar with Java to very quickly understand Kotlin.
## Examples
The examples are organized like the examples in the [Kotlin Reference](https://kotlinlang.org/docs/reference/).
## Basics
* **Control Flow**
* [Assign From If](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/basics/controliiiflow/p01assigniiifromiiiif.md)
* [Assign If Not Null](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/basics/controliiiflow/p02assigniiiifiiinotiiinull.md)
* [When](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/basics/controliiiflow/p02when.md)
* **Returns Jumps**
* [Loop Labels](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/basics/returnsiiijumps/p01loopiiilabels.md)
* [Return To Label](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/basics/returnsiiijumps/p02returniiitoiiilabel.md)
## Classes And Objects
* **Classes And Inheritance**
* [Empty Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p01emptyiiiclass.md)
* [Constructor Param](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p02constructoriiiparam.md)
* [Init Order Demo](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p03initiiiorderiiidemo.md)
* [Constructor To Attribute](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p04constructoriiitoiiiattribute.md)
* [Init From Constructor](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p05initiiifromiiiconstructor.md)
* [Constructor With Annotation](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p06constructoriiiwithiiiannotation.md)
* [Secondary Constructor](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p07secondaryiiiconstructor.md)
* [Default Values](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p08defaultiiivalues.md)
* [Instantiation](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p09instantiation.md)
* [Open Closed Data Object](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p10openiiiclosediiidataiiiobject.md)
* [Inheritance](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p11inheritance.md)
* [Inheritance No Primary Constructor](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p12inheritanceiiinoiiiprimaryiiiconstructor.md)
* [Override Method](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p13overrideiiimethod.md)
* [Derived Class Initialization Order](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p14derivediiiclassiiiinitializationiiiorder.md)
* [Inner Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p15inneriiiclass.md)
* [Overriding Rules](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/classesiiiandiiiinheritance/p16overridingiiirules.md)
* **Data Classes**
* [Class Body And Constructor](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/dataiiiclasses/p01classiiibodyiiiandiiiconstructor.md)
* [Copy](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/dataiiiclasses/p02copy.md)
* [Destructing](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/dataiiiclasses/p03destructing.md)
* [Data](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/dataiiiclasses/p10data.md)
* **Generics**
* [Out Parameter](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/generics/p01outiiiparameter.md)
* [In Parameter](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/generics/p02iniiiparameter.md)
* [Copy Out Parameter](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/generics/p03copyiiioutiiiparameter.md)
* **Nested Classes**
* [Nested Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/nestediiiclasses/p01nestediiiclass.md)
* [Inner Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/nestediiiclasses/p02inneriiiclass.md)
* [Anonymous Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/nestediiiclasses/p03anonymousiiiclass.md)
* **Objects**
* [Object](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/objects/p01object.md)
* [Companion And Jvmstatic](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/objects/p02companioniiiandiiijvmstatic.md)
* **Properties**
* [Properties And Fields](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/properties/p01propertiesiiiandiiifields.md)
* [Setter With Annotation](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/properties/p02setteriiiwithiiiannotation.md)
* [Var And Val](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/properties/p03variiiandiiival.md)
* [Lateinit](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/properties/p04lateinit.md)
* **Sealed Classes**
* [Sealed Class](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/sealediiiclasses/p01sealediiiclass.md)
* [Not Sealed](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/classesiiiandiiiobjects/sealediiiclasses/p02notiiisealed.md)
## Functions And Lambdas
* **Functions**
* [Tail Recursive](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/functionsiiiandiiilambdas/functions/p01tailiiirecursive.md)
* [Single Expression](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/functionsiiiandiiilambdas/functions/p02singleiiiexpression.md)
* [Infix](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/functionsiiiandiiilambdas/functions/p03infix.md)
## Mixed
* **Extensions**
* [Extending Standard Library](https://github.com/tomasbjerre/yet-another-kotlin-vs-java-comparison/blob/master/doc/mixed/extensions/p01extendingiiistandardiiilibrary.md)