Becoming the Master of Java
Becoming the Master of Java, available at $44.99, has an average rating of 4.25, with 131 lectures, based on 4 reviews, and has 64 subscribers.
You will learn about Fundamentals of Java Object-Oriented Programming Best Practices of Software Development Java Virtual Machine This course is ideal for individuals who are Everyone interested in programming It is particularly useful for Everyone interested in programming.
Enroll now: Becoming the Master of Java
Summary
Title: Becoming the Master of Java
Price: $44.99
Average Rating: 4.25
Number of Lectures: 131
Number of Published Lectures: 131
Number of Curriculum Items: 131
Number of Published Curriculum Objects: 131
Original Price: $69.99
Quality Status: approved
Status: Live
What You Will Learn
- Fundamentals of Java
- Object-Oriented Programming
- Best Practices of Software Development
- Java Virtual Machine
Who Should Attend
- Everyone interested in programming
Target Audiences
- Everyone interested in programming
This course will take you on a journey of fundamentals of Java all the way through the bytecodes to the more advanced topics of programming.
Understanding and mastering Java programming will immediately put you in a good position for learning other languages such as C++ and Python.
The syntax of Java was designed to be similar to that of the C++ programs, hence if you are coming from the C++ world, then you are already halfway through mastering the Java language! Similarly, Python operates based on the assumption that every type is represented by an Object, hence closely resembles the philosophy that Java language follows.
This course is structured in a way to be very congruent with the official Oracle website for learning Java called dev dot java website. I will walk you through all the items discussed on dev dot java website and give very detailed examples of explanations.
One strong feature of this course is the frequent look under the hood in the bytecode of classes. Bytecodes are the compiled code that the java compiler “javac” provides, which sometimes reveal the hidden extra codes that javac adds to accomplish a task. For example, in the most recent version of JDK (java development kit), String concatenation always translates into creating a StringBuilder object behind the scene and calling its “append” method. Understanding such behind the scene concepts will enable you to truly master the Java language and write efficient codes.
The topics discussed in this course are:
Section 1: Getting Started with Java
In this section, I introduce the dev dot java website and discuss concepts such as “JAVA_HOME” and “CLASSPATH” environment variables. The concept of CLASSPATH will be discussed in more detail later in section 9 when I discuss the concept of java “packages”.
Section 2: Primitives and Literals
This section is the absolute beginner’s introduction to Java language features. Java language supports raw primitives and also provides wrapper classes (also called Boxed primitives). I discuss all of the supported primitives such as byte, short, int, long, float, double.
Section 3: Arrays
This section is dedicated to the built-in array construct in java. Java language allows primitive arrays and object arrays. An array can be directly initialized when it is declared. User-defined classes cannot extend built-in arrays.
Section 4: Local Variable Type Inference
This section is a brief introduction to the “var” identifier that was introduced in the recent versions of java. “var” allows the compiler to infer the type of local variables without the need for the developer to intervene.
Section 5: Operators in Java
This section introduces the core concept of operators that the java programming language supports. Math operators such as “addition +”, “subtraction -“, and “modulus %” are discussed in detail. The important concept of “operator overloading” is also discussed.
Section 6: Expressions and Statements
This section briefly presents a discussion on what constitutes an expression and a statement in java. Expressions are formed from operators and operands. Statements consist of one or more expressions and are always terminated by the semicolon “;”.
Section 7: Control flow statements
This is an important section that discusses the control flow statements such as “if”, “if else”, “while” loop, “for” loop, “switch expression” and “switch statement”. The behind the scene bytecode is also reviewed for each control flow construct.
Section 8: Intro to Object-Oriented Programming
This section is the introduction to the main concepts of object-oriented programming. Java language was developed with these concepts in mind and relies on the “inheritance”, “abstraction”, and “interfaces”. Every “class” definition in java implicitly inherits from the “Object” class that exists inside the “java.lang” package. The idea of organizing the java project into packages and fully-qualified-name of the types is discussed in great detail.
Section 9: Classes and Objects
This section puts the general concepts of object-oriented programming in the context of Java programming (syntax) and the unique features that Java provides. We discuss how java handles inheritance, polymorphism, encapsulation, and the difference between the static and non-static states of objects.
Section 10: Advanced Topics on Classes and Objects
This section dives deeper into the features of classes and objects that Java programming provides.
Section 11: Introduction to Java Native Interface
This section is an introduction to the foreign function interface (FFI) that the java development kit provides. JNI is considered by some as a difficult topic and is rarely discussed in lectures and courses. This chapter assumes the student has some knowledge of C++ programming and how to compile “.cpp” and “.h” files.
Section 12: Introduction to Effective Java
This section introduces the most important book titled “Effective Java” that every java developer must have. Each lecture corresponds to an item of best practices of java programming that is discussed in the book.
Section 13: Miscellaneous Topics
This section provides additional insights about the java programming language or the tools that are directly or indirectly related to java programming. Tools such as GraalVM’s native image and Jupyter notebooks are discussed.
Course Curriculum
Chapter 1: Getting Started with Java
Lecture 1: Introduction to dev.java website
Lecture 2: Getting Started with Java Language
Lecture 3: Creating a First Java Class
Lecture 4: Preparing the Compilation of your First Class
Lecture 5: Setting up a Java Development Kit
Lecture 6: Setting up JAVA_HOME
Lecture 7: Compiling your First Class
Lecture 8: The Important Concept of CLASSPATH
Lecture 9: Single File Java Application
Chapter 2: Primitives and Literals
Lecture 1: Java Language Basics
Lecture 2: Static vs. Instance Fields
Lecture 3: Fields vs. Local Variables
Lecture 4: Naming Rules and Conventions for Variables
Lecture 5: Creating Primitive Type Variables in Your Programs
Lecture 6: Integer & Floating Point Literals
Lecture 7: Understanding boolean Data Types
Lecture 8: Understanding char Data Types
Lecture 9: Understanding Integer Bit Masks
Lecture 10: Float and Double Literals
Lecture 11: Using Underscore in Numeric Literals
Chapter 3: Arrays
Lecture 1: Declaring Arrays
Lecture 2: Array Initializer
Lecture 3: Multi Dimensional Arrays
Lecture 4: Copying Arrays
Lecture 5: Searching and Sorting Arrays
Chapter 4: Local Variable Type Inference "var"
Lecture 1: How to use "var"
Lecture 2: Restrictions on "var" type identifier
Chapter 5: Operators in Java
Lecture 1: Operator Precedence
Lecture 2: The Concept of Operator Overloading
Lecture 3: Operator Overloading in Java vs. Python vs. C++
Lecture 4: The Assignment Operator
Lecture 5: The Arithmetic Operators
Lecture 6: The Unary Operators
Lecture 7: The Relational Operators
Lecture 8: Natural Ordering of Classes
Lecture 9: The Logical Operators && ||
Lecture 10: The instanceof Operator
Lecture 11: The Bitwise Operators
Chapter 6: Expressions and Statements
Lecture 1: Operators and Expressions
Lecture 2: Statements and Code Auto-Formatting
Chapter 7: Control Flow Statements
Lecture 1: "if" Statement
Lecture 2: "if else" Statement
Lecture 3: "while" and "do while" Loops
Lecture 4: A Look at the Bytecode of "while" Loop
Lecture 5: "for" Loop
Lecture 6: Variants of "for" Loop & "enhanced for" Loop
Lecture 7: A Look at the Bytecode of Enhanced "for" Loop
Lecture 8: "continue", "break" and "return" Statements
Lecture 9: More on "return" and "yield" Statements
Lecture 10: "switch" Statement
Lecture 11: Enhanced "switch" Statement with Comma-Separated "case" Labels
Lecture 12: "case" Labels Are Compile-Time Constants
Lecture 13: Strings & Wrapper Primitives as "switch" Argument
Lecture 14: "switch" Expressions
Lecture 15: "yield" Keyword in "switch" Expressions
Chapter 8: Introduction to Object-Oriented Programming in Java
Lecture 1: What is an Object?
Lecture 2: What is a Class?
Lecture 3: What is Inheritance?
Lecture 4: What is an Interface?
Lecture 5: "implements" and "super" Keywords and Multiple Interfaces
Lecture 6: What is a Package?
Lecture 7: Fully-Qualified Name of Types and CLASSPATH
Lecture 8: "import" keyword and CLASSPATH
Chapter 9: Classes and Objects
Lecture 1: Declaring Classes
Lecture 2: Access Modifiers for Declaring Classes
Lecture 3: Declaring Member Variables (Fields)
Lecture 4: Access Modifiers — Part 1
Lecture 5: Access Modifiers — Part 2
Lecture 6: Defining Methods
Lecture 7: Method Overloading
Lecture 8: Defining a Constructor
Lecture 9: Calling Methods and Constructors
Lecture 10: Variable Arguments (varargs) for a Method
Lecture 11: Field Shadowing in Methods
Lecture 12: Pass By Value for Primitive Types
Lecture 13: Pass By Value for Reference Types
Lecture 14: Allocating Objects and Runtime Memory
Lecture 15: Investigating JVM Memory Flags
Lecture 16: "new" Operator
Lecture 17: "null" keyword and Null Initialization
Lecture 18: Implicit Default No-Argument Constructor
Lecture 19: "dot" operator and Static Fields
Lecture 20: Introduction to Garbage Collection
Lecture 21: Garbage Collector Flags and "finalize()" Method
Chapter 10: Advanced Topics on Classes and Objects
Lecture 1: Polymorphism in "return" Type of Methods — Part 1
Lecture 2: Polymorphism in "return" Type of Methods — Part 2
Lecture 3: "this" Keyword and Static Contexts
Lecture 4: Review of Access Modifiers and Compile-Time Constants
Lecture 5: "static" Fields and Methods
Lecture 6: "static" Methods and Static "import"
Instructors
-
Meisam Bahadori
Engineer
Rating Distribution
- 1 stars: 0 votes
- 2 stars: 1 votes
- 3 stars: 0 votes
- 4 stars: 0 votes
- 5 stars: 3 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Language Learning Courses to Learn in November 2024
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024