
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
In this course, we’ll cover the fundamental constructs of Java programming language and the basics of object-oriented programming.
The topics are all up to date according to the most recent version of Java, and we’ll also learn about utilizing an IDE or integrated development environment.
Tarun has authored a book titled "Java EE to Jakarta EE 10 Recipes: A Problem-Solution Approach to Enterprise Java" which was published by Apress publications in the year 2022. The book covers all topics related to Enterprise Java development, such as JavaServer Faces, Enterprise JavaBeans, Contexts and Dependency Injection, etc.
Tarun is also an active member of the Java community and has been contributing to various online forums and websites such as Stack Overflow, Quora, etc. I have also presented at various conferences and meetups on topics related to Java and J2EE development.
You can find more details and connect with him on LinkedIn (taruntelang)
He has the following certifications:
- Oracle Certified Programmer for the Java Platform, Standard Edition 6;
- Certified Development Consultant for Web Application Development Focus JAVA;
- Certified Application Management Expert for SAP Solution Manager 4.0 End to End Root Cause Analysis;
- NASBA Certification on Remote Work; and more...
Tarun is an experienced Enterprise Architect, Agile Enthusiast, Web Development Expert, and Programmer. His areas of interest include Enterprise Solutions, Databases, Web, Mobile & Cloud Computing.
Tarun Telang is a hands-on technologist with extensive experience in the design and implementation of multi-tiered, highly scalable software applications. He has been part of several well-known companies such as Microsoft, Oracle, Polycom, and SAP. He has over 16 years of expertise in architecting and developing business applications.
He began his career as an enterprise Java developer at SAP, where he has developed distributed application software for big firms. He got his start with Enterprise Session Beans and Message Driven Beans, as well as instrumenting enterprise applications' configuration and management using the Java Management Extensions (JMX) technology.
He quickly mastered various enterprise technologies like Enterprise Beans, Java Management Extensions, Servlets, and Server Pages technologies, and in his first year as a developer, he became Sun Certified Programmer for the Java Platform, Standard Edition 6; and SAP Certified Development Consultant for the SAP NetWeaver Java Web Application Server (which was a Java EE 5 compliant application server).
He also gained expertise in XML technologies like XSLT and XSD. He developed several solutions using Session Beans and Message Driven Beans to handle message-oriented communications across numerous systems. In 2007, Tarun was named SAP Mentor and Community Influencer for his articles and blog posts on emerging technologies and for promoting innovative solutions in the SAP Developer Community. He frequently writes articles on Java and related technologies. Tarun has also authored multiple online courses, including a best-selling course on YAML data serialization language.
He has presented technical lectures at several developer conferences, including SAP TechEd and the Great Indian Developer Summit. It has been more than 15 years since he has presented at conferences about software technology, actively publishing technical papers and blogs to assist everyone in better grasping the fundamentals of software technology. Tarun is very passionate about software technology and has also developed cloud-based video conferencing applications using a microservices architecture with the Spring framework. He also has experience working with Persistence APIs and Hazelcast framework for building REST-based services.
Later, he led the development of many end-to-end cloud-based solutions using various architectural patterns, including Microservices and Service Oriented Architecture. Tarun has gained expertise in Web, Mobile, and Cloud technologies. He also thoroughly applied agile methodologies, including user-centric & mobile-first designs for managing projects with cross-functional teams in multiple geographies.
Having previously worked and lived in Waterloo(Ontario), Canada, and Heidelberg, Germany. Tarun is currently based out in Hyderabad, India. You can follow him on LinkedIn or Twitter (@taruntelang).
So let's start with basic questions such as: What makes a programmer Proficient? Why should people strive to become proficient at their craft? Well! there could be too many answers fo the above question. But I will cover the most obvious ones below.
First, being a proficient Java developer doesn't mean that one has to write every line of code from scratch. One can use open-source or third-party libraries/frameworks for their development.
By proficiency, we mean not only how good your coding skills are but also the knowledge of how best to implement them using java programming language, its Frameworks, and Libraries. There is always a better way of doing it with java.
A proficient programmer is not restricted to a specific area of expertise, but he/she knows it all! That means they have good knowledge of their chosen coding language and its frameworks. Furthermore, one should be aware of the latest features added in Java, i.e., lambda expressions, functional interfaces, and streams APIs.
Apart from knowing his programming language inside out, a proficient programmer also has a good understanding of computer science fundamentals such as design patterns, and code maintainability and should be able to write clean codes.
Who is this class for?
This course is aimed at developers of every level, from beginner to advanced, who want to improve their Java skills and get up to date with most of the addition to the language specification in Java 17. This course is for:
Programmers, Developers, or Software Engineers
Managers,
Software Leads / Architects looking to get their hands dirty with Java.
Or anyone who is looking to learn Java
Are there any course requirements or prerequisites?
Having prior experience with any programming or scripting language.
Eagerness to learn and practice Java coding.
At the end of the course, students can understand and use most of the Java syntax, including the latest additions to Java language in version 17. This course aims to keep students updated with the latest Java language features that have come out recently and will enable you to practice them.
After going through this course, in addition to fluency with the Java programming language, students could also answer common Java interview questions like - What are various editions of Java? What makes it a Platform independent?
In this section, you learn about what will be covered in this course.
Java is a modern, high-level, general purpose programming language to build applications for:
desktop,
mobile (including Google Android),
embedded systems,
data processing,
games,
web,
distributed enterprise applications,
IoT devices (like Raspberry Pi),
and many more...
The java platform is used in a wide variety of computing platforms, from embedded devices and mobile phones to enterprise servers and advanced computers.
It was designed as an object-oriented programming (OOP) language, but currently, it supports multiple programming paradigms (not just OOP); we will learn more about this later in this course.
It is a great programming language to learn as it is designed to work on almost all platforms. Java is a technology that allows code to be written once and run on multiple platforms.
More than 3 billion devices run java applications.
In this section, you will get an overview about Java
History of Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. It was designed in the early 1990s by James Gosling, a computer scientist from Sun Microsystems; later, it was acquired by Oracle, so currently, it is owned by Oracle.
The initial goal was to create a modern object-oriented language that takes advantage of being platform-independent. This means the same program can be run on various computers without any change, even if these are based on different hardware platforms and operating systems.
Why Java?
Java is a good choice for general-purpose programming, especially when cross-platform compatibility is needed.
Java has the following characteristics:
Secure and platform-independent - It is secure and platform-independent so that you can run java programs on almost all kinds of computers and operating systems (including macOS, Linux, and Windows).
Portable, robust and dynamic - able to fit any application's needs. You only need to write the program once to be able to run it on several platforms (Write Once, Run Anywhere). This makes it portable.
Java has a huge community of around 8 million developers worldwide. It is one of the most popular programming languages.
Java’s portability makes it a popular choice for server computers, which store data for other systems and software programs.
The main disadvantage of using Java is that it can be relatively slow compared to other languages, such as C or C++. This is especially true on platforms requiring bytecode interpretation, as with most smartphones and tablets.
Key characteristics of Java
Some key characteristics include:
Java is a compiled language. This means that the program is first written in a human-readable form, called source code, and then converted into a machine-readable form, called bytecode. A Java Virtual Machine (JVM) can run bytecode on any computer.
-Java is an object-oriented language. Everything in Java is an object, including numbers and functions.
-Java is a platform-independent language. This means that the same program can be run on various computers without any change, even if these computers are based on different hardware platforms and operating systems.
Java Platform
Java is not only a programming language but also a development platform. It derives much of its syntax from C and C++ but has simpler syntax and provides fewer low-level facilities.
Java Editions
The Java platform is used in various computing platforms, from embedded devices and mobile phones to enterprise servers and advanced computers.
The Java programming language was initially designed for interactive television, but it was too advanced for the digital cable television industry at the time. It has since become one of the most popular programming languages, particularly for client-server web applications. For this reason, platforms (sets of APIs) are being created to support the language.
Java Platform, Standard Edition (Java SE) – core Java Platform and libraries. This is a set of APIs that can be used by developers to create applications for desktop computers and servers. Various elements of the Java SE platform are available under different licenses. The main license is the GNU General Public License.
Java Embedded – a subset of Java SE designed for embedded devices (like smart cards). This was earlier known as Java Platform, Micro Edition (ME), which allows for creating applications that can run on various devices. This contains a java virtual machine implementation for devices with limited memory and a reduced instruction set, such as mobile phones or car navigation systems.
Java Platform, Enterprise Edition (Java EE) – used for building web-based applications for large-scale or multi-tier architectures. Java EE usually uses XML for describing various resources (components, data sources, etc.) used by the application. These resources are packaged into a file with a .ear extension and deployed to an application server that reads these resources at runtime and provides the necessary backend functionality.
In this lecture, you will learn about Java Architecture
Learn about Java Architecture
Learn about Java Runtime Environment
Learn about the memory management feature of Java Runtime Environment.
Learn about Java garbage collection.
This section will teach you about the Java Platform and its various editions suitable for different development environments.
In this lecture, we will learn about how to download and install Java Development Kit (JDK).
This lecture provides a comprehensive overview of the most popular Integrated Development Environments (IDEs) tailored for Java programmers. You will gain valuable insights into the features, functionalities, and unique strengths of IDEs such as Eclipse, IntelliJ IDEA, NetBeans and Visual Studio Code. Whether you're a novice or an experienced Java developer, this session offers essential guidance for selecting the IDE that best suits your programming needs.
This lecture teaches you about what is an IDE and why it is required.
Learn how to download and install IntelliJ IDEA Community Edition IDE for Java Development.
Learn to write a simple java program.
In this section, you will learn about the anatomy of a Java Program and understand its syntax.
This lecture dissects the fundamental components that comprise a Java program, offering a step-by-step exploration of its structure, syntax, and execution flow.
In this lecture, you will learn about how to compile a Java Program.
Learn about how to run the Java Program.
Learn about how to compile a Java Program and commands to run the Java Program.
In this section, you will get started with programming in Java.
Learn about Java Language Basics in this section.
Learn about Java Classes.
Learn about packages in Java
Learn about importing a package in Java.
Learn about using wildcards in import statements.
Learn about the static import statement in Java.
Creating a Java program using Intellij IDEA, this lecture also demonstrates creating a class and the use of packages to organize classes including static imports and using wildcards.
In this section, you will learn about java language basics.
In this lecture, you will learn about how to write various types of comments in Java.
Learn about how to write comments in Java.
Learn about keywords or reserved words in Java.
Learn about variables in Java.
Learn about literals in Java.
Learn about constants in Java.
Learn about identifiers in Java.
Learn about scope of an identifier in Java.
In this section, learn about local and global scope in Java.
Learn about data types in Java.
Learn about constants in Java.
Learn about bitwise operators in Java.
Learn about precendence order of various operators in Java.
Learn about type casting in Java.
In this section, you will learn about type conversion in Java.
Learn about wrapper classes and the concept of autoboxing / unboxing in Java.
In this section, I will be covering Java's basic syntax. After going through this video, you will learn the following topics
Conditional Operators
Conditional Statements
if Statement
if ... else statement
Nested if ... else statement
else if statement
Logical Operators
Ternary Operator
switch statement
Loops
for loop
break and continue statement
while loop
for ... each loop
Arrays
Creating an Array
Initialization of an Array
Multidimensional Arrays
Functions / Methods
Defining a new method
The return type
Live Coding
In this section, you will learn how to iterate over a loop.
In this section, you will learn about various programming paradigms.
In this section, you will learn about Object Oriented Programming constructs in Java.
In this section, you will learn about the concept of inheritance in Java.
Learn about the fundamentals of object-oriented programming
In this section, you will learn about exception handling in Java.
What is this class about?
In this course, we'll look into some fundamental constructs of the Java programming language. The topics are all up to date according to the most recent version of Java, and we'll also examine utilizing an IDE or integrated development environment.
This is a comprehensive course for beginners or anyone looking to refresh their programming skills using Java. This is a great course to familiarize yourself with Java language syntax and core concepts.
Who is this class for?
This course is aimed at developers of every level, from beginner to advanced, who want to improve their Java skills and get up to date with most of the addition to the language specification in Java 17. This course is for:
Programmers, Developers, or Software Engineers
Managers,
Software Leads / Architects looking to get their hands dirty with Java.
Or anyone who is looking to learn Java
What will the students achieve?
At the end of the course, students can understand and use most of the Java syntax, including the latest additions to Java language in version 17. This course aims to keep students updated with the latest Java language features that have come out recently and will enable you to practice them.
After going through this course, in addition to fluency with the Java programming language, students could also answer common Java interview questions like - What are various editions of Java? What makes it a Platform independent?