Learn Core Java with R. Nageswara Rao - The Best Book for Beginners and Professionals
Core Java Book By Nageswara Rao Pdf 129: A Comprehensive Guide for Beginners and Professionals
If you are looking for a book that can teach you everything you need to know about Core Java, then you have come to the right place. In this article, we will review one of the most popular and widely used books on Core Java, written by Nageswara Rao. We will also show you how to download the book in PDF format for free.
Core Java Book By Nageswara Rao Pdf 129
Introduction
Java is one of the most popular and versatile programming languages in the world. It is used for developing applications for various platforms, such as desktop, web, mobile, and embedded systems. Java is also known for its portability, performance, security, and reliability.
However, learning Java can be challenging for beginners and professionals alike. There are many concepts and features that need to be understood and mastered. That's why having a good book that can guide you through the learning process is essential.
What is Core Java?
Core Java is the basic and fundamental part of Java programming language. It covers the core concepts and principles that are common to all Java applications. Core Java includes topics such as:
The syntax and structure of Java
The data types and operators
The control statements and loops
The methods and classes
The inheritance and polymorphism
The interfaces and abstract classes
The packages and access modifiers
The exceptions and assertions
The threads and concurrency
The collections and generics
The input/output streams
The networking and sockets
The database connectivity and JDBC
Core Java is also known as Java SE (Standard Edition), which is the foundation for other Java technologies, such as Java EE (Enterprise Edition) and Java ME (Micro Edition).
Who is Nageswara Rao?
Nageswara Rao is a renowned author, trainer, and consultant in the field of Java programming. He has more than 20 years of experience in teaching and developing software using Java. He has authored several books on Java, such as:
Core Java: An Integrated Approach
Advanced Java: JDBC, Servlets, JSPs And Swing
Java Interview Questions And Answers
Java 8 Programming Black Book
Nageswara Rao is also the founder and CEO of Dreamtech Press, a leading publisher of technical books in India. He has trained thousands of students and professionals in various institutes and organizations across the country. He is also a frequent speaker at various seminars and conferences on Java and related topics.
Why should you read this book?
Core Java Book By Nageswara Rao Pdf 129 is one of the best books on Core Java available in the market. It is suitable for both beginners and professionals who want to learn or improve their skills in Java programming. Here are some of the reasons why you should read this book:
Features of the book
Covers all the topics of Core Java
This book covers all the topics of Core Java in a comprehensive and systematic manner. It follows the latest syllabus and exam pattern of various universities and certification bodies, such as Oracle, Sun, IBM, etc. The book is divided into 16 chapters, each covering a specific topic of Core Java. The chapters are as follows:
Chapter
Topic
1
Basics of Java
2
Object-oriented programming
3
Exception handling
4
Multithreading
5
Collections
6
Generics
7
Input/output streams
8
Networking
9
JDBC
10
Lambda expressions and functional interfaces
11
Date and time API
12
Nashorn JavaScript engine and scripting API
13
JShell and REPL (Read-Eval-Print Loop)
14
Modules
15
Annotations
16
Reflection API
Basics of Java
In this chapter, you will learn the basics of Java programming language, such as:
The history and features of Java
The structure and components of a Java program
The data types and variables in Java
The operators and expressions in Java
The control statements and loops in Java
The methods and parameters in Java
The command-line arguments and standard input/output in Java
The documentation comments and javadoc tool in Java
You will also learn how to write, compile, and run a simple Java program using an IDE (Integrated Development Environment) or a text editor and a command prompt.
Object-oriented programming
In this chapter, you will learn the concepts and principles of object-oriented programming (OOP) in Java, such as:
The objects and classes in Java
The constructors and destructors in Java
The inheritance and polymorphism in Java
The interfaces and abstract classes in Java
The packages and access modifiers in Java
The static and final keywords in Java
The inner and nested classes in Java
The enums and varargs in Java
You will also learn how to design and implement a simple OOP application using Java.
Exception handling
In this chapter, you will learn how to handle errors and exceptions in Java, such as:
The difference between errors and exceptions in Java
The types and hierarchy of exceptions in Java
The try-catch-finally blocks in Java
The throw and throws keywords in Java
The checked and unchecked exceptions in Java
The custom exceptions in Java
The assertions in Java
The best practices for exception handling in Java
You will also learn how to use the try-with-resources statement and the multi-catch clause in Java.
Multithreading
In this chapter, you will learn how to create and manage multiple threads of execution in Java, such as:
The concept and benefits of multithreading in Java
The thread class and runnable interface in Java
The thread lifecycle and states in Java
The thread priority and scheduling in Java
The thread synchronization and communication in Java
The deadlock and livelock situations in Java
The wait, notify, and notifyAll methods in Java
The join, yield, sleep, interrupt, and daemon methods in Java
The executor framework and thread pools in Java
The concurrent collections and atomic variables in Java
The locks, conditions, semaphores, latches, barriers, phasers, exchangers, futures, promises, completable futures, callables, runnables, suppliers, consumers, predicates, functions, actions, etc.
You will also learn how to use the lambda expressions and streams API to create parallel programs using functional programming style.
Collections
In this chapter, you will learn how to use the collections framework in Java to store and manipulate groups of objects, such as:
The concept and advantages of collections in Java
The collection interface and its subinterfaces: List, Set, Queue, Deque
The map interface and its implementations: HashMap, LinkedHashMap, TreeMap
The list interface and its implementations: ArrayList, LinkedList
The queue interface and its implementations: PriorityQueue, ArrayDeque
The sorted set and sorted map interfaces: NavigableSet, NavigableMap
The comparator and comparable interfaces for sorting collections
The iterator and list iterator interfaces for traversing collections
The for-each loop and the enhanced for loop for iterating over collections
The collections class and its utility methods for manipulating collections
The arrays class and its utility methods for converting arrays to collections and vice versa
You will also learn how to use the stream API to perform various operations on collections, such as filtering, mapping, reducing, grouping, partitioning, sorting, etc.
Generics
In this chapter, you will learn how to use generics in Java to create generic classes, methods, and interfaces that can work with different types of objects, such as:
The concept and benefits of generics in Java
The syntax and rules of generics in Java
The type parameters and type arguments in Java
The generic classes and their instantiation in Java
The generic methods and their invocation in Java
The generic interfaces and their implementation in Java
The bounded type parameters and wildcards in Java
The type inference and type erasure in Java
The generic algorithms and collections in Java
The limitations and pitfalls of generics in Java
You will also learn how to use the var keyword to declare local variables with inferred types.
Input/output streams
In this chapter, you will learn how to use the input/output (I/O) streams in Java to read and write data from and to various sources and destinations, such as:
The concept and classification of I/O streams in Java
The byte streams and character streams in Java
The input stream and output stream classes in Java
The reader and writer classes in Java
The buffered streams and unbuffered streams in Java
The file input stream and file output stream classes in Java
The file reader and file writer classes in Java
The data input stream and data output stream classes in Java
The object input stream and object output stream classes in Java
The print stream and print writer classes in Java
The scanner class and the console class in Java
The serialization and deserialization of objects in Java
The transient and serializable keywords in Java
The externalizable interface and its methods in Java
The file class and its methods for manipulating files and directories
You will also learn how to use the nio package to perform non-blocking I/O operations using channels, buffers, selectors, etc.
Networking
In this chapter, you will learn how to use the networking API in Java to create network applications that can communicate over the internet or a local area network (LAN), such as:
The concept and terminology of networking
The TCP/IP protocol suite and its layers
The server socket class and its methods for accepting client connections
The datagram socket class and its methods for sending and receiving datagrams
The datagram packet class and its methods for encapsulating data in packets
The URL class and its methods for working with uniform resource locators
The URL connection class and its methods for establishing connections to URLs
The HTTP URL connection class and its methods for handling HTTP requests and responses
The URI class and its methods for working with uniform resource identifiers
The inet address class and its methods for working with IP addresses
The inet 4 address and inet 6 address classes for working with IPv4 and IPv6 addresses
The network interface class and its methods for working with network interfaces
You will also learn how to use the RMI (Remote Method Invocation) API to create distributed applications that can invoke methods on remote objects.
JDBC
In this chapter, you will learn how to use the JDBC (Java Database Connectivity) API to connect to various databases and perform CRUD (Create, Read, Update, Delete) operations on them, such as:
The concept and architecture of JDBC
The JDBC drivers and their types
The connection interface and its methods for establishing connections to databases
The statement interface and its methods for executing SQL statements
The prepared statement interface and its methods for executing parameterized SQL statements
The callable statement interface and its methods for executing stored procedures
The result set interface and its methods for retrieving data from databases
The result set metadata interface and its methods for obtaining information about result sets
The database metadata interface and its methods for obtaining information about databases
The transaction management in JDBC
The batch processing in JDBC
The row set interface and its subinterfaces: JdbcRowSet, CachedRowSet, WebRowSet, JoinRowSet, FilteredRowSet
You will also learn how to use the JPA (Java Persistence API) to map Java objects to database tables using annotations.
Lambda expressions and functional interfaces
In this chapter, you will learn how to use lambda expressions and functional interfaces in Java to create anonymous functions that can be passed as arguments or returned as values, such as:
The concept and syntax of lambda expressions in Java
The functional interfaces and their types in Java
The predefined functional interfaces in the java.util.function package: Predicate, Consumer, Supplier, Function, UnaryOperator, BinaryOperator, BiPredicate, BiConsumer, BiFunction
The method references and constructor references in Java
The lambda scopes and variable capture in Java
The optional class and its methods for handling null values in Java
You will also learn how to use the stream API to create and process streams of data using lambda expressions and functional interfaces.
Date and time API
In this chapter, you will learn how to use the date and time API in Java to work with dates, times, instants, durations, periods, zones, offsets, formats, etc., such as:
The concept and problems of date and time handling in Java
The java.time package and its classes and interfaces: LocalDate, LocalTime, LocalDateTime, Instant, Duration, Period, ZoneId, ZoneOffset, ZonedDateTime, OffsetDateTime, OffsetTime
The temporal interface and its subinterfaces: TemporalAccessor, TemporalAdjuster, TemporalAmount, TemporalQuery
The temporal field interface and its implementations: ChronoField, WeekFields
The temporal unit interface and its implementations: ChronoUnit
The date time formatter class and its methods for formatting and parsing date and time objects
The date time formatter builder class and its methods for creating custom date and time formatters
The date time parse exception class and its methods for handling parsing errors
The chrono local date interface and its implementations: HijrahDate, JapaneseDate, MinguoDate, ThaiBuddhistDate
The chrono local date time interface and its implementations: HijrahDateTime, JapaneseDateTime, MinguoDateTime, ThaiBuddhistDateTime
The chrono zoned date time interface and its implementations: HijrahZonedDateTime, JapaneseZonedDateTime, MinguoZonedDateTime, ThaiBuddhistZonedDateTime
The chrono period interface and its implementations: HijrahPeriod, JapanesePeriod, MinguoPeriod, ThaiBuddhistPeriod
The chrono unit enum and its constants for representing chronological units
The clock class and its methods for obtaining the current time from various sources
The year class and its methods for representing years
The year month class and its methods for representing year-month combinations
The month day class and its methods for representing month-day combinations
You will also learn how to use the legacy classes such as Date, Calendar, TimeZone, etc. and how to convert them to the new classes using the toInstant() and from() methods.
Nashorn JavaScript engine and scripting API
In this chapter, you will learn how to use the Nashorn JavaScript engine and scripting API in Java to execute JavaScript code from Java applications or vice versa. You will also learn how to:
Create a script engine manager and a script engine object
Evaluate JavaScript code from a string or a file
Bind Java objects to JavaScript variables
Invoke JavaScript functions from Java code
Access Java classes and objects from JavaScript code
Use the jjs command-line tool to run JavaScript code
Use the Java shell (JShell) to interact with JavaScript code
Use the javax.script package and its classes and interfaces: ScriptEngineManager, ScriptEngine, ScriptEngineFactory, ScriptContext, Bindings, ScriptException, Compilable, CompiledScript, Invocable, etc.
You will also learn how to use the JavaFX API to create graphical user interfaces using JavaScript and HTML.
JShell and REPL (Read-Eval-Print Loop)
In this chapter, you will learn how to use the JShell tool and the REPL (Read-Eval-Print Loop) feature in Java to interactively evaluate Java expressions and statements without writing a full Java program. You will also learn how to:
Launch and exit the JShell tool
Enter and execute Java expressions and statements in JShell
Use JShell commands and shortcuts to control the JShell session
Declare and use variables, methods, classes, and imports in JShell
Edit and re-execute snippets of code in JShell
Save and load JShell sessions to and from files
Configure and customize JShell using startup scripts and options
Use JShell APIs to programmatically access and manipulate JShell from Java code
You will also learn how to use the JShell tool to test and debug Java code quickly and easily.
Modules
In this chapter, you will learn how to use modules in Java to create modular applications that are composed of self-contained and reusable units of code. You will also learn how to:
The concept and benefits of modularity in Java
The structure and components of a module in Java
The module descriptor file (module-info.java) and its contents
The module path and the class path in Java
The module system and its components: ModuleFinder, ModuleLayer, ModuleReference, ModuleDescriptor, etc.
The module declarations and directives: module, requires, exports, opens, provides, uses, etc.
The module resolution and accessibility rules in Java
The unnamed module and the automatic module in Java
The service provider interface (SPI) and the service loader class in Java
The modular JAR file and its creation using the jar tool
The modular application and its compilation using the javac tool
The modular application and its execution using the java tool
The modular application and its packaging using the jlink tool
The modular application and its documentation using the javadoc tool
You will also learn how to use the jdeps tool to analyze the dependencies of a modular application.
Annotations
In this chapt