In English Flashcards
Abstraction
In the context of OOP it’s a selection of most important and relevant properties and characteristics of an object, sufficient to represent it in some kind of system.
Parametric polymorphism
Semantic property of a type system that allows to process values of different types in an identical way, that is, physically execute the same code for data of different types.
Ad-hoc polymorphism
Semantic property of a type system that allows you to define one interface for potentially different code. In other words, ad-hoc polymorphism is about the concept “One interface - many implementations”. In practice it implies usage of late binding mechanizm to call different virtual methods implementations of different objects with the same base type.
Inheritance
A property of a system that allows us to define a new type based on an already existing one, with full or partial borrowing of its behavior and properties.
Encapsulation
Grouping of data and methods, to work with this data, into a class in a way that hides implementation details, but provides some interface to work with instances of the class.
Serialization
Is a process of converting an object into a stream of bytes for further storage or transfer.
VCS
Is a software that allows you to capture changes in a file or set of files over time, to enable switching between their different versions.
JPA
Is a Java specification that describes a management system for saving java objects to relational database tables in a convenient form.
Refactoring
Is a change made to internal structure of software to make it easier to understand and cheaper to modify without altering its observable behavior.
Value object
An object that is entirely defined through it’s data values. We compare those objects through equality methods.
Reference object
An object that represents one, unique entity of the real world. Identity field is usually used to check such objects for equality.
Variance
Transferring of inheritance relationship between types to their derivative types, such as containers, delegates and basically everything that has a formal type parameter.
Strong typing
A typing system in which both values and variables have their types defined at compile time.
Weak typing
A typing system in which variables have no types at compile time. Instead, they’re bound to type of a value assigned to them in runtime.
Trampoline
A way to make non-tail recursive functions stack-safe.