
Advanced Java Programming Concepts and Techniques
Explore multithreading, collections, and exception handling to write efficient Java code.

Track
Software Development
Level
Intermediate
Language
English
Duration
30 hours
Learning Mode
Learn at ALC or at Home
Introduction
- Classify the various methods of the String class into distinct categories based on their functionalities.
- Describe the life cycle of a Java Applet, highlighting key events and their execution order.
- Identify and differentiate between AWT and Swing controls used in Java graphical user interfaces.
- Organize a comprehensive list of SQL statements and categorize them based on their purposes in database management.
- Reorganize the code of a multithreading program by implementing the Runnable interface instead of extending the Thread class.
- Summarize the key features and differences between StringBuffer and StringBuilder classes in Java.
- Discuss the implications of using Lambda expressions in Java programming and their benefits in terms of code conciseness.
- Explain the importance of handling mouse events in Java GUI programming and how to implement it effectively.
- Compare and contrast the usage of BufferedReader and InputStreamReader classes for reading from files in Java.
- Report the steps involved in creating a Database and Table using MySQL Workbench GUI, emphasizing best practices in database design.
What you'll learn ?
- By the end of the course, learners will be able to:
- Interpret fundamental concepts related to string manipulation in Java, demonstrating a comprehensive understanding of their applications.
- Illustrate proficiency in using essential methods provided by the String class for effective string handling and manipulation.
- Implement multithreading using both the Runnable interface and Thread class, considering thread names, priorities, and main method usage.
- Defend the application of Character and StringBuilder classes, highlighting their effectiveness in enhancing string operations and improving code efficiency.
- Transform programming skills to efficiently compare and manipulate strings, addressing diverse real-world scenarios.
- Paraphrase foundational knowledge of Database Management Systems (DBMS) and practical experience in creating, modifying, and querying databases using MySQL Workbench.
- Report the execution of SQL statements through the command prompt and graphical user interface (GUI) for effective database management.
- Implement JDBC coding proficiently for common SQL operations, including select, insert, delete, and update.
- Review the fundamentals of streams in Java, demonstrating the application of BufferedReader and InputStreamReader classes for efficient file input and output operations.
- Rewrite and illustrate the creation of Java applets, comprehending their life cycle, and highlighting the ability to handle events, parameters, and form projects.
Syllabus
Strings in Java
- Basics of strings in Java
- Important String class methods - Part 1
- Important String class methods - Part 2
- Comparing two strings
- Printing an object using toString() method
- StringBuffer & StringBuilder classes
- Finding length without using an in-built function
Methods of Character and StringBuilder classes
- Explanation of isletter, isDigit, isWhitespace, isUpperCase, isLowerCase
- Programs of isLetter, isDigit, isWhitespace, isUpperCase, isLowerCase
- Explanation of toUppercase, toLowercase, toString
- Programs of toUppercase, toLowercase, toString
- Explanation of reverse and delete methods
- Programs of reverse and delete methods
- Explanation of Insert, compareTo, compareToIgnoreCase
- Programs of Insert, compareTo, compareToIgnoreCase
Methods of Character and StringBuilder classes (continued)
- Explanation of getBytes, getChars(), lastindex, matches
- Programs of getBytes, getChars(), lastindex, matches
- Explanation of split, subSequence, valurOf
- Programs of split, sunSequence, valueOf
- Explanation of join, contains
- Programs of join and contains
Multithreading
- Basics of MultiThreading
- Implementing Runnable interface for Multithreading
- Extending Thread class for Multithreading
- Thread Names, Priorities, the parent thread
- Method main as a thread
- Anonymous inner classes Part - 1
- Anonymous inner classes Part - 2
- LAMBDA expressions
Basics of Databases & MySQL
- Introduction to DBMS & Databases
- Creating a Database and Table using MySQL Workbench GUI
- Creating a Database and Table at the command prompt
- Issuing SQL statements on Command prompt Part - 1
- Issuing SQL statements on Command prompt Part - 2
- Alter table queries
- Indexes
- Constraints
- Constraints (Contd)
JDBC (Java DataBase Connectivity)
- Basics of JDBC & its architecture
- Steps for JDBC coding
- Coding a JDBC program for SQL statement Select Part - 1
- Coding a JDBC program for SQL statement Select Part - 2
- Coding a JDBC program for SQL statement Insert
- Coding a JDBC program for SQL statement delete
- Coding a JDBC program for SQL statement update
Streams in Java
- Basics of streams
- Using BufferedReader and InputStreamReader classes
- Reading from a file
- Writing on a file
- Copying the content of a file into another
- Using BufferedReader class to read files
- Serialization of objects
- Deserialization of objects
Java Applets
- Basics of Java Applets
- Writing your first applet and understanding life cycle - Part 1
- Writing your first applet and understanding life cycle - Part 2
- Working with colors and fonts
- Passing parameters to an applet
- Passing parameters to an applet - execution
- First Applet in Netbeans
- Drawing figures
- Basics of event handing
- Handling mouse events - Part 1
- Handling mouse events - Part 2
AWT Controls
- AWT Controls - Part 1
- AWT Controls - Part 2
- Using Fonts and Colours in AWT Controls
- Positioning AWT Controls by setBounds() method
- Handling Button events - Part 1
- Handling Button events - Part 2
- Handling Checkbox events
- Handling Radio button events
- Handling Scrollbar Events Part - 1
- Handling Scrollbar Events Part - 2
- Handling List Events Part -1
- Handling List Events Part - 2
Applet Form Projects and Frame Projects
- First Example of an Applet form project
- Using AWT Controls from Palette Box
- Autogenerated Code
- Handling Button events through Applet forms
- Handling Checkbox events through Applet forms
- Handling Choice events through Applet forms
- Differences between Applets and Frames
- First Example of a Frame
- Getting more comfortable - Another example of a Frame
- Second Example of a Frame - Execution
- Changing the Title and Size of a Frame Window
- Changing the background color of a Frame window
Java Swings
- Basics of Swings & differences from Applets
- First sample program of swings Part - 1
- First sample program of swings Part - 2
- Using setBounds() and setFonts() with swing controls
- Using JCheckBox class object
- Creating a tree structure using JTree class object
- Handling events of JButton objects
- Handling events of JCheckBox object
- Handling events of JRadioButton objects
- First Sample swing Program in Netbeans
- Using Swing controls in JApplet project
- Event Handling in Japplet
- Using JOptionPane class for message dialog boxes
Working with JApplet and JFrame Form Projects
- First sample JApplet Form swing
- More stuff on JApplet Form swings
- First Example program of JFrame Project
- Working with DateChooser - Part 1
- Working with DateChooser - Part 2
- Creating a MenuBar - Menu objects, MenuItem Objects
- Handling Events of MenuItems - Part 1
- Handling Events of MenuItems - Part 2
Work-Centric Approach
The academic approach of the course focuses on ‘work-centric’ education. With this hands-on approach, derive knowledge from and while working to make it more wholesome, delightful and useful. The ultimate objective is to empower learners to also engage in socially useful and productive work. It aims at bringing learners closer to their rewarding careers as well as to the development of the community.
- Step 1: Learners are given an overview of the course and its connection to life and work
- Step 2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
- Step 3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
- Step 4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
- Step 5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
- Step 6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
- Step 7: Learners are engaged in appreciation of real-life case studies developed by the experts.
- Step 8: Learners are encouraged to proceed from appreciation to imitation of the experts.
- Step 9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
- Step 10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
- Step 11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
- Step 12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!