Skip to content

Latest commit

 

History

History
517 lines (497 loc) · 11.2 KB

JAVA.md

File metadata and controls

517 lines (497 loc) · 11.2 KB

Learning Content for the Java Interview

Knowledge Domains

I. Language Basics

Click to expand the learning outline for Language Basics
Knowledge Domain Topic Sub Topics
I. Language Basics 1. Java Releases and Evolution  
2. Compilation  
3. Running Java Code 1. Java Virtual Machine
2. Java Runtime Environment
3. Java Development Toolkit
4. Class Path
3. Variables 1. Declaration and Initialization
2. Memory Location and Lifecycle
3. Garbage Collection
4. Primitive Types
5. Non-Primitive Types
6. Casting
7. Final Variables
4. Methods 1. Signature
2. Static Method
3. Instance Method
4. Pass by Value or Pass by Reference
5. OperatorPrecedence  
6. Math Operations  
7. String Manipulation  
8. Conditionals 1. If Statement
2. Switch Statement
9. Loops 1. For Loop
2. While Loop
3. Do-While Loop
4. Recursion
10. I/O Streams 1. Standard Input
2. Standard Output
3. Standard Error
11. Exceptions 1. Checked Exception
2. Unchecked Exception
12. Multi-Threading (Basic) 1. Process
2. Thread
3. Fork / Join
4. Mutex
5. Race Condition
13. Generic  
14. Differences between C++ and Java  

II. Data Structures

Click to expand the learning outline for Data Structures
Knowledge Domain Topic Sub Topics
II. Data Structures 1. Array  
2. Collection Interface  
3. List 1. ArrayList
2. LinkedList
4. Set 1. HashSet
2. TreeSet
5. Map 1. HashMap
2. TreeMap
6. Stack  
7. Queue 1. Deque
2. Priority Queue
8. Tree 1. Binary Tree
2. BST
9. Graph 1. Directed
2. Undirected
3. Acyclic Graph
4. DAG
10. Manipulating Data Structures 1. Arrays
2. Collections
3. Iterations
4. Lambda Expressions
5. Streams

III. Object-Oriented Programming

Click to expand the learning outline for Object-Oriented Programming
Knowledge Domain Topic Sub Topics
III. Object-Oriented Programming 1. Class &Object 1. What are Classes and Objects?
2. Instantiation and the life cycle of an object
3. Declaring and Implementing a Class
4. Access Modifiers
5. Data Member
6. Method
7. Types of Constructors
8. Nested Class
9. Accessor
10. Static Variable
11. Static Method
12. Final Class
13. Final Method
14. Enum
15. Date / Time Objects
2. Inheritance 1. What is Inheritance?
2. Types of Inheritance
3. Advantages of Inheritance
4. Object Class
5. Casting and instanceof
3. Polymorphism 1. What is Polymorphism?
2. Method Overriding
3. Method Overloading
4. Static vs. Dynamic Polymorphism
4. Abstract Classes and Interfaces 1. Abstraction
2. Abstract Classes
3. Abstract Methods
4. Interfaces
5. Multiple Inheritance
5. Further OOP Principles 1. Composition
2. Composition vs. Inheritance: Advantages and Disadvantages
3. Association
4. Aggregation
5. Encapsulation
6. SOLID Principles

IV. Algorithms

Click to expand the learning outline for Algorithms
Knowledge Domain Topic Sub Topics
IV. Algorithms 1. Time Complexity  
2. SpaceComplexity  
3. Techniques 1. Brute Force Algorithms
2. Greedy Algorithms
3. Divide and Conquer Algorithms
4. Two Pointers Technique
5. Fast and Slow Pointers Technique
6. Merge Intervals Technique
7. Sliding Window Technique
8. Cyclic Sort Technique
9. Subsets Technique
10. Topological Sort
11. Top K Elements Technique
12. Min Heaps and Max Heaps Technique
4. Sorting 1. Selection Sort
2. Bubble Sort
3. Insertion Sort
4. Merge Sort
5. Quick Sort
6. Heap Sort
7. Bucket Sort
5. Searching 1. Tree Traversal Algorithms (Pre-order, In-Order, Post-Order)
2. Graph Traversal Algorithms (BFS, DFS)
3. Linear Search
4. Binary Search
6. Recursion 1. Iterative vs. Recursive Approach
2. Memory Utilization of a Recursive Approach
3. Maintaining Intermediate Results while Using Recursion
4. Constructing the Recursive Calls and Determining the Base Case

Resources

I. Online Learning Material

The below resources are only meant to help you start researching to find the material that would cover the required topics. They are not meant to be a comprehensive source of learning material.

II. Sample Exercises

We assembled the below list of exercises as a sample to help you prepare for the Hackerrank test. We advise you to start with this list and then solve other exercises from similar categories based on your need.

  1. Language Basics:
    1. Strong Password
    2. Funny String
    3. Longest Common Prefix
  2. Data Structures:
    1. Left Rotation
    2. Insert A Node At A Specific Position In A LinkedList
    3. Equal Stacks
    4. Remove Element
  3. Object-Oriented Programming - Easy:
    1. Java Inheritance II
    2. Java Method Overriding
  4. Object-Oriented Programming - Medium:
    1. Design Twitter
    2. Design Food Rating System
    3. Design Movie Rental System
  5. Algorithms - Easy:
    1. Picking Numbers
    2. Birthday Cake Candles
    3. Palindrome Number
  6. Algorithms - Medium:
    1. Balanced Brackets
    2. Self Balancing Tree
    3. Group Anagrams
    4. Find Bottom Left Tree Value