Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
You will be an expert in Java
Rating: 4.4 out of 5(6 ratings)
44 students

You will be an expert in Java

Explain Java in a very smooth and easy way, even professionalism
Last updated 2/2022
English

What you'll learn

  • Getting started with programming
  • Printing
  • Reading input
  • Variables
  • Calculating with numbers
  • Conditional statements and conditional operation
  • Programming in our society
  • Recurring problems and patterns to solve them
  • Repeating functionality
  • Methods and dividing the program into smaller parts
  • Discovering errors
  • Lists
  • Arrays
  • Using strings
  • object-oriented programming
  • Objects in a list
  • Files and reading data
  • Removing repetitive code (overloading methods and constructors)
  • Primitive and reference variables
  • Objects on a list and a list as part of an object
  • Separating the user interface from program logic
  • Complex programs
  • Programming paradigms
  • Algorithms
  • Hash Map
  • Similarity of objects
  • Grouping data using hash maps
  • Fast data fetching and grouping information
  • Class inheritance
  • Interfaces
  • Object polymorphism
  • Handling collections as streams
  • The Comparable Interface
  • Class diagrams
  • Packages
  • Exceptions
  • Processing files
  • Type parameters
  • ArrayList and hash table
  • Randomness
  • Multidimensional data
  • Graphical user interfaces
  • UI components and their layout
  • Event handling
  • Application's launch parameters
  • Data visualization
  • Multimedia in programs

Course content

