Core Java Complete Notes
1. Introduction to Java
------------------------
Java is a high-level, object-oriented programming language developed by Sun Microsystems in 1995.
Features:
- Simple, Secure, Portable
- Object-Oriented
- Robust and Multithreaded
- Platform Independent via JVM
2. Java Architecture
--------------------
- JVM: Runs bytecode and provides abstraction between compiled code and hardware.
- JDK: Java Development Kit - includes compiler and tools.
- JRE: Java Runtime Environment - includes JVM + class libraries.
3. Data Types and Variables
---------------------------
Primitive Types: byte, short, int, long, float, double, boolean, char
Reference Types: Strings, Arrays, Objects
4. Operators
------------
Arithmetic, Relational, Logical, Assignment, Bitwise, Unary, Ternary
5. Control Flow
---------------
- if, if-else, switch
- for, while, do-while loops
- break, continue, return
6. Object-Oriented Programming
------------------------------
- Class & Object
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
7. Constructors
---------------
Used to initialize objects.
- Default Constructor
- Parameterized Constructor
- Constructor Overloading
8. Static Keyword
-----------------
Used for memory management. Can be applied to variables, methods, blocks, nested classes.
9. this and super Keywords
--------------------------
- this: Refers to current class object.
- super: Refers to immediate parent class object.
10. Method Overloading and Overriding
-------------------------------------
- Overloading: Same method name with different parameters.
- Overriding: Subclass provides specific implementation of parent class method.
11. Packages and Access Modifiers
---------------------------------
Packages help organize classes. Modifiers: private, default, protected, public.
12. Interfaces and Abstract Classes
-----------------------------------
- Interface: 100% abstraction, methods are abstract by default.
- Abstract Class: Partial abstraction, can have both abstract and non-abstract methods.
13. Exception Handling
----------------------
- try-catch, finally
- throw, throws
- Checked vs Unchecked Exceptions
14. Java Collections Framework
------------------------------
- List (ArrayList, LinkedList), Set (HashSet, TreeSet), Map (HashMap, TreeMap)
- Collections utility class
15. Multithreading
------------------
- Thread class, Runnable interface
- Thread lifecycle, sleep(), join(), yield()
- Synchronization, Deadlock
16. File I/O
------------
- FileReader, FileWriter, BufferedReader, BufferedWriter
- Serialization
17. Java 8 Features
-------------------
- Lambda Expressions
- Stream API
- Functional Interfaces
- Default and Static methods in Interfaces
18. String Handling
-------------------
- String, StringBuilder, StringBuffer
- Immutable nature of String
19. Wrapper Classes
-------------------
Convert primitives to objects and vice versa. (e.g., int to Integer)
20. Important Interview Questions
---------------------------------
- Difference between JDK, JRE, JVM?
- Explain OOPs principles.
- How does HashMap work?
- What are lambda expressions?
- Explain exception hierarchy in Java.
- Difference between ArrayList and LinkedList?
(End of Notes)