Giter Club home page Giter Club logo

learn-java-core's Introduction

Java Core

Software

Books

  • Big Java - Early Objects 7th Edition; Horstmann; Wiley Press (intermediate)
  • Effective Java; Bloch; O'Reilly (advanced)

Videos

Official Tutorials

Other Tutorials/Exercises

Contributing

Your pull requests are very welcome! To contribute, please refer to this guide. For a more general introduction to GitHub, refer to this page. By contributing to this repository, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.

Modules

[E1] From Functions to Classes

  • Evolution of programming languages
  • Limits of procedural programming
  • Modularization, reuse of code, and object-oriented programming
  • Object-oriented programming key features

[E2] Basics

Read: Big Java (Chapter 2-4-5-6-7)

Lab: com.nbicocchi.exercises.warmup, com.nbicocchi.exercises.arrays, com.nbicocchi.exercises.strings

  • Variables, methods and parameter passing
  • Fundamental data types
  • Decisions
  • Loops
  • Arrays (and brief introduction to ArrayList)
  • Strings
  • Input and output
  • Random numbers
  • Coding Standard

[E3] Object Oriented Design

Read: Big Java (Chapter 3-8-9-10-12) Read: UML Distilled (Chapter 3)

Lab: com.nbicocchi.exercises.oop

  • Instance variables and encapsulation
  • Specifying the public interface of a class (and its implementation)
  • Static variables and methods
  • Inheritance hierarchies
  • Abstract classes
  • Interfaces (and anonymous implementations)
  • Object: the cosmic superclass
  • Wrapper types
  • UML class diagrams

[E4] Data Structures (Collections Framework)

Read: Big Java (Chapter 14-15)

Lab: package com.nbicocchi.exercises.collections

  • Iterable and Iterator interfaces
  • List interface and its implementations (ArrayList, LinkedList)
  • Set interface and its implementations (HashSet, LinkedHashSet, TreeSet)
  • Deque interface and its implementations (ArrayDeque, LinkedList)
  • Map interface and its implementations (HashMap, LinkedHashMap, TreeMap)
  • Sorting and searching

[E5] Generic Data Structures (Generics)

Read: Big Java (Chapter 18)

Lab: com.nbicocchi.exercises.generics

  • Generic classes and type parameters
  • Implementing generic types
  • Generic methods
  • Constraining type parameters
  • Type erasure

[E6] Functional Programming

Read: Big Java (Chapter 19), Object-Oriented vs Functional Programming (Chapter 1)

Lab: com.nbicocchi.exercises.functional

  • Lambda expressions
  • Functional interfaces
  • Producing, transforming, and collecting functional streams
  • The Optional type

[E7] Exceptions

Read: Big Java (Chapter 11)

Lab: com.nbicocchi.exercises.exceptions

  • Throwing exceptions
  • Catching exceptions
  • Checked and unchecked exceptions
  • Closing resources

[E8] IO/NIO Frameworks

Read: Big Java (Chapter 21)

Lab: com.nbicocchi.exercises.nio

  • IO vs NIO frameworks
  • Manipulating paths
  • Manipulating filesystem (copy, move, etc.)
  • Reading and writing files

[E9] Multi-threading

Read: Big Java (Chapter 22)

Lab: com.nbicocchi.exercises.threads

  • Thread states
  • Thread interference
  • Thread synchronisation (synchronised/wait/notify)
  • ExecutorService
  • Callable/Future/Task

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." --- Martin Fowler

learn-java-core's People

Contributors

nbicocchi avatar m61ss avatar marincervinschi avatar davidemecugni avatar frizio03 avatar tommyrubertelli avatar bert0ns avatar pigneintesta avatar giuliamooretti avatar gabbonj avatar danianiculaesei avatar isabella-capp avatar emanuelaugolotti avatar 666564657269636f avatar cbignardi avatar gianlu03 avatar sassi3 avatar marra-federico avatar mattigual03 avatar federicogozzi avatar gregoriobaldi avatar vincenzoparente avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.