Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Créateur d’applications mobiles #TECHTALK TechTalk gratuits et ouverts au public au sein de nos locaux ! N’hésitez pas à vous inscrire aux prochaines sessions sur notre site: ripplemotion-services.fr #TECHTALK TechTalk sous forme de courtes formations le mercredi de 17h à 18h ! Échange entre vous et nos spécialistes en développement mobile RMS TECHTALK ANIMÉ PAR : OLIVIER TABONE Co-fondateur / Directeur [email protected] 06 83 01 05 76 A few words about JAVA’S FINAL KEYWORD RMS TechTalk #2 - 19.10.2016 TechTalk #2 - 19.10.2016 OLIVIER TABONE Co-fondateur / Directeur A FEW WORDS ABOUT Java’s Final Keyword 6 THE FINAL KEYWORD TechTalk #2 - 19.10.2016 Provide a form of immutability to the Java language. So what ? OLIVIER TABONE Co-fondateur / Directeur Enforce immutability at compile time So what ? Programming errors are prevented by the compiler A FEW WORDS ABOUT Java’s Final Keyword So what ? Less crash in the application So I write better code if I use the final keyword ? Yes! 7 TechTalk #2 - 19.10.2016 THE FINAL KEYWORD (The bad) OLIVIER TABONE Co-fondateur / Directeur Applies to class, members, variables and methods Semantics varies ! A FEW WORDS ABOUT Java’s Final Keyword Benefits varies ! Performance varies ! 8 TechTalk #2 - 19.10.2016 FINAL VARIABLES use when required The variable must be assigned once and only once. OLIVIER TABONE Co-fondateur / Directeur A FEW WORDS ABOUT Java’s Final Keyword Immutable value semantics for raw types (long, int, …) As java has no immutability for reference types, this is kind of useless. No performance benefits (on Dalvik + ART/AOT + ART/JIT) ‣ Use when required = Anonymous inner class definition ‣ Use when variable’s scope is large and you want to prevent a reassignment by mistake 9 TechTalk #2 - 19.10.2016 FINAL MEMBERS private final static OLIVIER TABONE Co-fondateur / Directeur Use to define constants. Constants are immutable, right ? A FEW WORDS ABOUT Java’s Final Keyword 10 TechTalk #2 - 19.10.2016 FINAL MEMBERS private final OLIVIER TABONE Co-fondateur / Directeur Provide atomicity for object creation. Object is wether fully created or not. A FEW WORDS ABOUT Java’s Final Keyword a class with only final immutable members is immutable ! 11 TechTalk #2 - 19.10.2016 OLIVIER TABONE Co-fondateur / Directeur FINAL MEMBERS Use as much as possible *, immutability is good design. * can’t be used in Activity and Fragment subclasses :-( A FEW WORDS ABOUT Java’s Final Keyword no performance benefits 12 TechTalk #2 - 19.10.2016 FINAL CLASS Designed for inheritance or not OLIVIER TABONE Co-fondateur / Directeur A FEW WORDS ABOUT Java’s Final Keyword Classes are designed to be inherited or not to be inherited. If you don’t know, your class is not designed to be inherited. using the “final class” modifier indicates your class is not designed to be inherited. final class should be the default 13 TechTalk #2 - 19.10.2016 FINAL CLASS Do not design for inheritance OLIVIER TABONE Co-fondateur / Directeur A FEW WORDS ABOUT Java’s Final Keyword Inheritance is hard Inheritance is fragile Inheritance takes time Inheritance will make you sad Design for Inheritance is the exception. final class is the norm. 14 TechTalk #2 - 19.10.2016 FINAL CLASS Provide some performance gains OLIVIER TABONE Co-fondateur / Directeur A FEW WORDS ABOUT Java’s Final Keyword Performance benefits with ART/AOT (Android 6) No performance benefits for other virtual machines : Dalvik (Android < 6) Hotspot (Desktop) ART/JIT (Android 7) 15 TechTalk #2 - 19.10.2016 TAKE AWAYS DO use final keyword… OLIVIER TABONE Co-fondateur / Directeur …for classes to restrict inheritance …for members so that objects are fully initialized …for static member so that constants are immutable A FEW WORDS ABOUT Java’s Final Keyword DONT use final keyword… …for variable (unless required) …invoking a performance gain 16 Merci de votre participation ! OLIVIER TABONE Co-fondateur / Directeur [email protected] 06 83 01 05 76 Créateur d’applications mobiles