Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daverbk/jmc
Exercises completed and notes made while going through Tim Buchalka's `Java Masterclass`
https://github.com/daverbk/jmc
java java-17 tim-buchulka-java-masterclass
Last synced: about 2 months ago
JSON representation
Exercises completed and notes made while going through Tim Buchalka's `Java Masterclass`
- Host: GitHub
- URL: https://github.com/daverbk/jmc
- Owner: daverbk
- Created: 2023-10-16T08:11:21.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-04T22:10:33.000Z (5 months ago)
- Last Synced: 2024-08-05T23:33:55.808Z (5 months ago)
- Topics: java, java-17, tim-buchulka-java-masterclass
- Language: Java
- Homepage: https://www.udemy.com/course/java-the-complete-java-developer-course
- Size: 628 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# _Conspectus_
## Object Oriented Programming 1
* [Object Oriented Programming 1](https://github.com/daverbk/jmc/tree/main/05-oop1#notes)
* [Object Oriented Programming](https://github.com/daverbk/jmc/tree/main/05-oop1#object-oriented-programming)
* [Organizing classes](https://github.com/daverbk/jmc/tree/main/05-oop1#organizing-classes)
* [Access modifiers for the class](https://github.com/daverbk/jmc/tree/main/05-oop1#access-modifiers-for-the-class)
* [Access modifiers for class members](https://github.com/daverbk/jmc/tree/main/05-oop1#access-modifiers-for-class-members)
* [Encapsulation](https://github.com/daverbk/jmc/tree/main/05-oop1#encapsulation)
* [What is null?](https://github.com/daverbk/jmc/tree/main/05-oop1#what-is-null)
* [Getters / setters](https://github.com/daverbk/jmc/tree/main/05-oop1#getters--setters)
* [`this`](https://github.com/daverbk/jmc/tree/main/05-oop1#this)
* [Constructor](https://github.com/daverbk/jmc/tree/main/05-oop1#constructor)
* [Default constructor](https://github.com/daverbk/jmc/tree/main/05-oop1#default-constructor)
* [Constructor chaining with this()](https://github.com/daverbk/jmc/tree/main/05-oop1#constructor-chaining-with-this)
* [Static vs Instance Members](https://github.com/daverbk/jmc/tree/main/05-oop1#static-vs-instance-members)
* [Static Variables](https://github.com/daverbk/jmc/tree/main/05-oop1#static-variables)
* [Can be used for](https://github.com/daverbk/jmc/tree/main/05-oop1#can-be-used-for)
* [Instance Variables](https://github.com/daverbk/jmc/tree/main/05-oop1#instance-variables)
* [Instance Methods](https://github.com/daverbk/jmc/tree/main/05-oop1#instance-methods)
* [Advice from Tim](https://github.com/daverbk/jmc/tree/main/05-oop1#advice-from-tim)
* [Plain Old Java Object](https://github.com/daverbk/jmc/tree/main/05-oop1#plain-old-java-object)
* [Record](https://github.com/daverbk/jmc/tree/main/05-oop1#record)
* [Implicit code](https://github.com/daverbk/jmc/tree/main/05-oop1#implicit-code)
* [Why have an immutable record?](https://github.com/daverbk/jmc/tree/main/05-oop1#why-have-an-immutable-record)
* [POJO vs. Record](https://github.com/daverbk/jmc/tree/main/05-oop1#pojo-vs-record)
* [Inheritance](https://github.com/daverbk/jmc/tree/main/05-oop1#inheritance)
* [`extends`](https://github.com/daverbk/jmc/tree/main/05-oop1#extends)
* [`super()`](https://github.com/daverbk/jmc/tree/main/05-oop1#super)
* [this vs super](https://github.com/daverbk/jmc/tree/main/05-oop1#this-vs-super)
* [Constructor chaining](https://github.com/daverbk/jmc/tree/main/05-oop1#constructor-chaining)
* [Code Re-use](https://github.com/daverbk/jmc/tree/main/05-oop1#code-re-use)
* [Overriding a method](https://github.com/daverbk/jmc/tree/main/05-oop1#overriding-a-method)
* [Overridden method](https://github.com/daverbk/jmc/tree/main/05-oop1#overridden-method)
* [java.lang.Object](https://github.com/daverbk/jmc/tree/main/05-oop1#javalangobject)
* [Polymorphism](https://github.com/daverbk/jmc/tree/main/05-oop1#polymorphism)
* [Method Overloading vs Overriding](https://github.com/daverbk/jmc/tree/main/05-oop1#method-overloading-vs-overriding)## Object Oriented Programming 2
* [Object Oriented Programming 2](https://github.com/daverbk/jmc/tree/main/06-oop2#notes)
* [Inheritance vs Composition](https://github.com/daverbk/jmc/tree/main/06-oop2#inheritance-vs-composition)
* [Advice from Tim](https://github.com/daverbk/jmc/tree/main/06-oop2#advice-from-tim)
* [Why is Composition preferred?](https://github.com/daverbk/jmc/tree/main/06-oop2#why-is-composition-preferred)
* [Why is Inheritance less flexible?](https://github.com/daverbk/jmc/tree/main/06-oop2#why-is-inheritance-less-flexible)
* [Encapsulation](https://github.com/daverbk/jmc/tree/main/06-oop2#encapsulation)
* [Encapsulation Principles](https://github.com/daverbk/jmc/tree/main/06-oop2#encapsulation-principles)
* [Polymorphism](https://github.com/daverbk/jmc/tree/main/06-oop2#polymorphism)
* [Ad-hock](https://github.com/daverbk/jmc/tree/main/06-oop2#ad-hock)
* [Parametric](https://github.com/daverbk/jmc/tree/main/06-oop2#parametric)
* [Local Variable Type Inference](https://github.com/daverbk/jmc/tree/main/06-oop2#local-variable-type-inference)
* [Compile Time Typing](https://github.com/daverbk/jmc/tree/main/06-oop2#compile-time-typing)
* [Run Time Typing](https://github.com/daverbk/jmc/tree/main/06-oop2#run-time-typing)
* [`instanceof` operator](https://github.com/daverbk/jmc/tree/main/06-oop2#instanceof-operator)
* [`package`](https://github.com/daverbk/jmc/tree/main/06-oop2#package)## Arrays
* [Arrays](https://github.com/daverbk/jmc/tree/main/07-arrays#notes)
* [Arrays](https://github.com/daverbk/jmc/tree/main/07-arrays#arrays)
* [Declaring an Array](https://github.com/daverbk/jmc/tree/main/07-arrays#declaring-an-array)
* [Instantiating an Array](https://github.com/daverbk/jmc/tree/main/07-arrays#instantiating-an-array)
* [What is an array, really?](https://github.com/daverbk/jmc/tree/main/07-arrays#what-is-an-array-really)
* [java.util.Arrays](https://github.com/daverbk/jmc/tree/main/07-arrays#javautilarrays)
* [Reference Types vs Value Types](https://github.com/daverbk/jmc/tree/main/07-arrays#reference-types-vs-value-types)
* [Varargs](https://github.com/daverbk/jmc/tree/main/07-arrays#varargs)
* [Two-Dimensional Array](https://github.com/daverbk/jmc/tree/main/07-arrays#two-dimensional-array)
* [Multi Dimensional Array](https://github.com/daverbk/jmc/tree/main/07-arrays#multi-dimensional-array)## List
* [List](https://github.com/daverbk/jmc/tree/main/08-list#notes)
* [Arrays vs ArrayLists](https://github.com/daverbk/jmc/tree/main/08-list#arrays-vs-arraylists)
* [Instantiating with Values](https://github.com/daverbk/jmc/tree/main/08-list#instantiating-with-values)
* [Element information](https://github.com/daverbk/jmc/tree/main/08-list#element-information)
* [Finding an element](https://github.com/daverbk/jmc/tree/main/08-list#finding-an-element)
* [Sorting](https://github.com/daverbk/jmc/tree/main/08-list#sorting)
* [Array](https://github.com/daverbk/jmc/tree/main/08-list#array)
* [ArrayList](https://github.com/daverbk/jmc/tree/main/08-list#arraylist)
* [Creating Lists from Arrays](https://github.com/daverbk/jmc/tree/main/08-list#creating-lists-from-arrays)
* [Using `Arrays.asList()`](https://github.com/daverbk/jmc/tree/main/08-list#using-arraysaslist)
* [Using `List.of()`](https://github.com/daverbk/jmc/tree/main/08-list#using-listof)
* [Creating Arrays from ArrayLists](https://github.com/daverbk/jmc/tree/main/08-list#creating-arrays-from-arraylists)
* [List](https://github.com/daverbk/jmc/tree/main/08-list#list)
* [ArrayList operations](https://github.com/daverbk/jmc/tree/main/08-list#arraylist-operations)
* [LinkedList operations](https://github.com/daverbk/jmc/tree/main/08-list#linkedlist-operations)
* [ArrayList](https://github.com/daverbk/jmc/tree/main/08-list#arraylist-1)
* [Bottlenecks](https://github.com/daverbk/jmc/tree/main/08-list#bottlenecks)
* [Benefits](https://github.com/daverbk/jmc/tree/main/08-list#benefits)
* [LinkedList](https://github.com/daverbk/jmc/tree/main/08-list#linkedlist)
* [Bottlenecks](https://github.com/daverbk/jmc/tree/main/08-list#bottlenecks-1)
* [Benefits](https://github.com/daverbk/jmc/tree/main/08-list#benefits-1)
* [Advice from Tim](https://github.com/daverbk/jmc/tree/main/08-list#advice-from-tim)
* [LinkedList's the Queue and Stack methods](https://github.com/daverbk/jmc/tree/main/08-list#linkedlists-the-queue-and-stack-methods)
* [Iterator](https://github.com/daverbk/jmc/tree/main/08-list#iterator)
* [Iterator vs ListIterator](https://github.com/daverbk/jmc/tree/main/08-list#iterator-vs-listiterator)
* [Why does Java have primitive data types?](https://github.com/daverbk/jmc/tree/main/08-list#why-does-java-have-primitive-data-types)
* [Boxing](https://github.com/daverbk/jmc/tree/main/08-list#boxing)
* [Autoboxing](https://github.com/daverbk/jmc/tree/main/08-list#autoboxing)
* [Automatic unboxing](https://github.com/daverbk/jmc/tree/main/08-list#automatic-unboxing)
* [Enumeration](https://github.com/daverbk/jmc/tree/main/08-list#enumeration)## Abstraction
* [Abstraction](https://github.com/daverbk/jmc/tree/main/09-abstraction#notes)
* [Abstract method](https://github.com/daverbk/jmc/tree/main/09-abstraction#abstract-method)
* [Concrete method](https://github.com/daverbk/jmc/tree/main/09-abstraction#concrete-method)
* [Method Modifiers](https://github.com/daverbk/jmc/tree/main/09-abstraction#method-modifiers)
* [Abstract class](https://github.com/daverbk/jmc/tree/main/09-abstraction#abstract-class)
* [When](https://github.com/daverbk/jmc/tree/main/09-abstraction#when)
* [Interface](https://github.com/daverbk/jmc/tree/main/09-abstraction#interface)
* [When](https://github.com/daverbk/jmc/tree/main/09-abstraction#when-1)
* [Abstract class vs Interface](https://github.com/daverbk/jmc/tree/main/09-abstraction#abstract-class-vs-interface)
* [A class can use extends and implements in same declaration](https://github.com/daverbk/jmc/tree/main/09-abstraction#a-class-can-use-extends-and-implements-in-same-declaration)
* [`final` modifier](https://github.com/daverbk/jmc/tree/main/09-abstraction#final-modifier)
* [Constants](https://github.com/daverbk/jmc/tree/main/09-abstraction#constants)## Generics
* [Generics](https://github.com/daverbk/jmc/tree/main/10-generics#notes)
* [Convention](https://github.com/daverbk/jmc/tree/main/10-generics#convention)
* [Raw use](https://github.com/daverbk/jmc/tree/main/10-generics#raw-use)
* [Specifying an upper bound](https://github.com/daverbk/jmc/tree/main/10-generics#specifying-an-upper-bound)
* [Comparable](https://github.com/daverbk/jmc/tree/main/10-generics#comparable)
* [Comparable vs Comparator](https://github.com/daverbk/jmc/tree/main/10-generics#comparable-vs-comparator)
* [Limitation of a reference of generic class](https://github.com/daverbk/jmc/tree/main/10-generics#limitation-of-a-reference-of-generic-class)
* [Generic method](https://github.com/daverbk/jmc/tree/main/10-generics#generic-method)
* [Type Parameters](https://github.com/daverbk/jmc/tree/main/10-generics#type-parameters)
* [Generic class](https://github.com/daverbk/jmc/tree/main/10-generics#generic-class)
* [Generic method](https://github.com/daverbk/jmc/tree/main/10-generics#generic-method-1)
* [Type Arguments](https://github.com/daverbk/jmc/tree/main/10-generics#type-arguments)
* [Wildcards](https://github.com/daverbk/jmc/tree/main/10-generics#wildcards)
* [Type Erasure](https://github.com/daverbk/jmc/tree/main/10-generics#type-erasure)
* [Using Multiple types to declare an Upper Bound](https://github.com/daverbk/jmc/tree/main/10-generics#using-multiple-types-to-declare-an-upper-bound)## Nested Types
* [Nested Types](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#notes)
* [Nested Classes](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#nested-classes)
* [Static Nested Class](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#static-nested-class)
* [Inner Classes](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#inner-classes)
* [Local Classes](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#local-classes)
* [Local Class's 'Captured Variables'](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#local-classs-captured-variables)
* [Effectively Final](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#effectively-final)
* [Anonymous Classes](https://github.com/daverbk/jmc/tree/main/11-nestedclasses#anonymous-classes)## Lambdas
* [Lambdas](https://github.com/daverbk/jmc/tree/main/12-lambda#notes)
* [The Lambda Expression](https://github.com/daverbk/jmc/tree/main/12-lambda#the-lambda-expression)
* [Anonymous class and the lambda expression](https://github.com/daverbk/jmc/tree/main/12-lambda#anonymous-class-and-the-lambda-expression)
* [Anonymous Class](https://github.com/daverbk/jmc/tree/main/12-lambda#anonymous-class)
* [Lambda Expression](https://github.com/daverbk/jmc/tree/main/12-lambda#lambda-expression)
* [Lambda expression variations](https://github.com/daverbk/jmc/tree/main/12-lambda#lambda-expression-variations)
* [For a single parameter](https://github.com/daverbk/jmc/tree/main/12-lambda#for-a-single-parameter)
* [The lambda body](https://github.com/daverbk/jmc/tree/main/12-lambda#the-lambda-body)
* [Single expression](https://github.com/daverbk/jmc/tree/main/12-lambda#single-expression)
* [Code block](https://github.com/daverbk/jmc/tree/main/12-lambda#code-block)
* [With multiple parameters](https://github.com/daverbk/jmc/tree/main/12-lambda#with-multiple-parameters)
* [The lambda body](https://github.com/daverbk/jmc/tree/main/12-lambda#the-lambda-body-1)
* [Single expression](https://github.com/daverbk/jmc/tree/main/12-lambda#single-expression-1)
* [Code block](https://github.com/daverbk/jmc/tree/main/12-lambda#code-block-1)
* [`java.util.function`](https://github.com/daverbk/jmc/tree/main/12-lambda#javautilfunction)
* [Basic categories of Functional Interfaces](https://github.com/daverbk/jmc/tree/main/12-lambda#basic-categories-of-functional-interfaces)
* [The `Consumer` interface](https://github.com/daverbk/jmc/tree/main/12-lambda#the-consumer-interface)
* [The `Predicate` Interface](https://github.com/daverbk/jmc/tree/main/12-lambda#the-predicate-interface)
* [The `Function` Interface](https://github.com/daverbk/jmc/tree/main/12-lambda#the-function-interface)
* [The `Supplier` Interface](https://github.com/daverbk/jmc/tree/main/12-lambda#the-supplier-interface)
* [Valid Lambda Declarations](https://github.com/daverbk/jmc/tree/main/12-lambda#valid-lambda-declarations)
* [Method Reference](https://github.com/daverbk/jmc/tree/main/12-lambda#method-reference)
* [Deferred Method Invocation](https://github.com/daverbk/jmc/tree/main/12-lambda#deferred-method-invocation)
* [For static methods](https://github.com/daverbk/jmc/tree/main/12-lambda#for-static-methods)
* [For a Bounded Receiver](https://github.com/daverbk/jmc/tree/main/12-lambda#for-a-bounded-receiver)
* [For an Unbounded Receiver](https://github.com/daverbk/jmc/tree/main/12-lambda#for-an-unbounded-receiver)
* [Convenience Methods](https://github.com/daverbk/jmc/tree/main/12-lambda#convenience-methods)
* [Comparator's additional helper methods](https://github.com/daverbk/jmc/tree/main/12-lambda#comparators-additional-helper-methods)## Collections
* [Collections](https://github.com/daverbk/jmc/tree/main/13-collections#notes)
* [The Big Picture](https://github.com/daverbk/jmc/tree/main/13-collections#the-big-picture)
* [The `Collection` Interface](https://github.com/daverbk/jmc/tree/main/13-collections#the-collection-interface)
* [`Collection` and `List`](https://github.com/daverbk/jmc/tree/main/13-collections#collection-and-list)
* [`List` implementations](https://github.com/daverbk/jmc/tree/main/13-collections#list-implementations)
* [`Queue`](https://github.com/daverbk/jmc/tree/main/13-collections#queue)
* [`Set`](https://github.com/daverbk/jmc/tree/main/13-collections#set)
* [`HashSet`, `LinkedHashSet`, `EnumSet`](https://github.com/daverbk/jmc/tree/main/13-collections#hashset-linkedhashset-enumset)
* [When creating `hashCode()`](https://github.com/daverbk/jmc/tree/main/13-collections#when-creating-hashcode)
* [`TreeSet`](https://github.com/daverbk/jmc/tree/main/13-collections#treeset)
* [Time complexity](https://github.com/daverbk/jmc/tree/main/13-collections#time-complexity)
* [Interface hierarchy](https://github.com/daverbk/jmc/tree/main/13-collections#interface-hierarchy)
* [`SortedSet` methods](https://github.com/daverbk/jmc/tree/main/13-collections#sortedset-methods)
* [`NavigableSet` methods](https://github.com/daverbk/jmc/tree/main/13-collections#navigableset-methods)
* [When to use](https://github.com/daverbk/jmc/tree/main/13-collections#when-to-use)
* [`Map`](https://github.com/daverbk/jmc/tree/main/13-collections#map)
* [Implementation](https://github.com/daverbk/jmc/tree/main/13-collections#implementation)
* [`HashMap`, `LinkedHashMap`](https://github.com/daverbk/jmc/tree/main/13-collections#hashmap-linkedhashmap)
* [`TreeMap`](https://github.com/daverbk/jmc/tree/main/13-collections#treemap)
* [`TreeMap`'s View collections](https://github.com/daverbk/jmc/tree/main/13-collections#treemaps-view-collections)
* [`EnumSet` and `EnumMap`](https://github.com/daverbk/jmc/tree/main/13-collections#enumset-and-enummap)
* [`EnumSet`](https://github.com/daverbk/jmc/tree/main/13-collections#enumset)
* [Two Types of `EnumSet` implementations](https://github.com/daverbk/jmc/tree/main/13-collections#two-types-of-enumset-implementations)
* [`EnumMap`](https://github.com/daverbk/jmc/tree/main/13-collections#enummap)## Immutables
* [Immutables](https://github.com/daverbk/jmc/tree/main/14-immutables)
* [Mutable vs Immutable](https://github.com/daverbk/jmc/tree/main/14-immutables#mutable-vs-immutable)
* [Immutable Objects - Advantages](https://github.com/daverbk/jmc/tree/main/14-immutables#immutable-objects---advantages)
* [Immutable Objects - Disadvantages](https://github.com/daverbk/jmc/tree/main/14-immutables#immutable-objects---disadvantages)
* [`final`](https://github.com/daverbk/jmc/tree/main/14-immutables#final)
* [`final` on methods](https://github.com/daverbk/jmc/tree/main/14-immutables#final-on-methods)
* [`final` on variables](https://github.com/daverbk/jmc/tree/main/14-immutables#final-on-variables)
* [How to declare a class to produce immutable objects](https://github.com/daverbk/jmc/tree/main/14-immutables#how-to-declare-a-class-to-produce-immutable-objects)
* [Defensive Copies](https://github.com/daverbk/jmc/tree/main/14-immutables#defensive-copies)
* [Shallow Copy vs Deep Copy](https://github.com/daverbk/jmc/tree/main/14-immutables#shallow-copy-vs-deep-copy)
* [Unmodifiable Collections vs Unmodifiable Collection Views](https://github.com/daverbk/jmc/tree/main/14-immutables#unmodifiable-collections-vs-unmodifiable-collection-views)
* [The instance initializer block](https://github.com/daverbk/jmc/tree/main/14-immutables#the-instance-initializer-block)
* [Static Initializers](https://github.com/daverbk/jmc/tree/main/14-immutables#static-initializers)
* [Record Constructors](https://github.com/daverbk/jmc/tree/main/14-immutables#record-constructors)
* [`Compact`](https://github.com/daverbk/jmc/tree/main/14-immutables#compact)
* [`javap`](https://github.com/daverbk/jmc/tree/main/14-immutables#javap)
* [`final` classes](https://github.com/daverbk/jmc/tree/main/14-immutables#final-classes)
* [`sealed` classes](https://github.com/daverbk/jmc/tree/main/14-immutables#sealed-classes)## IO
* [IO](https://github.com/daverbk/jmc/tree/main/18-io#notes)
* [Exceptions](https://github.com/daverbk/jmc/tree/main/18-io#exceptions)
* [Checked Exception](https://github.com/daverbk/jmc/tree/main/18-io#checked-exception)
* [LBYL and EAFP](https://github.com/daverbk/jmc/tree/main/18-io#lbyl-and-eafp)
* [Unchecked Exception](https://github.com/daverbk/jmc/tree/main/18-io#unchecked-exception)
* [`finally`](https://github.com/daverbk/jmc/tree/main/18-io#finally)
* [Try-with-resources](https://github.com/daverbk/jmc/tree/main/18-io#try-with-resources)