0% found this document useful (0 votes)
24 views5 pages

Core Java Teaching Guidelines PG-DAC

This document outlines a course on core Java technologies over 17 classroom and 34 lab sessions. It covers Java fundamentals, OOP concepts, collections, concurrency, IO, reflection and JDBC. Evaluation includes theory, lab and internal exams. Suggested textbooks and assignments involving coding exercises are also listed.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views5 pages

Core Java Teaching Guidelines PG-DAC

This document outlines a course on core Java technologies over 17 classroom and 34 lab sessions. It covers Java fundamentals, OOP concepts, collections, concurrency, IO, reflection and JDBC. Evaluation includes theory, lab and internal exams. Suggested textbooks and assignments involving coding exercises are also listed.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

ACTS, Pune

Suggested Teaching Guidelines for


Java Technologies-I (Core Java)–PG-DAC August 2018
Duration: 36 classroom hours +34 lab hours ( 70hrs)

Objective: To introduce the student to Core Java Technologies

Prerequisites: Knowledge of object oriented programming

Evaluation method: Theory exam– 40% weightage


Lab exam – 40% weightage
Internal exam– 20% weightage

List of Books / Other training material

Text Book:
1. Java - The Complete Reference by Herbert Schildt / Tata Mcgraw Hill Education
2. Java Server Programming (J2EE 1.7 Edition) Black Book by Dreamtech Software Team

Reference:
1. Java 8 Programming Black Book by Dreamtech Press
2. Core Java : Fundamentals - Volume 1 Gary Cornell, Cay S. Horstmann/ Pearson
3. Programming in Java by Sachin Malhotra, Saurabh Choudhary / Oxford University Press
4. Core Java : Advanced Features - Volume 2 Gary Cornell, Cay S. Horstmann/ Pearson
5. Beginning Java 2 by Ivor Horton; Wrox Publication
6. The Complete Reference Java Eight Edition, Herbert Schidt/ TMH
7. Object-Oriented Analysis and Design with applications by Booch
8. Core Java 8 for Beginners by Sharanam Shah, Vaishali Shah / Shroff Publishers &
Distributors
9. Murach’s Java Programming 4th edition by Joel Murach / Shroff Publishers &
Distributors
10. Advanced Java programming by Uttam K Roy / Oxford University press
11. Sun Certified Enterprise Architect For Java EE Study Guide by Cade, 2nd Edition
(Paperback)
12. Programming in Java by Sachin Malhotra, Saurabh Choudhary / Oxford University Press
13. Professional Java EE Design Patterns by Murat Yener, Alex Theedom, Reza
Rahman (Paperback)

Session 1:
Lecture
• Java 8 Basics :Overview of Java, Features of Java, Scope of variables
• JDK and its usage (Java Compiler, Java Runtime, Java Debugger, Java doc)
• Working with Data Types: Structure of a Java Class, Importing Packages, Difference
between object reference variables and primitive variables, how to read or write to object
fields)

Session 2:
Lecture
• Object's lifecycle(creation, reassignment, garbage collection: new, finalize)
• Wrapper classes (Boolean, Double and Integer)

PG-DAC, Java Technologies Page 1 of 5


ACTS, Pune

Suggested Teaching Guidelines for


Java Technologies-I (Core Java)–PG-DAC August 2018

• Operators (Unary, Binary, Arithmetic, Assignment, Compound, Relational, Logical,


Equality) and Control Statements (if, if-else, for, while, switch, do-while, break and
continue, ternary constructs)

Session 3:
Lecture
• Packages and classpath
• Arrays
• Understanding of String Class, StringBuilder Class, StringBuffer class
• Methods and Encapsulation: Methods, Access Modifiers, Method Overloading, Passing
Data, Creating Constructors, Immutable Classes

Assignment – Lab:
Get yourself acquainted with java environment. Build a class Emp, which contains details about
the employee and compile and run its instance

Assignment – Reading:
Study the book Java FAQ

