A Comprehensive Introduction to Java Virtual Machine (JVM)
4.0 (19 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.
126 students enrolled
Wishlisted Wishlist

Please confirm that you want to add A Comprehensive Introduction to Java Virtual Machine (JVM) to your Wishlist.

Add to Wishlist

A Comprehensive Introduction to Java Virtual Machine (JVM)

Understand JVM internals like Class Loading, Reflection, Garbage Collection, Heap & Stack and Bytecode Instruction Set!
4.0 (19 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.
126 students enrolled
Created by Dheeru Mundluru
Last updated 6/2017
English
Current price: $15 Original price: $40 Discount: 62% off
30-Day Money-Back Guarantee
Includes:
  • 4 hours on-demand video
  • 1 Article
  • 19 Supplemental Resources
  • 1 Coding exercise
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand about the life of a class or interface inside JVM
  • Learn about Reflection
  • Learn about different memory areas in JVM like heap, stack and method area
  • Solid understanding of Garbage Collection and its Algorithms
  • Learn about some of the important Java Bytecode Instructions
  • Understand Anatomy of a Class File by Using a Disassembler
View Curriculum
Requirements
  • Understanding of Core Java
  • Lots of Concentration as Topics could be very unfamiliar
Description

Note: You don't have to register for this course if you have already registered for my comprehensive Java course ~ Java In-Depth: Become a Complete Java Engineer!. The Java course includes all the content that is covered in this course. However, it is very likely that this course could be extended while the JVM related content in the Java course may not be any extended any further.

Update on May 20th, 2017: New coding exercise on Reflection has been added in Section 3 (Reflection). Quiz has also been added to Section 4.

To be a complete Java engineer, apart from having a strong background in Java & design patterns, it is also important to have a good understanding of the internal workings of JVM. Towards this end, this course is about helping you gain a solid understanding of how JVM works. Here is how the course is organized.

In section 1, we start off by discussing about why JVM (and Java) were created and then discuss JVM and it's architecture at a high-level. In the process, we will also take a look at how Just-in-time (JIT) compilation works.

Sections 2 - 4 delve into the real internals of JVM.

In section 2, we discuss the Lifetime of a Type, i.e., we look at what happens to a type since the time it is accessed for the very first time. class Loading & linking (Bytecode Verification) will be discussed in detail and everything will be demonstrated in code.

In section 3, we look at the reflection API.

In section 4, we look at the different memory areas (runtime data areas) that JVM deals with. Here, we will learn about things like method area, heap, method table, garbage collection, stacks and we will also look at some of the Java bytecode instructions too. In one of the demos, we will look at how we can tune the heap size and how it impacts garbage collection process. To learn about bytecode instructions, we will actually disassemble a .class file and we will inspect the bytecode instructions and learn about how they work.

The demo programs are available for download from the resources section of the corresponding lectures.

It is very likely that the course will also be updated to make it as comprehensive and as practical as possible.

Happy Learning.

Who is the target audience?
  • Java developers who like to learn about how JVM works
Curriculum For This Course
26 Lectures
04:01:24
+
Lifetime of a Type
5 Lectures 50:44
Lifetime of a Type: Motivation
05:24

An Overview of Lifetime of a Type
08:19


Linking
10:07

Demo: Lifetime of a Type
17:33

Chapter Quiz
3 questions
+
Reflection
3 Lectures 26:41
Introduction to Reflection
08:00

Accessing Class Object
06:12

Demo: Reflection
12:29

Simulate a Basic Unit Testing Framework ~ Putting reflection into action!
1 question
+
JVM Memory, Garbage Collection, and Bytecode Instructions
11 Lectures 01:34:00
Introduction to Runtime Data Areas
06:29

Method Area & Heap
10:46

Method Table
06:46

Garbage Collection: Introduction
08:46

Garbage Collection Algorithms
07:13

GC: Generational Collections
10:08

Demo: Tuning Heap & Analyzing GC Cycles
07:43

Item 6: Eliminate Obsolete Object References
06:25

Stack
05:48

Stack Frame
06:03

Instruction Set: invokespecial & invokevirtual + Demo
17:53

Chapter Quiz
6 questions
+
Strings & JVM
2 Lectures 20:43
String Pool & Interning + Demo
17:29

Beware of String Concatenation
03:14

Chapter Quiz
3 questions
+
Bonus Chapter
2 Lectures 17:14
Method Binding + Demo
17:13

Websites & Social Media Groups to Follow
00:01
About the Instructor
Dheeru Mundluru
4.5 Average rating
1,061 Reviews
5,186 Students
3 Courses
PhD, CTO & Principal Instructor at Semantic Square

A passionate software engineer and instructor, Dheeru has around 15 years of experience developing innovative software for start-ups in silicon valley and elsewhere. He is considered as one of the top instructors on Udemy and has reached out to thousands of students from over 100 countries. He holds a Ph.D. in Computer Science from University of Louisiana at Lafayette (USA). His expertise includes developing complex Web data integration & mining software with Java as the main programming language. Coming from the start-up world, he also has extensive end-to-end experience in developing Web applications using frameworks/tools such as Spring, Hibernate, Solr, MySql, etc. Dheeru is passionate about developing products that are easy-to-use, intelligent, and well-architected. Writing well-crafted code that follows the best design practices is of utmost importance to him. He brings the same level of passion and completeness to his teaching. Every concept is covered at a very in-depth level clearly explaining the motivation behind their introduction. He strongly believes in "learn by involving" teaching principle and thus his courses involve tons of live demos, an industry standard project, coding exercises that are auto-evaluated and several quizzes. Prior to his current gig at his start-up Semantic Square, Dheeru worked for around 5 years as a Principal Engineer for NimbleCommerce, an e-commerce start-up in Santa Clara, California. Before NimbleCommerce, he worked as a Research Scientist at Local Corporation, a local search company in Irvine, California. He also published and presented half-a-dozen research papers at top conferences and workshops such as International Conference on Data Mining (ICDM) and Geographic Information Retrieval (GIR). During his graduate-school days, as a teaching assistant for Search & Data Mining courses, he designed course assignments and often gave guest lectures on Web data mining.