• Home

JAVA Programming

Course Description: JAVA is a fully Object Oriented Programming Language. This was started in the year of 1991, as a project in the name of "Oak" by James Gosling, Mike Sheradin, Patrick Naughton, Bill Joy, etc. Gosling's goals were to implement a virtual machine and a language that had a familiar C like notation but with greater uniformity and simplicity than C/C++.

The First publication of Java 1.0 was released by Sun Microsystems in 1995. It made the promise of "Write Once, Run Anywhere", with free runtimes on popular platforms (Windows, Mac OS, etc.). In 2006-2007 Sun released java as open source and and platform independent software. Java can be used to create two types of programs: An application is a program that runs on your computer, under the operating system of that computer. Applet is an application designed to be transmitted over the internet and executed by a Java-compatible Web browser.

Course Prerequisites: It is better to learn C, C++ before starting Java Programming to understand fundamental of programming concepts.

Overview of Java Programming

  • - Object Oriented Programming
  • - Compiler and Interpreter
  • - Portable and Secure
  • - Multithreaded
  • - Architecture-Neutral
  • - Dynamic
  • - Distributed

Applications of Java

  • - Desktop GUI Applications
  • - Web Applications
  • - Mobile Applications
  • - Enterprise based Remote Applications
  • - Business Oriented Applications
  • - Cloud Based Applications
  • - Game Developments

Data Types, Storage Classes & Scope

  • -Fundamental Data Types and Qualifiers
  • -Constants and Strings
  • -Storage Classes
  • -Scope and Block Structure
  • -Scope and Data Hiding
  • -Data Initialization


  • -Functions versus In lining
  • -Purpose of Macros
  • -Use of Macros
    • -Making Code More Readable
    • -Auto Adjustment of Compile Time Values
    • -Conditional Compilation
    • -Making Code Portable
    • -Simplifying Complex Access Calculations
  • -Advanced Micro Design Tips
  • -Using Macros to Help Write Portable Programs
  • -When to Use a Macro instead of a Function
  • -Using Macros for Debugging

Basic Formatted I/O

  • -Standard I/O Library
  • -Character Set Encoding
  • -Standard Input and Output
  • -Character I/O Functions
  • -Formatted I/O Functions
  • -String Constants

Operators and Expressions

  • -Arithmetic, Logical and Bit Operators
  • -Precedence and Associatively
  • -Assignment and Casting
  • -The Conditional Operator

Functions (Subroutines)

  • -Purpose of Functions
  • -Functions versus Inlining
  • -Automatic Variables
  • -The Argument Stack
  • -Passing By Value
  • -Passing By Reference
  • -Declaring External Functions
  • -Function Prototyping
  • -ANSI Prototyping
  • -The _NO_PROTO Compiler Symbol
  • -Varargs Functions
  • -Passing a Function as an Argument
  • -Designing Functions for Reusability
  • -Calling a Function from Another Language
  • -Returning a Dynamically Allocated Value Using Double Indirection
  • -Casting the Return Value of a Function
  • -Recursion and Re-entrancy

Advanced Structures and Unions

  • -Nested Structures
  • -Arrays of Structures
  • -Bit Fields
  • -Unions
  • -Linked Lists

Strings and Character Manipulation

  • -Strings as Character Arrays
  • -String Library Functions
  • -Reading and Writing Strings

Structured Programming

  • -Structuring Code for Quality, Reliability, Maintainability
  • -Designing for Modularity and Reusability

Compiler Directives and the C Pre processor

  • -Compile-Time Directives
  • -Use of typed of
  • -C Pre processor Syntax

Pointers and Dynamic Allocation

  • -Advantages of Pointers
  • -User of Pointers
  • -Pointer and Address Arithmetic
  • -Dynamic Storage Allocation
  • -Size of Double Indirection


  • -Purpose of Arrays
  • -Declaring an Array
  • -Initializing an Array
  • -Addressing Elements
  • -Stepping Through an Array
  • -Variable Size Arrays
  • -Arrays of Pointers
  • -Arrays of Strings
  • -Passing an Array to a Function
  • -Dynamic Memory Allocation
  • -Multidimensional Arrays

Program Debugging

  • -Problem Analysis
  • -Instrumenting with printif
  • -Instrumenting with c trace
  • -The Purpose of Debuggers
  • -How Not to Use Debuggers
  • -Symbolic Debuggers

Flow Control Constructs

  • -Conditional Constructs: if, switch
  • -Looping Constructs: while, do, for
  • -Programming Style


  • -Purpose of Structures
  • -Defining and Declaring Structures
  • -Accessing Members
  • -Pointers to Structures
  • -Dynamic Memory Allocation
  • -Passing a Structure to a Function
    • -As a Pointer
    • -Passing the Actual Structure

C Runtime Library Standard Functions

  • -Character I/O
  • -Unformatted File I/O
  • -Formatted File I/O
  • -Math Functions
  • -Miscellaneous Functions

Accessing Command Line Arguments and Environment Symbols

  • -argc and argv
  • -Parsing Command Line Options
  • -Accessing the Environment Array

Advanced Programming Consideration

  • -Writing Portable Code
  • -Use of Macros
  • -ANSI C Limits
  • -Feature Test Macros
  • -Client/Server Design
  • -Performance Considerations