1 section77 lectures10h 56m total length
  • Introduction10:51

    Begin your introduction to Java with this lecture, outlining essential concepts and steps toward becoming an expert in Java.

  • Introduction24:31

    Master Java fundamentals by exploring variables, operators, conditionals, methods, and inheritance within an object-oriented approach. Learn lambda expressions, exceptions, interfaces, and how to read Java libraries to build real applications.

  • lecture 112:40

    Define Java as a cross-platform programming language compiled to bytecode and run by the Java Virtual Machine, enabling write once, run anywhere.

  • lecture 22:46

    Discover five compelling reasons to learn Java, including its high demand, cross-platform compatibility, abundant resources, Android relevance, and relative beginner-friendliness.

  • lecture 37:31

    Learn to download and install a Java editor and an integrated development environment like NetBeans, then install the Java Development Kit to start coding.

  • lecture 44:28

    Learn how to create your first Java project in NetBeans using templates that auto-generate starting code, then run, debug, and explore built-in error checking and code coloring.

  • lecture 54:28

    Learn how to use comments in Java to explain code, with one-line and multi-line comments, and discover why commenting saves time for you and your team.

  • lecture 67:09

    Explore white spaces and semicolons shaping Java code. See how the basics package adds external classes and the main public class serves as the entry point, with system.out printing.

  • lecture 78:58

    Master essential Java editor shortcuts to save time, including ctrl+s save, ctrl+z undo, ctrl+c/v copy and paste, ctrl+f find, ctrl+a select all, and ctrl+space for code snippets and completion.

  • lecture 814:11

    Learn how to declare and initialize variables in Java, reserve ram for integers, long, byte, short, float, double, char, and string types, and print results with System.out.println.

  • lecture 96:07

    Learn the naming conventions for Java variables by using descriptive names and avoiding starting with a number. Use camelCase for multi-word identifiers and uppercase underscores for final constants.

  • lecture 107:13

    Master casting in Java to convert int to double, preserve fractions in division, and understand lossy conversions when assigning results.

  • lecture 1111:30

    Explore arithmetic operators in Java, including addition, subtraction, multiplication, division, and modulus. Practice assignment, compound operations, and pre/post increment and decrement to update integers and doubles.

  • lecture 126:44

    Explore relational and comparison operators in Java by comparing variables, checking equality, and understanding assignment versus comparison, while recognizing boolean results and setting up conditional statements.

  • lecture 1310:08

    Learn how logical operators manage boolean values (true and false) in Java to build concise conditional statements using negation, conjunction, and disjunction, including password matching checks.

  • lecture 1418:00

    Explore bitwise operators in Java, learn how to manipulate binary and decimal codes, and apply and, or, not, xor, shifts, and bit masks for data privileges, compression, and secure communication.

  • lecture 155:56

    Master conditional statements in Java by using if expressions that evaluate to true or false, and expand with else, else if, and logical operators for multi-condition checks.

  • lecture 163:40

    Group multiple instructions with curly braces to ensure a single conditional action executes when the condition is true, and understand scope and garbage collection for local variables.

  • lecture 175:43

    Explore conditional state with switch statements in Java, including case and break behavior, fall-through, default, and when to use it for readability; learn how to compare doubles, chars, and strings.

  • lecture 183:31

    Explore how to check even and odd numbers in Java using modulo and conditional statements, and compare it with the conditional expression (ternary operator) for compact readability.

  • lecture 1910:09

    Explain arrays and memory management by declaring and reserving space with new. Access elements using zero-based indices and array length to prevent out-of-bounds errors.

  • lecture 204:53

    Explore multidimensional arrays in Java by building and manipulating 2D and 3D arrays, learning row and column indexing from zero, initializing structures, and applying to games like chess.

  • lecture 218:50

    Learn to use for loops to iterate arrays from index zero, update the counter, compare while and do-while, and generalize code using the array length to avoid infinite loops.

  • lecture 223:41

    Explore the for loop in Java. Place initialization, the condition, and post-iteration actions in one header, using comma-separated initializations, and note the condition is checked at the start.

  • lecture 233:56

    Master the enhanced for loop in Java, using for-each syntax to iterate arrays and collections, with tips on when to use it versus a traditional for loop.

  • lecture 247:56

    Explore building a multiplication table in Java with nested loops. Print rows of 1–10, then multiply by 2, 3, and so on, formatting each row with spaces and a newline.

  • lecture 256:54

    Demonstrate how break and continue control loop iterations in Java, using a for loop from 0 to 9 to display odd or even numbers and stop when needed.

  • lecture 263:21

    Create a program that sums numbers in an array by looping from zero to numbers.length, starting with sum at zero and adding numbers[i].

  • lecture 2714:12

    Explore object oriented programming by defining objects and classes, modeling monitors with properties and methods, creating instances, and understanding access with public, package, and the main method.

  • lecture 288:01

    Explain how constructors initialize point objects with default or custom coordinates using the new keyword, assign x and y values, and streamline object creation.

  • lecture 293:03

    Learn how to use this keyword to disambiguate between fields and parameters in constructors, differentiate current object values, and understand parameters versus arguments and local temporary variables.

  • lecture 3014:33

    Discover how methods encapsulate reusable code, define return types and parameters, and are invoked with parentheses. See Java examples of print, add, and divide, including void and infinity cases.

  • lecture 312:53

    Learn method overloading by defining multiple methods and default constructors with the same name but different parameters, enabling the compiler to choose the correct version for given arguments.

  • lecture 3210:38

    Learn how static methods and variables let you call functionality without objects, manage shared id state, and apply static versus non-static access rules in Java.

  • lecture 3312:07

    Explore how packages group related classes, import access, and use public, default, private, and protected modifiers to control access and explain encapsulation and inheritance in Java.

  • lecture 3411:54

    Explore encapsulation in Java by modeling a bank account with private balance and getters and setters. Implement safe withdraw and deposit methods to enforce balance checks and code reuse.

  • lecture 358:35

    Understand how primitive variables store values, how reference variables hold memory addresses, and why strings are reference-like yet behave specially, including new memory allocation on assignment.

  • lecture 365:59

    Illustrate how primitive values are copied when passed to methods, so changes don't alter originals, while object references and constructors affect memory and field updates.

  • lecture 374:06

    Learn how string comparison works in Java, distinguishing between '==' and equals, explaining how references and values affect equality, and why using equals checks string contents instead of addresses.

  • lecture 389:32

    Create a bottle class with a water amount and an array of bottles. Implement constructors, fill, get water amount, and transfer methods with capacity checks and encapsulation.

  • lecture 3915:24

    Learn how inheritance in Java lets monsters share hit points, speed, and attack via a base Monster class, with derived Skeleton and Zombie using super constructors.

  • lecture 4011:56

    Explore inheritance with monster, skeleton, and zombie, and learn to override or overload attack methods, invoke base and derived methods, and apply polymorphism and downcasting.

  • lecture 414:55

    Explore protected modification in Java, contrasting public, package-private, and private access, and learn how protected enables subclass access across packages while preserving encapsulation.

  • lecture 426:14

    Explore how abstract methods and abstract classes shape creature hierarchies like skeleton, zombie, and spider, enforce overriding, and manage access with protected and public modifiers in an obstacle course.

  • lecture 4313:54

    Explore object-oriented design by modeling a person hierarchy with an abstract base class and concrete employee and student subclasses, using constructors, polymorphism, and instanceof checks.

  • lecture 443:55

    Learn how the instance of keyword and down casting enable accessing subclass methods, like work, after checking the object type in late binding scenarios.

  • lecture 4511:34

    Learn how all classes inherit from object, implement equals to compare objects by coordinates, and use downcasting to access subclass methods safely.

  • lecture 462:53

    Override the toString method in the object class to return a description of the object's state, such as x and y values. Use instanceof to avoid downcasting when listing objects.

  • lecture 476:02

    Understand the final keyword in Java, how final properties like date of employment are set in the constructor, and that final classes and methods cannot be extended or overridden.

  • lecture 4812:09

    Discover how interfaces define behavior in Java, with public abstract methods and public static final properties; implement interfaces to adopt multiple behaviors, unlike single inheritance of classes.

  • lecture 4912:35

    This lecture shows how to use interfaces in Java by implementing Comparable to sort programmer objects by salary. It covers compareTo logic and options for reverse order via Collections.

  • lecture 5011:03

    Explains nested and inner classes in Java, contrasts static and inner classes, and shows how outer and inner instances are created and accessed.

  • lecture 5113:07

    Explore inner classes in Java using a bank account example. Create a private inner class for interest and a method to calculate and apply that interest to the balance.

  • lecture 528:17

    Learn how anonymous classes in Java implement button actions without named classes, using an interface to define click behavior and attach a custom action to each button.

  • lecture 535:44

    Learn about aggregation and composition by creating address and employee classes, implementing constructors and toString, and understanding when an object can exist independently.

  • lecture 5417:51

    Master Java exceptions, including try-catch blocks and finally. Learn to throw and catch custom exceptions to improve error handling and code reliability.

  • lecture 5513:32

    Learn how lambda expressions replace anonymous classes to define reusable behaviors in Java, using interfaces and the arrow syntax to implement single methods and pass two-argument actions.

  • lecture 5613:52

    Discover how to create and read Java documentation, from package and class summaries to method details and parameters, and learn to generate Javadoc with examples.

  • lecture 575:35

    Discover how default methods in interfaces provide default implementations, enabling evolution without breaking existing code, and see how lambdas work with one abstract method for functional interfaces.

  • lecture 583:02

    Develop Java skills beyond syntax by exploring Android app development, databases, concurrency, and desktop apps, while building with existing classes and seeking feedback.

  • lecture 599:47

    Learn to implement generic methods in Java that count item occurrences across types using a single algorithm, demonstrated with colors and integers via equals.

  • lecture 6016:03

    Learn how generic types use placeholders for the element type in collections like ArrayList, enabling type-safe get and set operations and avoiding downcasting.

  • lecture 618:04

    Explore Java generics using a box template with strings, employees, and objects, and learn how wild cards, extends, and super bounds enable processing boxes of different types.

  • lecture 626:21

    Install and download Android Studio, explore its editor, emulator, and SDK tools, and set up the Java Development Kit to start creating Android applications.

  • lecture 6313:48

    Learn to create your first Android project in Android Studio, choose the right Android version, and set a unique package name to ensure Play Store visibility.

  • lecture 642:16

    Change the Android Studio theme by navigating to settings and appearance, try the Dracula dark theme to reduce eye strain, or switch to a light theme like Aintree J.

  • lecture 659:00

    Update Android Studio and SDK tools to access new features and support old and new Android versions; use SDK Manager to download platforms, system images, and Google APIs for emulation.

  • lecture 6617:09

    Use the Android Virtual Device Manager to emulate Nexus 5 on API 23, then create custom hardware profiles and test across x86 and ARM architectures.

  • lecture 6714:25

    Explore the core Android Studio concepts, including project view, layout and resource management, design vs text preview, the component tree, properties, and debugging with Gradle and the Android Monitor.

  • lecture 6811:04

    Explore extensible markup language (XML) with a postcard example, showing how tags, attributes, and namespaces shape Android layout and enable designers and developers to separate design from code.

  • lecture 6911:04

    Learn how the Android activity lifecycle works, access layouts and views with the resources class, and use findViewById to reference buttons and text views in onCreate.

  • lecture 7011:06

    Learn to set an on click listener for a button, implement the on-click method via anonymous class or lambda, and use private member fields with the m prefix for encapsulation.

  • lecture 717:09

    Learn to handle an Android button click with the onClick attribute and a named method, and why reflection can be slower.

  • lecture 726:45

    Explore how layouts act as visual containers that hold and arrange elements, from linear to relative layouts, and see how view groups organize content and relate to activity structure.

  • lecture 736:13

    Learn to convert a linear layout from horizontal to vertical, group items in nested layouts, and compare gravity with layout_gravity for positioning.

  • lecture 746:13

    Discover how to arrange items in a linear layout by switching to vertical orientation and using nested layouts. Master gravity versus layout gravity to position elements inside the parent.

  • lecture 755:36

    Learn how layout weight in a linear layout allocates remaining space among elements, using horizontal or vertical orientation, with weight proportions, wrap_content, and 0dp semantics, to create responsive Android layouts.

Requirements

  • No requirements

Description

Explain Java in a very smooth and easy way, even professionalism

Java is among the most popular programming languages, mainly because of its versatility and compatibility. Java can be used for a large number of things, including software development, mobile applications, and development for large systems. It is also one of the most sought after and most profitable programming languages. After this course, you will be a Java professional and you can work anywhere.


This course explains Java in a distinct way that differs from the rest of the explanations, and the most important thing that distinguishes it:

  • Before explaining the topic, the course explains the problem that made us come up with this topic

  • Explains the theoretical part, followed by the practical part

  • In addition to many of the features included in the explanations

  • Deep understanding of the Java language

  • The ability to create a Java program, whatever its idea

  • You can use Java to create Android applications, desktop applications, games and much more.

  • The ability to understand Java theoretically and practically

Note: This course is specially designed for students who want to understand programming correctly, and not for students who just want to copy and paste without understanding the information.

If you have any questions regarding the topics covered in the Java course, feel free to ask. I am always happy to help.

Who this course is for:

  • For beginners to professional