This document provides an overview of topics related to Java programming including:
- Java features, data types, variables, operators, control structures, methods, arrays
- Object-oriented programming concepts like classes, objects, inheritance, polymorphism
- Strings, wrappers, exceptions
- Input/output, packages, multithreading, garbage collection
- Java Virtual Machine architecture and reflection API
- Working with Java IDEs like Eclipse, IntelliJ and developing Java programs.
This document provides an overview of topics related to Java programming including:
- Java features, data types, variables, operators, control structures, methods, arrays
- Object-oriented programming concepts like classes, objects, inheritance, polymorphism
- Strings, wrappers, exceptions
- Input/output, packages, multithreading, garbage collection
- Java Virtual Machine architecture and reflection API
- Working with Java IDEs like Eclipse, IntelliJ and developing Java programs.
• Low Level Programming Language • Documentation Section • High Level Programming Language • Package Statement • Procedural Vs object oriented programming • Import statements Introduction to Java • Class definition • Java Programming Language First Java Program • Java History • Writing • Java Platforms • Saving • Java Features • Compilation • Java Versions • Execution • JDK ,JRE, JVM, JIT • Working with JShell • What is OpenJDK/AdaptJDK Literals • Differences between JDK and OpenJDK • Numeric Literals • Which one preferred by industry either o Integer, Floating-point JDK/OpenJDK • Character Literals Java Features/Character Set of Java • Boolean Literals Comments & Java Tokens – Identifiers, Keywords, • String Literals Separators • null literal • Naming rules for Identifiers Variables & Data Types • Naming conventions • Primitive Data Types • Reference Types Installation of JDK on all operating systems • Local Variables • Download JDK and Install JDK Type Conversions • Windows 32&64bit • Auto Conversion/Widening/implicit conversion • Linux 32&64bit • Casting/narrowing/explicit conversion • Mac 32&64bit Operators • AIX (optional) • Arithmetic Operators • Environment Variables • Increment/ Decrement Operators • Version Checking • Assignment Operators • Relational Operators • Design Patterns • Negation Operator • Case Study • Bitwise Complement Operator JVM Architecture • Logical Operators • Java Runtime Environment • Bitwise Operators • Memory Areas of JVM • Shift Operators • Class Loaders • Conditional Operator • Execution Engine – Interpreter & JIT • new Operator Reflection API • instance of Operator • Reflection in Java • Operators Precedence • Classes in java.lang.reflect • Operators Associativity • Methods of java.lang.Class • Numeric Type Promotions • Getting Complete information of a Java class Reading Data from Keyboard • Access Private constructor from outside of a class • Using Scanner class • Getting different Primitive data Static member execution flow Control Structures Non-Static/Instance member execution flow • Decision Making Statements – if, if..else, nested if, Abstraction ladder if, switch • Abstract Methods • Repetitive Statements – while, do...while, for, o Abstract class, Class Vs Abstract Class labelled loops • Interfaces • Branching Statements – break, continue, return o Multiple Inheritance using Interfaces Methods o Interface Vs Abstract class • Method Syntax o default and static methods in Interface • Zero Parameters Method o public & private static methods in • Methods with Parameters Interface • Method Returns Void • Marker Interface • Method Returns Value o Functional Interface • Overloading Methods o Anonymous Class • In-out implementation • Lambda Expressions Arrays • Method reference • Single Dimensional Arrays • Reference to a static method • Enhanced for loop • Reference to a instance method • Multi Dimensional Arrays • Reference to a constructor • Jagged Arrays • Abstract class with constructor and its importance • Variable Arguments (Var-Args) • Case Study • Method Passing Arrays Inner Classes • Method returns Array • Nested Top Level/ Static Inner Class • Case Study • Member Classes Command-line Arguments • Local Classes Working with Java IDEs • Anonymous Class • Eclipse Packages • Netbeans IDE • Need of Packages • Intellij IDE o Built-in Packages • Creating Project with IDE o rt.jar and Java Modules • Debugging a Java Program o Preparation of JAR file and How to run it. Object Oriented Programming o Uses of JAR files • Introduction • User-defined Packages • Procedure Oriented Vs Object Oriented Approach o Package naming rules • Class & Object o Importing packages • Java Modifiers o Sub-Packages o Access Modifiers o classpath Environment Variable o Non Access Modifiers o Static Imports • Encapsulation String Handling • Getter & Setters • String • Instance & Class Variables • StringBuffer • Instance & Class Methods • StringBuilder • Constructors • String Vs StringBuffer • Blocks • StringBuffer Vs StringBuilder • Overloading Constructors • StringJoiner • this keyword • Immutablitiy • Constructor Vs Method • Creating Immutable class • Passing & Returning Object from Method • StringTokenizer • Inheritance • String Pool with memory management • Method Overriding Wrapper Classes • super keyword • Need of Wrapper Classes • Super Constructors • List of Wrapper Classes • Polymorphism • Wrapper Class Methods • Static Binding Vs Dynamic Binding • Boxing & UnBoxing • Relationships • Auto Widening • Object Cloning – Shallow & Deep • Widening beats Boxing • Widening beats Varargs • synchronized method • Boxing beats Varargs • synchronized block Exception Handling • static synchronization • What is Exception • Inter-thread Communication o Exception Propagation • Interrupting Thread o Hierarchy of Exception classes Garbage Collection o Exception Types • How Automatic Garbage Collection Works o Exception Vs Error • Old Generation , Eden Space o Checked Vs Unchecked Exceptions • Mark,Sweep and Compact Operations o Keywords used for Exception Handling – • Different Garbage Collectors try, catch, finally, throw, throws • Which Garbage collector we need to use? • try with catch • finalize() of java.lang.Object o try with multiple catch blocks • Object class methods o Nested try blocks • Usage of equals and hash code method o finally block • System.gc() • User-defined / Custom Exceptions • Runnable.gc() o throw statement • How to increase java heap size ? • throws keyword • Runtime class • throw Vs throws Enum • Method Overriding with Exception Handling • Enums • “try” with multiple resources • enum in switch • Adding logic for try block with parameter • values() and valueOf( ) method • Chained Exceptions • Enum field , methods and constructors o Multicatch in Java Generics o try with resources • Generics IO Streams • Advantage of Java Generics • Streams in Java • Generic Class • Working with jav.io.File • Type Parameters • Byte Streams • Generic Methods • Input Streams & Output Streams • Wildcard in Generics • Character Streams Collections Framework • Readers & Writers • Limitations of Array • Serialization & De-serialization, SerialCersionUID • Introduction to Collections variable • Collection Interfaces • Externalization • List Interfaces • transient Modifier • Set Interfaces • nio package • Queue Interfaces • Log files creation • List Implementation Classes – ArrayList, Vector, Multithreading with Executor Framework Stack, LinkedList • Multitasking • Cursors in Collection – • What is Thread? Iterator<E>,listIterator<E>,enumeration<E>,split • Multithreading erator<T> • Main Thread • Set Implementations Classes – HashSet, • Lifecycle of a Thread LinkedHashSet, TreeSet,EnumSet • Creating Child Threads • Queue Implementaion Classes – ArrayDeque, • implements Runnable Vs extends Thread PriorityQueue • Thread Priorities • Comparable Interface • Thread class method to pause thread execution • Comparator Interface o yield() • Comparable Vs Comparator o sleep() • Map Interface o join() o Map Implementation Classes – HashMap, o wait() & notify() LinkedHashMap, IdentityHashMap, o interrupt() to interrupt thread pause WeakHashMap, Hashtable, • Daemon Threads TreeMap,EnumMap • Thread Synchronization • Internal Implementation of HashMap • Deadlock & Prevention of Deadlock • Arrays Class • Deadlock Vs Starvation • Concurrent Collection API • Inter Thread Communication o Traditional Collections Vs Concurrent • Thread Pooling Collections • Thread Group • Collections Factory Methods • Concurrent linked queue • Need to override hashCode() and equals() • ShutdownHook • Preparation customized linkedlist/ implementation • Executor Framework of LinkedList code? • CountdownLatch/cyclic barrier • Differences between HashMap and • Semaphore ConcurrentHashMap • Exchanger Java Stream API • Performing multiple task by multiple thread • Advantages of using Stream API • ThreadDump (Only Overview) • Stream Interface methods – forEach, map, filter, Synchronization : limit, sorted • What and Why? • Parallel Processing – Collectors & Statistics • Predefined Functional Interfaces – Consumer, • The Local Variable Type Inference Function, Predicate • Time-Based Release Versioning • Optional Class • Garbage-Collector Interface Utility Classes • Parallel Full GC for G1 • StringTokenizer • Heap Allocation on Alternative Memory Devices • Date, Calendar, Currency classes • JDK Forest into a Single Repository • Formatting Date and Time • Unicode Language-Tag Extensions • Locale, Formatter, Random classes • Root Certificates • Timer & TimerTask Classes • Thread-Local Handshakes • Date/Time API • Experimental Java-Based JIT Compiler Regular Expressions • Application Class-Data Sharing • Use of Regular Expression • API Changes(Additions and Removals etc) • java.util.regex package Java 11 Features: Networking • New String methods(isBlank, lines, repeatetc). • Introduction • New File methods • InetAddress (Writestring,readstring,isSameFile) • Socket Programming • Pattern recognizing methods • Datagrams • Epsilon Garbage Collector • URL & URLConnection • Removed the Java EE / CORBA module and Annotations Thread Functions • Use of Annotations • Local-Variable Syntax for Lambda Parameters • Type of Annotations • TimeUnit Conversion • Built-in Java Annotations • Optional.isEmpty() • Custom Annotations • Adapt JDK and Open JDK vs Oracle JDK GUI Programming Changes Overview • AWT Java 12 Features: • Swings JVM Changes • Java FX • JEP 189 – Shenandoah: A Low-Pause-Time • APPLETS Garbage Collector (Experimental) Java 8 Features: • JEP 346 – Promptly Return Unused Committed • Lambda Expressions Memory from G1 • Marker and Functional Interfaces • JEP 344 - Abortable Mixed Collections for G1 • Pipelines and Streams Switch Expressions • Date and Time API • The new Syntax removes the need for break • Default Methods statement to prevent fallthroughs. • Type Annotations • Switch Expressions don’t fall through anymore. • Nashorn JavaScript Engine • Furthermore, we can define multiple constants in • Concurrent Accumulators the same label. • Parallel operations • default case is now compulsory in Switch • Predicate Expressions. • PermGen Space Removed • break is used in Switch Expressions to return • TLS SNI values from a case itself. Java9 Features: File mismatch() Method • The Java Platform module system • If the bytes are not identical. In this case, the • Dynamic Linking position of the first mismatching byte is returned. • JShell: the interactive Java REP • File sizes are not identical. In this case, the size of • Improved Javadoc the smaller file is returned. • Collection factory methodsFactory Methods for Compact Number Formatting Immutable List, Set, Map and Map.Entry Teeing Collectors in Stream API • Stream API improvements • Teeing Collector is the new collector utility • Private interface methods introduced in the Streams API. • HTTP/2 • This collector has three arguments – Two • Multi-release JARs collectors and a Bi-function. • Multi-Resolution Image API Java Strings New Methods • CompletableFuture API Improvements • indent(),transform() • Diamond Operator for Anonymous Inner Class • Optional describeConstable() • Miscallenous • String resolveConstantDesc() o GC (Garbage Collector) Improvements JVM Constants API o Stack-Walking API • A new package java.lang.constant is introduced o Filter Incoming Serialization Data with this JEP. o Deprecate the Applet API JEP 305: Pattern Matching for instanceof o Indify String Concatenation Raw String Literals is removed from JDK 12. o Enhanced Method Handles Java 13 Features: o Java Platform Logging API and Service • Enhancements for Switch Expressions o Compact Strings • Text Blocks instead of Raw String Literals o Parser API for Nashorn • Dynamic CDS Archives • ZGC returns unused storage Java10 Features: • Renewed Socket API
Full Download OCP Oracle Certified Professional Java SE 17 Developer (Exam 1Z0-829) Programmer's Guide Khalid A. Mughal & Vasily A. Strelnikov PDF DOCX
Full Download OCP Oracle Certified Professional Java SE 17 Developer (Exam 1Z0-829) Programmer's Guide Khalid A. Mughal & Vasily A. Strelnikov PDF DOCX