Assignment – Tutorial:
Compare syntactical similarities and dissimilarities between Java and C++

Session 4:
Lecture
• Class Inheritance, Abstract Classes, Inner Classes, Interface and Implementation
classes.
• Understanding Polymorphism: Object vs Reference, Object Casting, Virtual Methods,
Method Overriding

Assignment – Lab:
Create an inner class for a manager, which contains information about the manager. Use the
appropriate interfaces. Create an anonymous inner class for Tech. Members using the Session
one assignment

Session 5:
Lecture
• Exception-Handling: Basics, Role of Exceptions, Types
• Using try and catch, Multiple Catch, Nested try (throw, throws, finally)
• Built-in Exceptions, Runtime Exceptions Checked Exceptions, Errors
• Creating own Exception Subclasses

Assignment – Lab:
Create a user defined exception to check whether your employee exist in your data structure
and using the catch and finally block. Redeem an appropriate solution.

Session 6:
Lecture
• Enumerations, Auto boxing, and Annotations

PG-DAC, Java Technologies Page 2 of 5


ACTS, Pune

Suggested Teaching Guidelines for


Java Technologies-I (Core Java)–PG-DAC August 2018

• Lambda Expressions
• Java 8 New Features

Session 7 & 8:
Lecture
• Java API: [Link], [Link], [Link]

Assignment – Lab:
Create an appropriate data structures to store your employee object and use the
[Link] properties.

Session 9 & 10:


Lecture
• Generics and Collections

Assignment – Lab:
1. Implement String class and util package
2. Using the collection framework define an appropriate interface to your above application

Assignment – Lab:
Create a user defined exception to check whether your employee exist in your data structure
and using the catch and finally block. Redeem an appropriate solution.

Session 11:
Lecture
• Java NIO (NIO 2) Overview
• NIO classes: Fundamentals, Path Interfaces, Manage metadata of a file or directory,
• Byte Buffers & Channels
• UDP, TCP and IP
• Communication with TCP/IP Protocol

Assignment – Lab:
• Implement to Send File Contents (two way communication Java)
• A Simple Java TCP Server and TCP Client

Session 12:
Lecture
• Java Concurrency: Using threads in Java, Life cycle of thread
• Advantages and issues
• Thread class, thread groups
• The Runnable interface

Session 13:
Lecture
• Synchronization, Inter-Thread communication
PG-DAC, Java Technologies Page 3 of 5
ACTS, Pune

Suggested Teaching Guidelines for


Java Technologies-I (Core Java)–PG-DAC August 2018

• Executor Framework overview

Assignment – Lab:
Using Multi-Threading create concurrent java application , to write data to file in a thread safe
manner.
Apply Thread safety to Collection Framework API classes

Session: 14 & 15
Lecture
• The [Link] Package
• Files
• Byte Streams and Unicode Character Streams
• Persistence of objects
• Object Serialization Methods

Assignment – Lab:
Make your above Employee, manger classes objects persistent.

Session: 16
Lecture: Reflection in Java
• Java Reflection Classes, Methods, Getter Setters, Constructors, Annotations, generics,
Arrays, Dynamic method invocation

Assignment – Lab:
Create a new array, whose size and component type are not known until runtime, and then
modify the array's components

Session: 17: Java Virtual Machine


Lecture
• What is a Java Virtual Machine?
• The Lifetime of a Java Virtual Machine
• The Architecture of the Java Virtual Machine
• Java Mail
• [Link] Class ContentType
• Method
• [Link], getBaseType()
• [Link], getParameter([Link] name)

Assignment – Lab
• Configuring JavaMail API and sending test mails
• Implement to send multiple mails, mails with attachments, calendar appointment etc.

PG-DAC, Java Technologies Page 4 of 5


ACTS, Pune

Suggested Teaching Guidelines for


Java Technologies-I (Core Java)–PG-DAC August 2018

