
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Discover how GitHub Copilot acts as an AI pair programmer in a Spring Boot Java project, generating boilerplate, offering contextual suggestions, and boosting productivity with Spring AI for AI-powered applications.
Review basic prerequisites for the course, including Java fundamentals, Spring Boot concepts, and setting up a GitHub account and Copilot with an IDE such as IntelliJ.
Explore java in a brief introduction to this platform independent, object oriented language running on the java virtual machine, with rich libraries and strong community.
GitHub Copilot is an AI-powered coding assistant that delivers intelligent code suggestions and auto-completion, with contextual understanding across Spring Boot and Java projects and cloud platforms.
Explore how GitHub Copilot uses the current file and open tabs as context to generate code completion suggestions. Learn to craft comments and goals to guide Copilot toward tailored coding.
Install GitHub Copilot in IntelliJ IDEA, restart the IDE, then use the inline chat to generate or replace code, explain selected code, and reference open files with Copilot’s guidance.
Trace the productivity path from plain notepad coding to modern IDEs with IntelliSense. Learn how the GitHub Copilot plugin uses code context to predict next lines or whole functions.
Explore Java variable types including local, static, and instance variables, and understand how stack memory and heap memory relate to their lifetimes and object state.
Understand how variables in Java act as data containers, store values, and require data types, memory locations, and names, while declaring and initializing with a type, name, and value.
Explore static, instance, and local variables in a Java example and boost coding speed using GitHub Copilot, including class and method creation and printing results.
Explore Java flow control with if-else, for and while loops, do-while, for-each, and switch-case. See GitHub Copilot generate examples and help verify code in your IDE, including continue and break.
Explore data type declarations and the memory sizes in bytes for common types like int, float, double, string, and arrays, to understand performance implications and leverage GitHub Copilot's potential.
Practice Java with GitHub Copilot in IntelliJ, completing 15 exercises from sum of two numbers to area and perimeter calculations, including Celsius to Fahrenheit conversions.
Learn basic object-oriented components in Java, including interfaces as contracts, abstract classes, and implemented classes like circle and square; explore inheritance and polymorphism with a shared draw method.
Explore a class diagram for shapes, including an interface Shapeable with a draw method, an abstract Shape class, and concrete circle, square, and rectangle with their specific properties and implementations.
Learn how to generate code quickly with GitHub Copilot by creating an interface named Shapeable, an abstract class, and concrete circle, rectangle, and square classes with a radius attribute.
Set up GitHub Copilot CLI on Ubuntu by creating a VM, connecting via SSH, installing the Copilot CLI extension, authenticating, and using Copilot to generate shell commands.
Set up a MySQL instance with the GitHub Copilot CLI and Docker, then create a users table, insert records, and run a select query.
Explore the Java collection framework, distinguishing sequential collections like arrays and queues from associative collections such as maps. Identify key/value concepts in maps and hash tables with real-world examples.
Explore the Java collection framework, including lists, sets, and maps, and understand how duplicates, order, and key-value pairs differ across hash maps and tree maps.
Explore the Java collection framework hierarchy, covering sets, lists, maps, and their implementations like tree set, linked list set, vector, stack, queue, and priority queue, with examples using GitHub Copilot.
Explore the map hierarchy in the Java collection framework, detailing the map interface, sorted map, navigable map, tree map, abstract map, and concrete implementations like enum, map, and hash map.
Explore ArrayList in Java, a dynamic, type-safe list from java.util that implements the List interface and is one of the most commonly used data structures for storing and managing objects.
Explore linked list versus array list in the java.util package, observing a doubly linked list where each node links to previous and next, enabling easy insertions and removals.
Explore LinkedList operations in this video: add and add at index, remove by index or element, contains, indexOf, size, isEmpty, clear, and addAll, with a comparison to ArrayList.
Explore the HashSet class in java.util, a concrete set of unique elements in no particular order, backed by a hash table for fast insertion, removal, and retrieval.
Explore a HashSet example by adding elements, showing that duplicates are ignored, printing and checking for elements, removing items, and iterating, with GitHub Copilot guiding the implementation.
Explore Java's LinkedHashSet, a set that combines a hash table and a doubly linked list to preserve insertion order with constant-time add and remove. Learn creation, insertion, removal, and trade-offs.
Explore how the tree set in java.util maintains a navigable, sorted order by natural order or a comparator, using a red-black tree for efficient insertion, deletion, and retrieval.
Discover how a tree set sorts elements and supports add, contains, size, iteration, and clear, including first and last element retrieval. Learn sorting objects by comparable with a sample student.
Demonstrate HashMap usage in Java with put, duplicate handling, and removal, plus iteration via key set and overriding behavior, using student maps generated with GitHub Copilot.
Explore LinkedHashMap in Java, a class that extends HashMap and implements Map to provide predictable, insertion-based iteration and a doubly linked list for efficient caching and dropping older values.
Explore Java treemap, a navigable, sorted map backed by a red-black tree, supporting natural key ordering or a custom comparator, with ceiling entry and first/last key operations for sorted data.
Explore treemap basics in Java, using TreeMap to sort string keys and custom objects, learn first key and last key, with Comparable and Comparator, aided by GitHub Copilot.
Implement a queue with enqueue and dequeue operations, display queue status, and illustrate fifo behavior in contrast to a stack's lifo, aided by GitHub Copilot.
Explore how to generate and compare common sorting algorithms with GitHub Copilot, implementing bubble sort, insertion sort, merge sort, and quicksort, and analyze their big o notation performance.
Explore how GitHub Copilot assists in generating a simple program that prompts for two integers, divides the first by the second, and handles divide-by-zero with a custom arithmetic exception message.
Explore a try catch block that reads an integer input, converts it to double, and handles number format exceptions when the input is invalid, with GitHub Copilot suggestions.
Open a file using a file input string, catch the file not found exception, and display a custom error message indicating the file was not found.
Learn to read an age with a scanner, handle non-numeric input using a try-catch, and throw a custom checked invalid age exception for negatives, with Copilot.
Develop a program that performs file operations, including opening, reading, and writing a file. use a try finally block to ensure the file closes properly regardless of exceptions.
Demonstrates a simple Java multithreading example that prints numbers 1 to 10 concurrently using separate threads and runnable, with Copilot suggestions.
Create a Java program that demonstrates different thread states, printing each state's name from new to runnable, before start, after start, and terminated with short delays between transitions.
Explore thread safety by implementing a Java bank account with synchronized deposit and withdraw methods to prevent race conditions across multiple threads, aided by GitHub Copilot.
Design a program that uses a fixed-size thread pool to concurrently execute multiple sum-tasks over a range (1 to 100) with an executor service.
Explore how thread priority affects scheduling in Java by creating threads with different priorities, observing that higher priority threads are more likely to execute, with Copilot guiding the implementation.
Create a program where the parent thread spawns multiple child threads, uses join to wait for all to finish, and then displays the final result.
Explore how thread pools and the executor framework execute tasks without manual thread creation, boosting performance, reducing resource use, and enabling scalable handling of concurrent requests.
Explore thread pools—fixed, cache thread pool, and schedule thread pool—and see how executors offer factory methods to create them while thread pool executor provides a configurable, instantiable alternative.
Create a cache thread pool example with a runnable task that sleeps and prints its name, then submit twenty tasks and observe dynamic thread creation and shutdown behavior.
Demonstrate scheduling a three-thread pool with a fixed-delay task and a periodic task with an initial delay and fixed rate. The example shows execution and a shutdown after ten seconds.
Explore the callable and future interfaces in Java.util.concurrent, introduced in JDK 1.5, enabling asynchronous tasks that return results and can be canceled, waited on, or retrieved with timeouts.
Explore a Java futures example using an executor service, a callable task, and a future to show asynchronous execution, is done checks, and retrieving a result after processing.
Explore how atomic variables in Java's java.util.concurrent package ensure thread-safe operations on shared data, avoiding locks by performing atomic actions with AtomicInteger, AtomicLong, AtomicBoolean, and AtomicReference.
Explore a Java ForkJoinPool example that uses a sum task with a ten-item threshold, showcasing recursive action, fork and join, and how GitHub Copilot aids code generation.
The "GitHub Copilot for java and basics of Spring Boot" course is a comprehensive guide designed to empower developers and programmers with the knowledge and skills needed to maximize their productivity and efficiency in Spring Boot application development using GitHub Copilot.
In this course, you will embark on a journey to unlock the full potential of GitHub Copilot, a revolutionary AI-powered code completion tool. Whether you are a beginner or an experienced developer, this course caters to learners of all levels by providing clear and practical guidance.
You will start by understanding the fundamentals of GitHub Copilot and its integration with java and Spring Boot projects. Through hands-on exercises and real-world examples, you will learn how to harness the power of GitHub Copilot's code generation capabilities to rapidly create boilerplate code, handle common tasks, and reduce repetitive coding efforts.
Moreover, you will delve into advanced topics such as leveraging GitHub Copilot's intelligent suggestions and best practices specific to Spring Boot development. You will discover how to improve code quality, maintainability, and adhere to industry standards using GitHub Copilot's context-aware assistance.
Throughout the course, you will gain insights into time-saving techniques, shortcuts, and best practices to streamline your development workflow. By the end of the course, you will be equipped with the skills to efficiently use GitHub Copilot in Spring Boot projects, enabling you to write cleaner, more efficient code while significantly accelerating your development process.
Join us now to unlock the power of GitHub Copilot and take your Spring Boot development skills to the next level!