Java 9 Performance Optimization and Modularization
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
0 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Java 9 Performance Optimization and Modularization to your Wishlist.

Add to Wishlist

Java 9 Performance Optimization and Modularization

Use loops to process, mutate data and simplify processing logic with functional programming
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
0 students enrolled
Created by Packt Publishing
Last updated 9/2017
English [Auto-generated]
Current price: $10 Original price: $125 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Load CSV files and Maven Dependency Management
  • Understand the Different Types of Data Structure
  • Get familiar with Streams and Parallel streams
  • Go from zero to hero in Functional Programming
  • Leverage some of the multithreaded capabilities of Java
  • Learn to make an application thread safe
  • Learn to pull tweets for a specified set of hashtags and store them in a text file.
  • Learn about some of the common threading issues developers run into when developing multithreaded applications for the first time.
  • Learn the benefits that Project Jigsaw brings to Java 9
View Curriculum
  • Developers with some prior experience of programming in Java, looking to learn how to effectively leverage its multithreaded functionality.

More than three years after the release of Java 8, the next version is now just around the corner. You may have heard about Java 9’s module system, but there's even more to this new version.

The course will teach you how to leverage the power of multithreading in Java, before moving on to look at the benefits of modularising larger projects. We start of on our path by building a Twitter application that leverages the Twitter public API. We will start with a trivial single threaded implementation, pulling a single hashtag, and storing tweets in a text file. We will then accelerate the application by leveraging multi-threading, to download and process hashtags concurrently. Functional programming will be used for processing data streams.

By the end of this course, you will be familiar with Java 9 Performance Optimization and Modularization.

About the author

Colibri is a technology consultancy company founded in 2015 by James Cross and Ingrid Funie. The company works to help their clients navigate the rapidly changing and complex world of emerging technologies, with deep expertise in areas like 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 each of them to better make sense of their data, and process it in more intelligent ways.The company lives by their moto: Data -> Intelligence -> Action.

Andrei Ruse, our Author is currently working with Colibri Ltd and has been working as a software developer in the financial services industry for over 3 years, and has over 6 years of experience with Java as a 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.

Who is the target audience?
  • Users wishing to learn more about the new modularization features introduced in Java 9 (project Jigsaw).
Students Who Viewed This Course Also Viewed
Curriculum For This Course
13 Lectures
Processing Twitter Hashtags
5 Lectures 35:58

This video provides an overview of the entire course.

Preview 05:21

What is Twitter and how can I build a client application using the Twitter API?

  • Explore the functionality Twitter offers
  • Learn about ways to interact with the Twitter service
  • Discuss the Twitter API and create credentials for it 
Twitter4J and Twitter API Key

How can we publish messages on Twitter, from a Java application we write?

  • Know what a Tweet is and its structure
  • Discuss how posting a Tweet works
  • Write code that connects to Twitter and publishes a Tweet 
Sample of Tweets and Printing It

How can we make our application read live Tweets?

  • Discuss the design of our application
  • Discuss the implementation of a Tweet reader function
  • Write code that reads Tweets in a loop 
Event Loop to Regularly Pull Tweets

How can we save a live stream of Tweets to a file on the disk?

  • Discuss previous functionality of our application
  • Explore how writing Tweets to a file works
  • Write code that writes the live Tweets to a file 
Writing Tweets to a Text File
Accelerating Hashtag Processing
2 Lectures 23:21

What is multi-threading and how can we execute code in parallel in Java?

  • Discuss about the concept of multithreading
  • Explain when multithreading is the right choice
  • Discuss the different concurrency classes in Java 
Preview 13:17

How can we use multi-threading in our Twitter client application, to load multiple streams of Tweets in the same time?

  • Discuss the design of our application
  • Discuss the elements which can be parallelized
  • Write code to read multiple streams of Tweets in parallel 
Leveraging the Executor Service
Avoiding Common Threading Issues
3 Lectures 27:27

Which are the common multithreading related issues in Java?

  • Learn what deadlocks are in Java
  • Describe how livelocks are different than deadlocks
  • Describe the issue around thread starvation  
Preview 14:04

What solutions do we have to avoid common multithreading issues?

  • Discuss solutions around deadlocks
  • Discuss ways to prevent livelocks
  • Discuss ways to prevent thread starvation 
Making an Application Thread Safe

How can we apply concepts from the previous videos, in order to make our application thread-safe?

  • Remind ourselves the design of our application
  • Discuss the possible problems with multi-threading in our application
  • Change the implementation to make our application thread safe 
Making Our Twitter Application Thread Safe
Project Jigsaw
3 Lectures 27:27

What is a package in Java, and how are they useful in a complex application?

  • Describe the concept of a package in Java
  • Describe the same concept in the context of our Twitter client
  • Split our Twitter application into multiple packages 
Preview 09:16

What is Project Jigsaw, and how is it trying to improve the way we manage and handle packages and external dependencies?

  • Discuss the way we handle dependencies before Java 9
  • Explore what Project Jigsaw is and its aims
  • Show the differences between module handling in Java versions 
Project Jigsaw and Its Problem

How can the Project Jigsaw feature in Java 9 help us better manage our application and its external dependencies?

  • Remind ourselves how packages work in our Twitter application
  • Discuss how to change our application to use Java 9 modules
  • Define the interfaces between packages, and implement the changes 
Modularizing Our Twitter App and Defining Interfaces
About the Instructor
Packt Publishing
3.9 Average rating
8,175 Reviews
58,756 Students
686 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.