Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 10 hours on-demand video
  • 1 article
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
Development Programming Languages Java Development Kit

Java Application Performance and Memory Management

Learn how to tune the JVM and make good coding choices to ensure your applications perform optimally.
Bestseller
Rating: 4.7 out of 54.7 (1,247 ratings)
10,756 students
Created by Matt Greencroft, Virtual Pair Programmers
Last updated 10/2019
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • What can cause performance issues in our applications, and how to resolve them.
  • The choices available to us as developers at design-time - how to make good coding choices for optimal performance.
  • How to configure the virtual machine to provide better performance at run-time.
  • The JVM's Just In Time compiler.
  • How the virtual machine manages memory.
  • Performance testing and benchmarking.
Curated for the Udemy for Business collection

Course content

25 sections • 134 lectures • 10h 4m total length

  • Preview04:00
  • Example code provided with this course
    01:01
  • Using different JDK and JVM vendors
    01:37
  • Preview05:11
  • How to get support while you're taking this course
    01:51

  • Preview03:03
  • Preview05:51
  • Introducing the first example project
    03:35
  • Finding out which methods are being compiled in our applications
    05:23
  • The C1 and C2 Compilers and logging the compilation activity
    04:43
  • Tuning the code cache size
    06:18
  • Remotely monitoring the code cache with JConsole
    08:29

  • Preview04:32
  • Specifying which compiler to use at runtime
    06:34
  • Turning off tiered compilation
    02:04
  • Tuning native compilation within the Virtual Machine
    09:58

  • Preview02:57
  • How the stack works
    05:56
  • How the heap works
    05:25
  • The heap and the stack together - an example
    07:46

  • What does "passing by value" mean?
    04:54
  • What does "passing by reference" mean?
    02:20
  • Passing objects into methods
    04:13
  • The final keyword and why it's not the same as a constant
    03:09
  • Why the final keyword doesn't stop an object's values from being changed
    05:42

  • Instructions for the exercise
    01:35
  • Walkthrough of the solution
    08:46

  • Introduction - what is an escaping reference?
    05:33
  • Strategy 1 - using an iterator
    07:31
  • Strategy 2 - duplicating collections
    06:54
  • Strategy 3 - using immutable collections
    04:38
  • Strategy 4 - duplicating objects
    05:06
  • Strategy 5 - using interfaces to create immutable objects
    04:39
  • Strategy 6 - using modules to hide the implementation
    09:49

  • Instructions for the exercise
    04:40
  • Walkthrough of the solution
    07:39

  • The role of the Metaspace
    05:09
  • The PermGen
    01:58
  • Are objects always created on the heap?
    04:14
  • The String Pool
    06:08
  • Interning Strings
    03:03

  • How the string pool is implemented
    04:10
  • Understanding the size and density of the string pool
    11:36
  • Tuning the size of the string pool
    03:28
  • Tuning the size of the heap
    07:44
  • Shortcut syntax for heap tuning flags
    03:06

Requirements

  • Basic working knowledge of Java programming is needed, but you don't need to be a Java expert!

Description

In this course we'll understand what can cause performance issues in our applications, and how to resolve them. This includes options available to us as developers at design-time - how to make good coding choices for optimal performance. We'll learn about various ways that we can configure the virtual machine to provide better performance at run-time. And we'll be diving deep into how the virtual machine manages memory, and the garbage collection process.

Along the way we'll be learning about the Just In Time compiler, performance testing and benchmarking, decompiling bytecode, using the GraalVM as an alternative virtual machine and more.

About Java Versions: This course is written for Java versions 8 and 11+ and you can follow along with either the version. You can use the Oracle or the OpenJDK versions. If you are using Java 7 or below, I have another course on Udemy which just covers the memory management part of this course (search for "Java memory management" to find it.)

Who this course is for:

  • Java programmers who are looking to deepen their knowledge of how the Java Virtual Machine works
  • Application developers who have a problem with a poorly performing application
  • All java developers who want to be better programmers

Featured review

Caglar Gonul
Caglar Gonul
95 courses
32 reviews
Rating: 5.0 out of 52 months ago
I am happy with the course. I have been developing in Java language for seven years. The lessons have helped me a lot. Especially the order of the chapters is well thought. So I gave five stars, it deserves it. Cheers.

Instructors

Matt Greencroft
Course tutor at Virtual Pair Programmers
Matt Greencroft
  • 4.6 Instructor Rating
  • 5,372 Reviews
  • 46,058 Students
  • 9 Courses

Having worked for over 20 years as a professional programmer, mainly in banking, Matt now teaches for Virtual Pair Programmers. His specialist areas are JavaEE, Android, Hadoop and NoSQL. Matt's currently working on a Clojure project, which he finds an enjoyable challenge!

Outside of work, Matt enjoys cycling, but prefers going downhill to uphill, and he also plays the piano… very badly.

Virtual Pair Programmers
Virtual Pair Programmers
  • 4.6 Instructor Rating
  • 10,672 Reviews
  • 70,929 Students
  • 11 Courses

Virtual Pair Programmers are here to help you take your programming skills to the next level. We're a group of enthusiastic software trainers who are all professional developers, and have a really practical approach to learning - our courses are full of real world case studies and hands on examples. We teach what you need to know to be productive in the workplace and to get the job done, rather than going through each feature turn by turn.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.