O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

From 0 to 1: Learn Java Programming - Live Free, Learn To Code

Video Description

An accessible yet serious guide to Java programming for everyone

About This Video

  • This is a Java course for everyone. Whether you are a complete beginner (a liberal arts major, an accountant, doctor, and lawyer) or an engineer with some programming experience but looking to learn Java - this course is right for you.
  • The course is accessible because it assumes absolutely no programming knowledge, and quickly builds up using first principles alone
  • Even so, this is a serious Java programming class - the gradient is quite steep, and you will go from absolute beginner to an early intermediate level
  • The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.

In Detail

A Java course for everyone - accessible yet serious, to take you from absolute beginner to an early intermediate level. What's Covered :

Programming Basics: What programming is, and a carefully thought-through tour of the basics of any programming. Installing and setting up an IDE and writing your first program. The Object-Oriented Paradigm: Classes, Objects, Interfaces, Inheritance; how an OO mindset differs from a functional or imperative programming mindset; the mechanics of OO - access modifiers, dynamic dispatch, abstract base classes v interfaces. The underlying principles of OO: encapsulation, abstraction, polymorphism. Threading and Concurrency: A deep and thorough study of both old and new ways of doing threading in Java: Runnables, Callables, Threads, processes, Futures, Executors. Reflection, Annotations: The how, what and why - also the good and bad. Lambda Functions: Functional constructs that have made the crossover into the mainstream of Java - lambda functions, aggregate operators. Modern Java constructs: Interface default methods; properties and bindings too. Also detailed coverage of Futures and Callables, as well as of Lambda functions, aggregation operators. JavaFX as contrasted with Swing. Packages and Jars: The plumbing is important to understand too. Language Features: Serialisation; why the Cloneable interface sucks; exception handling; the immutability of Strings; the Object base class; primitive and object reference types; pass-by-value and pass-by-object-reference. Design: The MVC Paradigm, Observer and Command Design Patterns. Swing: Framework basics; JFrames, JPanels and JComponents; Menus and menu handling; Trees and their nuances; File choosers, buttons, browser controls. A very brief introduction to JavaFX.

