Paths
Java
Java is a programming language used for both client-server programs, web applications and Android development. It is one of the most popular programming languages and runs on all... Read more
Beginner
These introductory Java courses will teach you the basics of the language and how to effectively work with Java in the EE context. Some of the concepts you will master in this section include control flow in Java, object orientation, exception handling and even generics. By the end of these Java courses you will have the skillset to work on your own Java application.
Modern Java: The Big Picture
1h 58m
Description
You’ve heard about Java and want to get started with it, but what is Java really about? In this course, Modern Java: The Big Picture, you'll gain an overview of what you can expect from Java as a development platform. First, you'll learn the answers to important questions like “What does Java code look like?" and "How is it run?” Next, you'll explore the JDK and learn when you should use Java and when you shouldn't. Finally, you’ll discover the most popular libraries, practices, and tools used in modern Java development. After finishing this course, you’ll have a broad outlook on modern Java development and you will know which Java skills to focus on next in your personal development.
Table of contents
- Course Overview2m
- Introducing the Java Platform16m
- Adopting Java33m
- From Desktop to Enterprise Java to the Cloud19m
- Popular Java Libraries17m
- Practices and Common Tools17m
- Examining Alternative JVM Languages12m
Java Fundamentals: The Java Language
7h 42m
Description
This course provides complete coverage of the Java programming language giving you the strong language foundation required for any Java-based development environment. Whether targeting a client-based, server-side, or Android environment, this course provides you with everything you need to quickly ramp up and become an effective Java programmer.
Table of contents
- Course Overview1m
- Introduction and Setting up Your Environment14m
- Creating a Simple App35m
- Variables, Data Types, and Math Operators31m
- Conditional Logic, Looping, and Arrays50m
- Representing Complex Types with Classes40m
- Class Initializers and Constructors27m
- A Closer Look at Parameters31m
- Class Inheritance47m
- More About Data Types50m
- Exceptions and Error Handling35m
- Working with Packages33m
- Creating Abstract Relationships with Interfaces34m
- Static Members, Nested Types, and Anonymous Classes27m
Java Fundamentals: The Core Platform
7h 25m
Description
Java is the most in-demand programming language skill amongst software developers, and one of the most important skills for big data specialists. This course, Java Fundamentals: The Core Platform, provides thorough coverage of the core Java platform, giving you the foundation you need to begin developing Java applications using the features and capabilities of the Java Runtime Environment (JRE), as well as providing you with the skills you need to quickly ramp-up and begin developing effectively with Java using the JRE. First, you'll learn about working with streams, files, and the file system. You'll also learn about I/O topics specific to working with files such open/closing files, detecting end-of-file, and buffering. Next, you'll learn about configuring application execution and environments, the features available, and detailed discussions of the PATH and CLASSPATH environment variables that affect the Java runtime. Finally, you'll learn about multithreading and concurrency, taking a look at the basic ideas of the thread startup lifecycle along with the more sophisticated executor service. After watching this course, you'll be ready to begin working within any of the many environments that rely on Java.
Table of contents
- Course Overview1m
- Introduction4m
- Input and Output with Streams and Files56m
- String Formatting and Regular Expressions41m
- Working with Collections38m
- Controlling App Execution and Environment45m
- Capturing Application Activity with the Java Log System49m
- Multithreading and Concurrency1h 13m
- Runtime Type Information and Reflection53m
- Adding Type Metadata with Annotations36m
- Persisting Objects with Serialization43m
What’s New in Java 11: Long-term Support
1h 10m
Description
Staying up to speed with Java is difficult for any Java developer, as Java 11 is released only six months after Java 10. In this course, What's New in Java 11: Long-term Support, you'll learn about the new and most important features in Java 11. First, you'll learn about the accelerated release schedule and how Java 11 is different. Next, you'll dive into the many deprecations and removals that happened in Java 11 that may affect your codebases. There are new library and language features to explore as well, such as an all-new HttpClient API. Last, you'll learn about performance and security enhancements in this release. When you're finished with this course, you'll be ready to make the most of Java 11 in your own projects.
Table of contents
- Course Overview1m
- Introducing Java 1119m
- Deprecations and Removals15m
- Language and Library Improvements22m
- Performance and Security Improvements11m
Java Fundamentals: Collections
4h 2m
Description
Working with data is fundamental to any business problem. Java Collections are data structures designed to store and process data in memory. We start with why you want to use collections instead of arrays, cover the capabilities of Lists, Sets, and Maps and explain the different data structure tradeoffs.
Table of contents
- What Are Collections and Why Use Them?12m
- Defining and Iterating Collections28m
- Collections with Iteration Order: Lists36m
- Collection with Uniqueness: Sets40m
- Collections with Modification Order: Queues, Deques, and Stacks39m
- Collections of Pairs: Maps1h 3m
- Collection Operations20m
Java Fundamentals: Generics
3h 53m
Description
Java’s powerful generics has been available to developers for ten years now and is extensively used throughout both core and third party libraries. Unfortunately, it's not as well understood as it could be. This course is here to help. We’ll both shine a light on the common use cases of generics on classes, methods, or interfaces and also peer into some of the darker corners such as type bounds and wildcards.
Table of contents
- The What and Why of Java Generics20m
- Java's Generic Collections and Friends30m
- Generic Classes and Interfaces26m
- Generics on Methods15m
- Wildcards33m
- Raw Types and Compatibility49m
- Reflection25m
- Advanced Topics32m
Add Database Admin Features to a Java Book Store Web App
1h 35m
Description
In this project you’ll follow along with our instructions and add update and delete features to the admin section of an existing Java Web application.
Project overview
- Setup15m
- Deleting Books From a Database20m
- Showing an Edit Form30m
- Updating Books In a Database30m
Add a Session-based Shopping Cart to a Java Book Store Web App
1h 10m
Description
In this project you’ll follow along with our instructions and add update and delete features to the shopping cart section of an existing Java Web application.
Project overview
- Setup15m
- Adding Update Buttons to the Shopping Cart15m
- Deleting from the Shopping Cart20m
- Updating the Shopping Cart20m
Intermediate
This section of Java tutorials goes further in depth with the language, giving you additional tools for your Java toolbelt. Now that you know a little about Java, you’ll be ready for the next level of understanding as you dive into memory management, reflection and even useful frameworks like Spring.
Programming with Dates and Times in Java 8
2h 12m
Description
Handling dates and times is an essential part of most business and scientific applications. In this course, Programming with Dates and Times in Java 8, you will learn all about the much-needed new library in Java 8: the java.time API. First, you will learn the basic use of the core java.time classes. Next, you will discover how the library handles the complexities of time zones and daylight saving time transitions. Finally, you will explore the interconversion of java.time classes with other Java types and with database representations. When you are finished with this course, you will have a thorough knowledge of how to use this modern Java library for the fundamentally important problems of handling dates and times in your applications.
Table of contents
- Course Overview1m
- Overview of java.time21m
- The Basics of java.time23m
- Working with Time Zones50m
- Formatting and Parsing35m
Java Platform: Working with Databases Using JDBC
2h 54m
Description
This course provides complete information which is required for JDBC Programming from Beginner Level to Advanced level by describing how to read and manage data from relational databases, calling stored procedures, working with prepared statements, transaction management, reading and storing CLOB data, storing images within the databases and retrieving the image from the database, connection pooling, working with metadata etc.
Table of contents
- Course Overview1m
- Introduction18m
- Getting Started with JDBC28m
- Performing Basic CRUD Operations Using JDBC56m
- Working with Stored Procedures32m
- Managing Transactions7m
- Working with BLOB and CLOB14m
- Working with Metadata7m
- Pooling Database Connections7m
Applying Concurrency and Multi-threading to Common Java Patterns
2h 39m
Description
Every developer needs to know how to write multi-threaded applications in Java. This course, Applying Concurrency and Multi-threading to Common Java Patterns, is a precise presentation of all the fundamentals you'll need. You'll learn about the main problems of concurrent programming on multicore CPU, including race condition, synchronization, reentrant lock, and deadlock. Next, you'll cover how your application use is moved from the main memory to the CPU caches and how false sharing can occur. Finally, you'll be introduced to the Java Memory Model and the notion of happen-before. By the end of this course, you will understand how concurrency and multi-threading work on a variety of Java patterns and you'll be able to use this knowledge to create better apps.
Table of contents
- Understanding Concurrency, Threading, and Synchronization48m
- Implementing the Producer/Consumer Pattern Using Wait / Notify36m
- Ordering Read and Writes Operations on a Multicore CPU34m
- Implementing a Thread Safe Singleton on a Multicore CPU41m
Java Web Fundamentals
3h 22m
Description
Many Java web frameworks, such as Struts, are built on top of the Servlet and JavaServer Page specifications and base libraries. To fully understand how these frameworks operate, and to be able to take full advantage of the facilities they offer, you should understand the foundations such frameworks are built on. This course takes you through building a web application using the base Servlet and JavaServer Page libraries. The course discusses the Model-View-Controller pattern using Servlets as the Controller and JavaServer Pages as the View. You will also learn how to hide complex UI interaction inside tag libraries. The course will show you how it is possible to build a web application using these fundamental technologies, and how other frameworks are built.
Table of contents
- Course Overview1m
- Introduction13m
- Writing Servlets31m
- JavaServer Pages25m
- The Expression Language16m
- The Java Standard Tag Library21m
- Writing Tag Libraries40m
- Event Listeners15m
- Writing Filters15m
- Asynchronous Programming20m
Advanced
This final section is designed for the Java developer with a little experience under their belt. This sections of advanced Java tutorials dives deep into areas that every Java pro will want to ace before they call themselves a master. Topics such as patterns, best practices and testable code are fully covered in this section.
Introduction to Testing in Java
3h 54m
Description
This course introduces why you want to write automated tests for your code and how to implement this in Java, covering fundamentals of how to write simple tests using JUnit and Hamcrest, through Test Driven Development (TDD) and then explains how to structure your code and design in order to make testing easier.
Table of contents
- Introduction15m
- Testing Code38m
- Writing Good Tests48m
- Introducing Test Driven Development43m
- Dependencies39m
- Going Outside-in47m
Test-Driven Development Practices in Java
2h 54m
Description
This course covers Test-Driven Development (TDD) practices and tools supporting TDD on the Java Platform. This includes information on JUnit, Mockito, PowerMock, and DBUnit.
Table of contents
- Overview of Practices, Principles, and Tools20m
- Required Setup7m
- JUnit Overview and Demonstrating Red / Green / Refactor29m
- Basic Features of Mockito28m
- Mockito Feature Deep-Dive37m
- Fixture Management & Data Component Testing49m
What you will learn
- Control flow
- Operators
- Generic classes & methods
- Collections
- Streams
- Lambdas
- Objects
- Classes
- Interfaces
- Inheritance
- Exception handling
- Primitive types
- String
- Threads
- JVM/JRE
- IO
Pre-requisites
No previous experience is required, and all necessary tools and concepts will be introduced throughout the path.