Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Java: Enterprise App Development with Java 9: 4-in-1
Rating: 3.9 out of 5(6 ratings)
99 students

Java: Enterprise App Development with Java 9: 4-in-1

Build modern and scalable enterprise applications using Java 9 and Java EE 8 to become a professional Java developer!
Last updated 7/2018
English

What you'll learn

  • Create efficient lock-free programs that leverage the multi-core architecture of the CPU using Java 9’s features
  • Gain practical experience of Java 9, including modules, the Streams API, the Collections API, multi-level JARs and HTTP/2 clients.
  • Build real enterprise Java applications including a website and a microservice
  • Building APIs for the connected web
  • Build a simple music streaming service
  • Learn about enterprise Java (JEE 8), including JSF, JPA, and CDI
  • Use the Reactive programming model to create efficient programs

Course content

4 sections62 lectures8h 52m total length
  • The Course Overview4:23

    This video provides an overview of the entire course.

  • Installation and Setup7:16

    How to install and set up the development environment on MacOS and Windows?

    • Download the Java Development Kit (JDK)
    • Install JDK on our Mac and Windows operating system
    • Install the IntelliJ IDEA IDE 
  • Introduction to the Java Programming Language and Its History11:23

    What is Java, and how is it useful to developers?

    • Go through the history of Java
    • Learn the features in each version
    • Get to know the advantages of Java over other languages      
  • Introduction to the JVM9:12

    How do I build an application in Java, and which tools are involved in this process?

    • Know what the JVM is
    • Understand what the JIT compiler is
    • Learn how Java manages the memory 
  • Java 101 – "Hello World” Example in JShell"9:31

    What is the quickest way of writing an application in Java 9, using the JShell?

    • Understand what JShell is
    • Understand the components of a Java application
    • Write the application in JShell and run it 
  • Introduction to OOP9:00

    What is a Java class, and why is it a required component in any source file?

    • Know what a Java class is
    • Know what the components of a class are
    • Understand the difference between classes and instances      
  • Introduction to OOP Principles14:29

    Which are the main paradigms in Java, and how can they help us write better code?

    • Look what inheritance is
    • Learn what interfaces, abstract classes, and final classes are
    • Look into polymorphism and encapsulation 
  • Introduction to the Application13:49

    How can we design an application in Java based on given usability requirements?

    • Discuss the normal structure of a Java application
    • Analyze the user requirements
    • Discuss the technical requirements 
  • The Foundations – Creating Classes for Songs, Artists, Albums, and Listeners8:26

    Based on known requirements and a given design diagram, how do we implement them in Java code?

    • Write the basic structure of the Java classes
    • Link the classes together
    • Understand how to use the links in the data structure 
  • Abstract Classes and Interfaces11:55

    How do we start applying the OOP paradigms in our existing code to enhance our application?

    • Use encapsulation in our application
    • Use interfaces and abstract classes
    • Discuss how using the paradigms makes a difference 
  • Untyped Versus Typed Data Structures14:26

    Which data structures does Java come with that we can use to store series of objects? Also, what is the difference between the various data structures?

    • Discuss lists and arrays – and the difference between them
    • Discuss the difference between typed versus untyped structures
    • Use the new concepts to improve the code 
  • Maps and Sets10:08

    Which data structures in Java enable us to store data in a more complex way?

    • Look into maps and the various implementations
    • Look into sets as alternatives to lists
    • Improve our application yet again using these concepts 
  • Linking All of Our Models together8:32

    How can we enhance the existing structure of the application to enable answering more complex queries about the stored music?

    • To enhance the application, we need to improve the design diagram
    • Understand the new requirements
    • Improve the code by double-linking the classes 
  • Creating Static Methods7:37

    How can we use static methods in Java to define behavior that does not need a stored state?

    • Know what a static variable is in Java
    • Look into static methods
    • Write new code using static variables and methods 
  • Creating Instance Methods5:33

    How can we use the concepts we learned to store the songs that a given user has listened to and allow querying from a user’s perspective?

    • Understand how the new requirement adds value to the application
    • Look into the updated design diagram
    • Code the new classes and link them to the existing code      
  • Loading Our Streaming Service with Data11:35

    How can we load some data into our application and have richer data structures?

    • Define how we read the data from files
    • Discuss how the application changes to cope with more data
    • Write code to read the data from file into memory 
  • Creating an Interactive Shell for Our Application and Testing10:09

    How can we design a command-line user-facing interface to allow anyone to input data and interact with the application?

    • Understand what a CLI application is
    • Design how the user interaction must happen
    • Reuse existing code to create a CLI user interface 
  • Test your knowledge

Requirements

  • Prior programming experience of Java is assumed.

Description

A lot of applications built today need to handle huge amounts of traffic in low latency. Java is a very popular language and JVM is a popular platform to build high performance programs in Java. Writing high-performance concurrent and thread-safe programs is hard, but you’ll discover how and see what Java 9 adds to the software engineer toolkit.

Java 9 comes with a rich feature set. It intends to change the way Java developers used to write code. It introduces a modular JDK so that developers can only include the modules that they need. The prospect of being one of the first to explore the brand new JDK from Java is the primary motivator. Also, this is the biggest change been introduced in Java for a while.

