Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Preface
Type inference
What is type inference?
Type inference with var
Compulsory non-null initialization
Local variables
Code check – part 1
Using var with primitive data types
Type inference with derived classes
Type inference – with interfaces
Using var with arrays
Type inference with generics
Code check – part 2
Passing inferred variables to a method
Reassigning value to inferred variables
Explicit casting with inferred variables
Assigning null with explicit casting
Type inference in previous versions of Java
Type inference in Java 5
Type inference in Java 7
Type inference in Java 8
Challenges
Limiting the scope of failed assumptions
Breaking existing code
Non-denotable types
Meaningful variable names
Code refactoring
Type inference versus dynamic binding
Summary
Application class data sharing
Garbage Collector optimizations
API Improvements and other changes
Local variable syntax for Lambda parameters
Epsilon and its design considerations
HTTP Client and other changes
Enhanced Enums in Project Amber
Introduction to enums in Java 5
Decompiled enum – behind the scenes
Adding state and behavior to enum constants
Accessing state and behaviour of enum constants
Workaround to access state and behaviour of enum specific constants
Another example – using inheritance with enum constants
Adding generics to Enums
Sharper typing of enum constants
Summary
Data classes and their usage
Introduction to the data classes
What is a data class
Need of adding data classes to the language
Deep dive into data classes
An example
Aggregate and exploded form of a data class
The limitations
Examples from the past – changes to define enums
Pattern matching with the data classes
Encapsulating state
Data classes and inheritance
Extending an abstract data class
Implementing interfaces
Additional variables
Overriding implicit behaviour
Additional methods and constructors
Mutability
Thread safety
Summary
Raw String literals
Lambda Leftovers
Pattern matching and switch expressions
Value based optimizations
Generics improvements
Filters and Continuations
JVM and native code
← Prev
Back
Next →
← Prev
Back
Next →