Java Core
➤ What are the data types in Java and what is their size
➤ What are the modifiers in Java and Kotlin
➤ What Java Collections do you know
➤ What are the complexity levels for collection operations
➤ What is HashMap
➤ How to sort a collection containing a complex class, Comparator and Comparable
➤ What is the difference between ArrayList and LinkedList
➤ How does TreeMap work
➤ What are the naming rules in Java
➤ What are static classes in Java
➤ What is the difference between StringBuffer and StringBuilder
➤ What is reflection in Java
➤ In what situations does Memory leak occur
➤ What is Generic (Generics)
➤ What methods are available in the Object class in Java and Any in Kotlin
➤ What is Enum in Java
➤ What is the priority in Java when converting primitive types
➤ What is type casting / type conversion / cast
➤ What are annotations used for and how to create them in Java
➤ What are Wrappers in Java
➤ What are the jump operators
➤ What is Stack (stack) and Heap (heap) in Java
➤ What are JDK, JRE and JVM
➤ What values are variables initialized with by default
➤ Is it possible to narrow the access level/return type when overriding a method
➤ What types of references exist in Java
➤ What is the difference between map and flatMap
➤ What types of errors exist in Java
➤ How does Garbage Collector work and how is memory organized in JVM
➤ What is Java NIO (New Input/Output)
➤ What is the execution order of a Java class
➤ Can an abstract class inherit from a regular class
➤ What loops exist in Java and Kotlin
➤ What is ClassLoader
➤ What is SecurityManager
➤ What is JavaCompiler
➤ How to run JavaScript from Java
➤ What is Optional in Java and Kotlin
➤ What are bitwise (bitwise) operations in Java and Kotlin
➤ What is ByteBuffer and Unsafe
➤ What is lambda in Java
➤ How to load executable code from network in Java
➤ What is AsynchronousServerSocketChannel
➤ What are functional interfaces and @FunctionalInterface annotation in Java
➤ What built-in functional interfaces exist in Java
➤ What type parameters exist in Java
➤ What is the mechanism of volatile variables in Java
➤ How do thread stacks work in JVM from the perspective of interaction with the processor
Kotlin Core
➤ What are inner classes (Inner Classes) in Kotlin
➤ What are scope functions (Scope Functions) in Kotlin
➤ How does coroutine work and what is suspend
➤ What is the difference between coroutine launch methods launch and async
➤ What are Delegates in Kotlin
➤ What is Extension in Kotlin
➤ What is companion object in Kotlin
➤ How to use getters (get) and setters (set) in Kotlin
➤ What is @JvmStatic annotation
➤ What is callback (callback), functional types and Unit in Kotlin and how is it used
Java / Kotlin Core – Theory
➤ What complexity levels exist for collections
➤ What are the most commonly used patterns
➤ What are the differences between inheritance and composition
➤ What is SOLID
➤ What are higher order functions
➤ What is the difference between structural, functional and object-oriented paradigm in programming
➤ What data exchange formats with server exist
Java / Kotlin Core – Multithreading
➤ What are the main operators in RxJava
➤ What are synchronized collections and how do they work
➤ What does volatile mean
➤ What does synchronized mean
➤ What problems can occur in multithreading in Java
➤ What is Lock / ReentrantLock
➤ What are Backpressure strategies
➤ What is the difference between hot and cold Observables
➤ What is the difference between volatile and atomic
➤ What are deferred (Deferred) coroutines in Kotlin
➤ What are lazy (LAZY) coroutines in Kotlin
➤ What are Kotlin Channels
➤ What are Mutex, Monitor, Semaphore
Relational SQL databases
➤ What is the SQL query syntax
➤ What is VIEW (view) in SQL
➤ What is INDEX (indexes) in SQL
➤ How to avoid competition when accessing a record in SQL
➤ What types of relationships exist in SQL
➤ How to make Many-to-Many relationship in SQL
➤ How to join query to multiple tables in SQL
➤ How to use query plan in SQL
➤ How to use indexes in SQL
Components and view
➤ What is the lifecycle of activity, fragment, View
➤ Tell about SOLID
➤ What layers exist in clean architecture and what do they responsible for
➤ What elements does an Android application consist of
➤ What is the difference between MVP, MVVM, MVC, MVI
➤ What is Android ViewModel
➤ What is Android Broadcast Receivers
➤ What is Content Provider
➤ What is Android Context
➤ What is WorkManager
➤ Do Android programs run on JVM?
➤ Describe the Android platform architecture
➤ Where are Bundle stored
➤ Describe the structure of Intent object
➤ What is Fragment Result API
➤ What is Zygote in Android
➤ How to set parameters in xml for Custom View in Kotlin
➤ What is Spannable?
➤ What is the difference between build type, flavor and build variant
➤ What is SharedPreferences
➤ What is Android ViewBinding
➤ How does RecyclerView work
➤ What is the difference between Custom View and Custom Drawing
➤ What is Deep Link and App Link
➤ What is Navigation Architecture Component, what is it for and how does it work
➤ What is Content Uri
➤ How to make transition animations for navigation component
➤ What are the advantages and disadvantages of png and svg and when is one or the other better to use
➤ Name all cases when onSaveInstanceState and onRestoreInstanceState will be called
➤ What do dpi, dp, sp, dip, px, mm, in and pt mean
➤ What task schedulers exist in Android
➤ What are the main Layouts in Android and what is their performance
➤ Can AndroidManifest contain multiple main activity
➤ What are multi declarations
➤ What types of services exist in Android
➤ What classes serve for accessing sensors
➤ What are the main annotations and methods in Room
Data and multithreading
(in progress, not yet published)
➤ What is LiveData
➤ What is EventBus and how does it work
➤ How can Handler be used in Android development
➤ What is DataStore Library
➤ How to pass data to fragment
➤ What is Android Data Binding
➤ What is the difference between Flow, StateFlow and SharedFlow in Kotlin
➤ What is Looper
➤ What is Serializable, Externalizable, Parcelable
➤ What Dispatchers exist in coroutines
➤ What Scopes exist in coroutines
➤ What is onTrimMemory()
➤ What is Java ThreadPool
➤ How to pass data between activities and between fragments
➤ How to encrypt / decrypt data with AES / RSA algorithm or get SHA-1 / MD5 hash
➤ What is the difference between LiveData and regular RxJava subscription
➤ What is the difference between relational and non-relational databases
➤ What is the difference between GlobalScope / CoroutineScope / LifecycleScope / ViewModelScope
➤ What is CoroutineContext / Job / CoroutineDispatcher / CoroutineName / CoroutineExceptionHandler
➤ Why you should not subscribe to MutableStateFlow in ViewModel
➤ What are the main differences between Dagger / Hilt and Koin
➤ What annotations exist in Hilt
➤ What annotations exist in Dagger 2
➤ What methods exist in Koin