# Java ## Core Java ### Resources #### Books 1. Java The Complete Reference, 9th edition or 10th edition - [Read Online](https://www.oreilly.com/library/view/java-the-complete/9780071808552/) 2. Head First Java - [Read Online](http://shop.oreilly.com/product/9780596009205.do) #### Videos 1. [Java video tutorial by Derek Banas](https://www.youtube.com/playlist?list=PLE7E8B7F4856C9B19) #### Checking Resource Online Use hackr.io - [https://hackr.io/tutorials/learn-java](https://hackr.io/tutorials/learn-java) ### Environment & Tools 1. JVM, JRE & JDK 2. IntelliJ IDEA - Install ### Concepts #### Data types & Variables 1. Primitive & Reference types 2. Type conversion & Casting 3. Arrays #### Operators 1. Arithmetic 2. Bitwise 3. Relational 4. Boolean 5. Ternary Operator 6. Operator Precedence 7. Parenthesis #### Control Statements 1. Selection statements - if, switch 2. Iteration statements (Loops) - for, while, do-while 3. Jump statements - break, continue, return #### Object-oriented programming 1. Inheritance 2. Encapsulation 3. Abstraction 4. Polymorphism #### Exception Handling 1. What is an Exception? 2. Hierarchy of Exceptions 3. Exception Handling 4. Throwing Exceptions 5. Null Pointer Exception (NPE) 6. Array Exceptions 7. Try with resources #### Generics 1. Generics and Object 2. Generic Methods 3. Type Bounds 4. Wildcards #### Collections 1. What are collections? 2. List 3. Set 4. Queue and Stack 5. Map 6. LinkedList 7. Iterator and iterable 8. Collections util class #### Multithreaded Programming 1. Create Threads 2. Synchronization 3. Executors 4. Collections and Thread-safety #### Other topics 1. Enumerations 2. Autoboxing 3. Annotations (Metadata) 4. String handling 5. Lambda Expression 6. Reflection 7. Types of References ## Exercises & Projects ### Java Koans [Download & solve all Koans](https://github.com/matyb/java-koans) ### IPL Project Get the [IPL Dataset](https://www.kaggle.com/manasgarg/ipl) In this data assignment you will transform raw data from IPL into some scenarios that will convey some meaning / analysis. Download both csv files from https://www.kaggle.com/manasgarg/ipl Code a Java program that will transform the raw csv data into a data structure into a Dictionary format. 1. Number of matches played per year of all the years in IPL. 2. Number of matches won of all teams over all the years of IPL. 3. For the year 2016 get the extra runs conceded per team. 4. For the year 2015 get the top economical bowlers. 5. Create your own scenario.