This comprehensive 4-in-1 course will set you on the path to become a skilled and professional Java developer by exploring Java 9 and Java EE 8 and learning how these technologies can be used to create a modern, scalable enterprise application. Comprehensive and detailed, the easy to follow tutorial will take viewers on a journey to going from zero to hero Java programmers with the new Java 9 SDK.

Contents and Overview

This training program includes 4 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Java 9 Core Principles, covers exciting real-world examples with Java. As you progress in your journey, you will encounter more advanced topics including functional data processing, before investigating how you can build fast, scalable APIs for the connected web. In the final section, you will build an API to analyze the sentiment of sentences provided by the user, along with various statistics about your API.

The second course, Java 9 New Features Deep Dive, covers new modular programming concept in Java 9 and know how it will affect you and your clients ahead of time.We will start up with the setting up of Java 9 and learn the modularization concepts and then proceed to deployment. This should be hands on look at Java 9, but no one will be using it to make real-world applications yet. This is an assessment video for the millions of Java developers out there looking to put it to the test.

The third course, Writing High Performance Java Application in Java 9, covers how to monitor applications and write code in high concurrent with the proper tools. First, we’ll create efficient lock-free programs that leverage the multi-core architecture of the CPU using the newest Java 9 features. Then you’ll see how Java Memory Model affects the performance of your programs. You’ll discover why it’s even more important to be aware of the software-hardware co-operation of your programs in Java 9. Moving on, you’ll find out how to leverage constructs from JAVA 9 java.util.concurrent to create efficient multi-threaded programs. We’ll explore the different kinds of locking available in JAVA 9 and get to know when you should use which kind of locks. Finally, you’ll see what tools are shipped with the JDK 9 and know how to use them properly.

The fourth course, Hands-On Enterprise Application Development with Java 9, covers modern and scalable enterprise applications using Java 9 and Java EE 8 and become a professional Java developer. We will use case studies to explore how we can use the JEE8 technologies of JSF, EJB, and JPA to build a database-driven website, while all the time working with new Java 9 constructs. You'll learn how to extract a component from our website as a standalone microservice and decouple your microservice to allow it to be reused within an organization. We will then delve into Java 9 technologies such as JShell, modules, the Streams API, Multi-Jar, Process APIs, and HTTP/2 clients.

By the end of the course, you’ll get up and running with Java with exciting real-world examples to monitor applications and write code in high concurrent with the proper tools leveraging Java Concurrency.

About the Authors

  • Colibri is a technology consultancy company founded in 2015 by James Cross and Ingrid Funie. The company works to help its clients navigate the rapidly changing and complex world of emerging technologies, with deep expertise in areas such as big data, data science, machine learning, and cloud computing. Over the past few years they have worked with some of the World's largest and most prestigious companies, including a tier-1 investment bank, a leading management consultancy group, and one of the world's most popular soft drinks companies, helping all of them make better sense of their data and process it in more intelligent ways. The company lives by its motto: Data -> Intelligence -> Action. Andrei Ruse, our Author, is currently working with Colibri Ltd, has been working as a software developer in the financial service industry for over 3 years, and has over 6 years' experience with Java as the main programming language, both academically and professionally. Prior to his current role in a FinTech startup in London, he spent three years working for one of the World's largest investment banks, having joined it straight after graduating from Manchester University with a degree in Computer Science.

  • Peter Verhas is a senior developer and software system architect with more than 30 years' software development experience. He currently works for EPAM as a senior developer, where he is involved in many customer projects and actively participates in the educational activities of the company. Peter writes a technical blog and is committed to open source software development. He has been using Java since 2005 and is also an author at Java Code Geeks.

  • Tomasz Lelek is a Software Engineer who programs mostly in Java and Scala. He is a fan of microservice architectures and functional programming. He dedicates considerable time and effort to be better every day. Recently, he's been delving into big data technologies such as Apache Spark and Hadoop. He is passionate about nearly everything associated with software development. Tomasz thinks that we should always try to consider different solutions and approaches to solving a problem. Recently, he was a speaker at several conferences in Poland - Confitura and JDD (Java Developer's Day) and also at Krakow Scala User Group. He also conducted a live coding session at Geecon Conference. He is currently working on this website using ML

  • Martin Farrell is an independent Java consultant and trainer based in Edinburgh, UK, with over 18 years' Java experience. He has consulted across a range of businesses from banking to telecommunications and Silicon Valley start-ups. He also blogs about Java and Spring technologies on the popular javabullets blog, and is Most Valuable Blogger at dzone and a contributor to  When not consulting, Martin likes to spend time with his wife and two children. He is also a keen cyclist and triathlete.

Who this course is for:

  • Developers looking to get started with programming in Java, or looking to learn what’s new to the language in Java 9.
  • Software engineers with professional experience in Java who want to create very efficient and high-performance applications in Java 9.
  • Programmers who want to take their knowledge of Java to the next level by learning to build enterprise-level applications using Java 9 and its new features.