Java
Theory
-
I. Basic course Java
- 1. Java. General concepts
- 2. Data types. Literals. Keywords. Variables
- 3. Operations
- 4. Control operators (statements)
- 4.1. Conditional jump operator if
- 4.2. The selection operator ‘switch’. Nested ‘switch’ statements
- 4.3. The if-else-if statement
- 4.4. Loops for, while, do..while. Examples of use. Solving of tasks using loops
- 4.5. Extended for loop. General form. Examples. Processing arrays, collection of objects ArrayList, LinkedList
- 4.6. Operators break, continue. Examples of using
- 5. Arrays
- 6. Strings
- 7. Classes. Methods in classes
- 7.1. Classes and objects
- 7.1.1. The use of classes in Java programs. Class and object definition. Examples
- 7.1.2. Creating and saving the objects of classes. Areas of data storage in memory. Using an arrays of references to objects
- 7.1.3. Scope of objects. Deleting objects. The advantages of using the “garbage collection” approach for objects
- 7.2. Constructors
- 7.3. Initialization in classes
- 7.4. Class methods
- 7.4.1. The concept of the method. General form. Method parameters. Returning from method. Operator return. Return an object from a method. Examples of methods
- 7.4.2. Methods. Passing parameters into methods of the class. Passing the primitive data types variables into a method as a parameter
- 7.4.3. Overloading of methods in classes. Overloading of constructors
- 7.4.4. Variable length arguments in methods
- 7.4.5. Recursion
- 7.5. Using the keyword ‘static’. Static data members of the class. Static methods of the class
- 7.6. Specifier final. Immutable (constant) data, methods, classes. Empty constants. Static immutable data. Inline methods
- 7.1. Classes and objects
- 8. Nested classes
- 8.1. Nested classes and inner classes. Static nested classes. Example
- 8.2. Creating the objects of nested static and non-static classes. Constructions .this, .new
- 8.3. Examples of use of inner classes in conjunction with interfaces. Downward and upward conversion. The advantages of using upward conversion
- 9. Encapsulation. Access control. Packages
- 9.1. Encapsulation in class. Access control in class. Modifiers private, protected, public
- 9.2. Packages. Using packages in Java. Directives import and package. Compiled modules (.java). Intermediate .class files. Project structure. Using standard Java libraries
- 9.3. Controlling access to classes in packages. Package level access to the class. Public class access level
- 10. Inheritance in classes. Polymorphism
- 10.1. Reusing code in Java. The concept of composition, inheritance, delegation. The keyword extends. Examples
- 10.2. Inheritance. Basic concepts. Superclass and subclass. The keyword ‘extends’. Hiding data in derived classes. Access modifiers private, protected, public
- 10.3. Inheritance. A reference to a subclass object. Calling the superclass constructor. The keyword super
- 10.4. Overriding and overloading inherited methods. Examples. Dynamic dispatch of methods. Polymorphism
- 11. Abstract classes. Interfaces
- 12. Exceptions
- 13. Enumerations. Autoboxing. Annotations
- 13.1. Enumerations. Keyword enum. Examples
- 13.2. Using enums as classes. Examples of declaring enumerations containing constructors, internal fields, methods
- 13.3. Autoboxing and unboxing. General concepts. Using in assignment (=) and in methods. Examples
- 13.4. Autoboxing and unboxing in expressions and the switch statement. Using autoboxing and unboxing values for boolean and char types
- 14. I/O System in Java. Working with files
- 14.1. Java I/O system. Streams. Byte streams. Character streams. Standard streams
- 14.2. Work with the console. Classes InputStreamReader, PrintStream. Creating an input/output stream associated with the console. Redirecting input/output streams
- 14.3. Work with files in Java. Class File. Basic working methods
- 14.4. Byte streams. Classes DataInputStream, DataOutputStream, FileInputStream, FileOutputStream. Examples of using
- 14.5. Examples of implementation of operations that modify text files. Classes FileReader, FileOutputStream, PrintStream
- 14.6. Automatic file closure. The statement try with resources. Examples
- 14.7. Serialization of objects. The transient keyword. Examples
- 15. Generalizations
- 16. Additional Java features
- 17. Lambda expressions. Functional interfaces. Method references
- 17.1. Lambda expressions. Basic concepts. Functional interface. Examples
- 17.2. Lambda expressions for generic functional interfaces. Examples
- 17.3. Passing a lambda-expression to a method as a parameter. Examples
- 17.4. Throwing exceptions in lambda expressions. Examples
- 17.5. Accessing class members from a lambda expression. Capturing variables in lambda expressions. Examples
- 17.6. Types of method references. Reference to static method. Reference to instance method
- 17.7. Reference to the class constructor
- 17.8. Standard (predefined) functional interfaces of Java language
- 18. Data streams. Stream API
- 18.1. Data streams. Stream API. General information
- 18.2. The concept of final and intermediate operations. Examples. Methods stream(), parallelStream()
- 18.3. The BaseStream interface. Examples of using interface methods
- 18.4. Interface Stream<T>. Intermediate interface methods: filter(), map(), mapToDouble(), mapToInt(), mapToLong(), sorted(). Examples
- 18.5. Interface Stream<T>. Final methods collect(), count(), forEach(), max(), min(), reduce(), toArray()
- 19. Threads
- 19.1. Multitasking. Threads of execution. Basic concepts
- 19.2. Java language tools for working with threads of execution. Thread class. Runnable interface. Main thread of execution. Creating a child thread
- 19.3. Methods of the Thread class: getName(), start(), run(), sleep(). Examples
- 19.4. Methods of the Thread class: join(), isAlive(), getPriority(), setPriority(). Examples
- 19.5. Synchronization. Monitor. General concepts. The synchronized keyword
- 19.6. Interaction between threads. Methods wait(), notify(), notifyAll(). Examples
- 19.7. The state of the thread of execution. The getState() method. Example
-
II. Java library
- 1. The java.lang package
- 1.1. The java.lang package. General information. Overview of classes and interfaces
- 1.2. Methods of java.lang package
- 1.2.5. Class Character
- 1.2.11. Class Enum. Methods: clone(), compareTo(), getDeclaringClass(), hashCode(), name(), ordinal(), toString()
- 1.2.16. Class Math
- 2. The java.util package
- 2.1. Java Collection Framework
- 2.1.1. Introduction to Java Collection Framework
- 2.1.2. Class ArrayList
- 2.1.2.1. Class ArrayList. Dynamic array. General information. Creating an array
- 2.1.2.2. Methods that change data in the array. Methods add(), addAll(), clear(), remove(), removeAll(), removeIf(), replaceAll(), set(), sort()
- 2.1.2.3. Methods that define information about array elements. Methods get(), contains(), containsAll(), indexOf(), lastIndexOf(), iterator(), listIterator()
- 2.1.2.4. Methods that determine general characteristics of the array. Methods ensureCapacity(), isEmpty(), size(), trimToSize()
- 2.1.2.5. Methods that transform the array as whole. Methods clone(), sublist(), toArray(), retainAll()
- 2.14. Class Random
- 2.14.1. Class Random. Generating random numbers. List of methods. Methods for obtaining single random numbers: setSeed(), nextBoolean(), nextDouble(), nextFloat(), nextGaussian(), nextInt(), nextLong()
- 2.14.2. Methods for obtaining sets of random numbers. Methods doubles(), ints(), longs(), nextBytes()
- 2.1. Java Collection Framework
- 1. The java.lang package
Practice
- 1. Developing classes
- 2. Stream API
- 3. Solving tasks. Examples
- 4. JUnit
⇑