Session 18:
Lecture
• Introduction of JDBC API
• JDBC Architecture
• JDBC Drivers
• Drivers, Connection, Statement , PreparedStatement and Result Set interfaces and their
relationship to provider implementations
• Writing JDBC Application along with DAO & POJO Layers
• Stored Procedures and functions invocation

PG-DAC, Java Technologies Page 5 of 5

Common questions

Powered by AI

Polymorphism in Java allows object references to point to objects of different classes through inheritance. With polymorphism, a single reference can dynamically reference objects of various subclasses, providing flexibility and reusability in programming. Object casting, on the other hand, involves explicitly converting an object reference to a different class type manually. While references enable dynamic method invocation and polymorphic behavior naturally, casting is necessary when accessing subclass-specific attributes or methods from a reference of a superclass type .

Exception handling in Java improves robustness and reliability by managing unexpected events that disrupt program flow. The try-catch block captures exceptions thrown during execution, allowing the application to gracefully recover or notify the user instead of crashing. The finally block ensures that cleanup code runs irrespective of exception occurrence, maintaining resource management integrity, such as closing files or releasing resources, to prevent resource leaks and inconsistent states .

Encapsulation in Java is achieved through the use of classes that define the state and behavior of objects. It facilitates encapsulation by grouping related variables and methods that operate on those variables, thus restricting direct access to them. This is accomplished by using access modifiers such as private, protected, and public. Methods act as interfaces to access the private data, ensuring control and consistency of how data is accessed and modified .

StringBuilder and StringBuffer are both used for mutable string manipulation in Java, offering methods to append, insert, or modify string content. The StringBuilder class is faster as it is unsynchronized, which means it is not thread-safe and should be preferred in single-threaded scenarios. Conversely, StringBuffer is synchronized and thus thread-safe, making it suitable for use in multi-threaded environments where string operations might be accessed by multiple threads simultaneously .

The Executor Framework in Java significantly enhances concurrency by simplifying thread management. It abstracts and manages thread creation, pooling, and concurrent task execution, allowing developers to focus on task architecture rather than low-level thread operations. Executors improve resource utilization by reusing threads and managing their lifecycle, directly impacting performance and scalability in complex applications, enabling more manageable and efficient concurrent executions .

The lifecycle of a Java object begins with creation using the 'new' keyword. After creation, an object can be reassigned to different references, sharing or transferring ownership. Eventually, if the object is no longer referenced, it becomes eligible for garbage collection. The Java garbage collector automatically deallocates memory that is no longer in use, preventing memory leaks and optimizing resource use. The 'finalize' method can be overridden to perform cleanup before an object is garbage collected .

Java 8 introduced notable features like lambda expressions, which significantly enhanced functional programming capabilities by allowing code as data. This innovation simplified operations on collections and enabled more concise and readable code for operations like iteration, filtering, or mapping. Additionally, enhanced annotations in Java 8 improved metadata handling, making both code structure definition and processing easier and more intuitive. These features have streamlined Java development, aligning it more closely with modern programming paradigms .

Object reference variables in Java point to objects stored in the heap memory and are capable of referencing any object derived from a class, while primitive variables store actual data values and are allocated in the stack for efficiency. Primitive types such as int, boolean, and double store fundamental data types directly and have no methods associated with them, leading to simpler and faster operations compared to objects .

Java's Reflection API provides the capability to inspect classes, interfaces, fields, and methods at runtime, enabling dynamic code execution and manipulation. This supports advanced features like serialization mechanisms, debugging, or test automation through dynamic method invocation. However, reflection carries overhead and poses performance penalties, potentially breaking encapsulation principles and increasing the risk of code vulnerabilities. Thus, while it offers powerful dynamic capabilities, it should be used judiciously .

Generics enhance the type safety of the Java Collections Framework by allowing collections to specify the types of objects they hold, preventing runtime ClassCastException and reducing explicit casting. This static type-checking at compile-time minimizes errors and increases code reliability and maintainability. Generics also provide flexibility by enabling generic algorithms that operate on different types of objects, ensuring compatibility while maintaining stronger type constraints and clarity .

You might also like