Is Java worth learning?
Java is still a relevant programming language that shows no sign of declining in popularity and, for that reason, is worth learning. Most developers pick it up as their first programming language because it’s reasonably easy to learn.
Since the language has an English-like syntax with minimum special characters, Java could be learned in a short time span and used to build suitable applications.
Java is part of a family of languages that are heavily influenced by C++ (as well as C#), therefore learning Java offers vast benefits when learning these other two languages.
Critical areas in which Java is used:
- Building Android apps
Although there are other ways to make Android apps, most of the applications are written in Java using Google’s Android API. Although Android uses difference JVM and packaging methods, the code is still predominantly Java.
- Java web applications
Many government, healthcare, insurance, education, and defence departments have their web applications built in Java. A significant example of this is Google’s Gmail.
- Software tools
Many useful software and development tools are written and developed in Java, e.g. Eclipse, IntelliJ IDEA and NetBeans IDE.
- Scientific applications
Nowadays, Java is often the default choice for scientific applications, including natural language processing. The main reason for this is because it is safe, portable, maintainable and comes with better high-level concurrency tools than C++ or any other language.
Depending on your career prospects, Java can take you on different career paths. Whether you’re interested in building games, mobile applications, desktop applications, or web applications, Java is capable of working in these environments.
Regardless of whether or not you use Java in your career or job role, you’ll learn syntax, ideas, patterns, tools, styles, and idiosyncrasies that are readily transferable to other programming languages as well.
Learning Java will give you the opportunity to see how one language does something in comparison to another. To make learning of Java simpler, it is divided logically like below.
- Core Java
- Advanced Java
- Java Enterprise Edition (Java EE) formerly known as J2EE
- Angular JS
- JQuery with Json
- Jasper Reports
Introduction to Computer Languages
Need for Computer Languages
Java vs other languages
Platform dependency and it’s relation to Java Development Kit (JDK)
Introduction to Java
History of Java
Structure of Java-application
Introduction to Variable, Blocks and Methods:
- Introduction to variables and identifiers
- Type of variables
- Memory construction and destruction of variables
- Rules to create variables
- Naming conventions of variables
- Blocks introduction
- Methods introduction.
- Primitive types
- Reference types
- Classification of functions
First java application:
- Class keyword and its naming convention
- Class naming convention
- Why main has public access
- Why main has static modifier
- Why return type is void
- System.out.println() description
- Naming convention of methods and packages.
- Overloading main method
- Introduction to multi tasking and multi threading
- Drawbacks in multi tasking
- Creation of Thread
- Life cycle of Thread
- Threads Using Thread class
- Threads Using Runnable interfaces
- Constructors of Thread class.
- Time management in multi tasking and multi threading
- Priorities of threads.
- Naming to threads via constructors or via setters.
- sleep(), join(), wait(), notify(), notifyAll()
- Introduction GC
- Introduction to daemon threads
- Drawbacks of
- JVM memory increment
- Process class.
- Byte streams
- Character streams
- Object streams (Serialization)
- Why serialization
- Transient keyword
- What is persistent state of an object
- Marker interface
- Can we serialize subclass object if super class is not Serializable
- Can we serialize an object contains reference to non-Serializable object
- Byte array streams
- Data input streams
- Buffered streams
- Working with files
- Static inner classes
- Non-static inner classes
- Local inner classes
- Anonymous inner classes
- Introduction to Strings
- Creating objects to String
- String library functions
- Mutable objects
- Immutable objects
- Creating Immutable class
- Introduction to network programming
- Classes and interfaces of java.net packages
- Difference between TCP and UDP
- What is Port?
- What is IP address? Types?
- What is Socket?
- Finding IP address.
- Creating URLs
- Exception classes of java.net packages
- Reading data from URL’s openStream(from local server, global server)
- Writing data through URLConnection
- InetAddress class
- UDP classes introduction
- Simple chatting program
- Introduction to collections
- Introduction to generics
- Difference between arrays and Collections
- Collection interfaces
- List Interface
- Set Interface
- Map Interface
- Queue Interface
- Time management over collection classes
- Memory management over collection classes
- Deleting duplicate objects from collections
- equals() method
- Iterator class
- Enumeration class
- for-each loop
- influence of generics in collections
AWT, Applets and Swings:
- Introduction to AWT
- AWT library classes and interfaces
- Introduction to Applets
- Creating Applets
- Applet Life cycle
- Drawing shapes and colors in Applets
- Creating components
- Layout Management
- Event Listeners
- Calculator program
- Introduction to swings
- Swings API
- Light weight components(independent)
- Heavy weight components(native or dependant)
- Components creation
- Menu creation
- Sub menu creation
- Setting Listeners to components
- Project Creation using APPLETS, SWINGS, AWT and JDBC