Basic concepts
Features, history and evolution of Java language. Structure of simple
programs. Class definition. Variable and data member definition and
assignment.
Method and constructor definition. Coding conventions.
Data types
Fundamental data types. Enum types. Structured data types. Working
with structured data types and method invocation. The static modifier.
Standard classes and objects. Package.
Standard classes for user I/O.
Method definition.
Formal and actual arguments. Overloading. Implicit argument. Argument
passing. Local variables. Variables and object life-cycle. Scope rules.
Control structures.
If-else, switch. Loop structures: for, while, do-while. Nested loops.
Program structure
Classes and instances. Attributes and methodsMethod definition.
Overloading. and. Garbage collector. Recursion and recursive methods.
Class design
Class identification. Data and method abstraction. Class composition.
Information hiding and access modifiers. Constructor methods.
Inheritance. Method overriding. Polymorphism. The class Object. Abstract
classes. The concept of interface.
Exception handling
Exception definition. Exception taxonomy and hierarchy. The try-catch
clause. The throws declaration.
Input/output with streams
Streams and their classification. Filter classes. Byte, text, and object
streams.
Recursion.
Recursive data structures. Recursive methods. Recursion vs. iteration.
Generics.
Generic classes and methods. Type parameters.
Data structures
Array and Collections. Java Collection Framework. Simple algorithms for
arrays e collections.
Classical data structures: linked list, stack, queue, trees, binary tree.