Confidently follow learning paths that help you develop the right skills in the right order to achieve your goals.
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 platforms via the Java Virtual Machine (JVM). Java’s syntax was originally derived from C and C++ and was created by Sun Microsystems between 1991 and 1995. While it is mostly considered to be an object-oriented language, it is really more of a multi-paradigm language due to the inclusion of imperative and generic paradigms. It is a statically typed language and has various type-safety features built right in.Get Started
Java Developer, Back-end Developer, Software Engineer, Object Oriented with Java, JSP, Spring
No previous experience is required, and all necessary tools and concepts will be introduced throughout the path.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This course is part of a three-part series covering design patterns using Java. This part covers structural design patterns such as Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.
This course is part of a 3 part series covering design patterns using Java. This part covers the creational design patterns, Singleton, Builder, Prototype, Factory, and AbstractFactory as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.
This course is part of a 3 part series covering design patterns using Java. This part covers the behavioral design patterns, Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, and Visitor as defined by the Gang of Four. We look at examples in the Java API and code examples of each pattern.