1. Introductory lesson. Commands and the first program in Java. About java advantages, applications About JavaRush academy and JavaRush The structure of the program, method main sout Compiling the class into byte code from the console, running the program About WebIDE 2. Introduction to types and keyboard input. Learning IDEA. Saving text into a variable, outputting it into the console Declaring and initializing String variables Comments in the code Variables of the int type Elementary mathematical operations with variables of int type Increment, Decrement Concatenation Integer.parseInt(), String.valueOf() Storing primitive variables in memory Storing String variables in memory byte, short, char, long, float, double, boolean Scanner methods Installing IDEA, downloading the project, downloading the JDK How to install the plugin, how it works D.Z. of the Idea 3. Conditional statements. If, if-else, if-else-if Command blocks Nested command blocks (nested ifs). Method overloading, constructor call peculiarity. Comparative operators, including double. Boolean AND, OR, NOT Ternary operator Introduction to streams: Reader/Writer, FileReader/FileWriter Comparing Primitives and String D.Z. 4. Cycles. A problematic example of the task of doing something many times. while break, continue for do-while A comparison of different loops, figuring out which is better to use. D.Z. 5. Arrays. Creating and filling arrays. Traversing an array Storing arrays in memory Two-dimensional Arrays Notched Arrays n-dimensional arrays Utility class Arrays 6. Functions. Declaring and calling methods Parameters Return value, void Access modifiers Local variables of the method Method modifiers, method main Constants Hiding of variables (shadowing) 7. Working with strings. Optional (StringBuilder, String.format, encodings, character escaping...) Literals Encodings Character escaping. Basic String class methods Auxiliary classes for working with strings 8. Data types. Introduction to OOP. Primitive types Introducing data types Reference types Objects null Introduction to OOP Inheritance 9. Objects. Object creation (new) Constructor, default constructor Constructor with parameters Order of constructor calls in inheritance Access to the fields of an object (getter, setter) The life cycle of the object hashCode, equals 10. Classes and static. Load a class Static variables Comparing static and non-static variables Static methods Initialization order when using constructors and static blocks Internal classes 11. Lists and Generics. Wrapper classes ArrayList Array VS ArrayList Static methods ArrayList typing (generics) 12. Collections. Hierarchy of collections LinkedList ArrayList VS LinkedList Set, HashSet Queue Map, HashMap, TreeMap Which collections are best to use iterator, for-each Collections 13. Singleton, Enum, switch. What are enumerations for? Enum announcements Enum is the best singleton switch 14. Exceptions. Normal code execution and runtime errors try-catch Exception hierarchy multicatch finally throw throws Creating your own exceptions stack trace try with resources AutoCloseable 15. Input/Output streams. InputStream Reader BufferedReader OutputStream Writer BufferedWriter 16. Input/Output Streams 2. Pattern Chain of responsibility. ByteArrayInputStream RByteArrayOutputStream Combining streams 17. I/O streams 3. java.nio. io VS nio FileChannel . Selector Path Paths Files 18. Working with time and date. Date DateFormat Calendar LocalDate, LocalTime, LocalDateTime Instant ZonedDateTime DateTimeFormatter 19. Git. Final project. Making a crypto-analyzer