Table of Contents

  1. Chapter 1 : You, Us & This Course
    1. Introduction 00:03:32
  2. Chapter 2 : Coding Is Like Cooking
    1. Functions as Food Processors 00:07:36
    2. Mathematics 00:10:58
    3. Installing Java and Setting up an IDE 00:12:43
    4. Variables - Primitives, Objects, Null 00:09:39
    5. Hello World! (Drill) 00:06:51
    6. Don't Jump Through Hoops, Use Loops 00:09:03
    7. Arrays and Lists - Drill 00:14:27
    8. Maps 00:05:02
    9. Maps - Drill 00:05:39
  3. Chapter 3 : An Object-Oriented State of Mind
    1. The Evolutionary Arc from C, through C++, to Java 00:12:13
    2. Objects are like puppies 00:03:46
    3. Classes and Objects: An Object-Oriented State of Mind 00:18:59
    4. Static Variables and Methods 00:06:48
    5. Access Modifiers 00:14:53
    6. Classes and Objects: A Simple Example I 00:11:57
    7. Classes and Objects: A Simple Example II 00:09:17
    8. Is-A Inheritance - setting up a class hierarchy? 00:08:59
    9. Is-A Inheritance - parent class, child class relationship? 00:07:09
    10. Runtime Polymorphism 00:14:22
    11. The Object Base Class 00:06:09
    12. Interfaces: Introduction 00:14:19
    13. Interfaces vs Abstract Base Class 00:06:44
    14. Interfaces in Detail 00:15:36
    15. Interface Default Methods: Avoid Backward Compatibility Nightmares 00:11:15
    16. Interfaces and Inheritance in Action 00:18:59
  4. Chapter 4 : Java Language Constructs: The Best Thing since Sliced Bread
    1. Exceptions 00:12:09
    2. Object Identity: == and .equals() 00:10:28
    3. Generics: Type Safety and Code Re-use 00:16:06
    4. Collections: Containers for all purposes 00:11:47
    5. Generic Containers - much cooler 00:09:49
    6. Ordered Associative Containers - The Tree Map 00:09:47
    7. Inner Classes: Horses for Courses - Static vs Non-Static 00:14:16
    8. Inner Classes: Horses for Courses - Anonymous and Local 00:09:45
    9. A File is like a Barrel 00:11:22
    10. A Serious Java Application: Our First 00:14:45
    11. A Serious Java Application: Parsing Stock Ticker Data - I 00:18:42
    12. A Serious Java Application: Parsing Stock Ticker Data - II 00:10:40
    13. A Serious Java Application: Parsing Stock Ticker Data - III 00:17:02
    14. A Serious Java Application: Parsing Stock Ticker Data - IV 00:16:26
    15. A Serious Java Application: Parsing Stock Ticker Data - V 00:16:09
  5. Chapter 5 : Threading and Concurrency: A Lot Going On All At Once
    1. Threading, and Why It Matters 00:14:10
    2. Threading: Old school vs New school 00:11:57
    3. Traditional Threading Support 00:14:19
    4. Threading and Concurrency: A lot going on at once 00:11:29
    5. Synchronized Methods, Livelock, Deadlock and Starvation 00:10:39
    6. Working with threads - and our first synchronization bug! 00:15:38
    7. Threads: Object locking and static variables in action 00:05:58
    8. Digging Deeper into Callables and Futures 00:15:22
    9. Threading: New school fun in action 00:12:49
    10. Threading: Executors are pretty cool 00:06:01
  6. Chapter 6 : Functional Programming: Crossover Hits
    1. Functional Programming: A State of Mind 00:04:10
    2. Lambda Functions: A Crossover Hit 00:12:07
    3. Lambda Functions: No more boiler-plate code 00:10:30
    4. Lambda functions for real - in code 00:17:48
  7. Chapter 7 : Recursion, Reflection, Annotations, Dates, Packages and Jars
    1. Recursion 00:16:57
    2. Reflection: Not a Dark Art 00:15:51
    3. Reflection: A real use case 00:10:23
    4. Annotations: Notes to Self can be Super-Useful 00:16:54
    5. Working With Dates in Java 00:17:41
    6. Jars: Not As Boring as They Might Seem 00:13:28
    7. Packages 00:07:05
    8. Packages and Jars in Action 00:04:23
    9. Serialisation 00:08:46
    10. Cloning 00:14:40
    11. The Immutability of Strings 00:07:27
  8. Chapter 8 : UI Programming: Swing, MVC, and JavaFX
    1. Frameworks - A State of Mind 00:16:59
    2. The Basic Idea of Swing 00:16:58
    3. Swing and the Model-View-Controller Paradigm 00:12:16
    4. The Mechanics of Swing - I 00:08:18
    5. The Mechanics of Swing - II 00:18:36
    6. A Serious Swing App: News Curation Browser - I 00:17:19
    7. A Serious Swing App: News Curation Browser - II 00:15:19
    8. A Serious Swing App: News Curation Browser - III 00:16:14
    9. A Serious Swing App: News Curation Browser - IV 00:17:46
    10. Observers, Events and Listeners 00:10:16
    11. Actions, And the Command Design Pattern 00:12:27
    12. A Peek at JavaFX - I 00:11:02
    13. A Peek at JavaFX - II 00:10:16
    14. Properties and Bindings 00:11:21
    15. Properties and Bindings in Action 00:04:14
  9. Chapter 9 : Some Interview Problems for Practice!
    1. Starting up - palindromes and points within a distance 00:18:17
    2. Play the Game of Life and Break a Document into Chunks 00:18:33
    3. Implement paint fill to color a region on screen 00:11:01