- •Lecture 1 Programs and algorithms
- •1.1. How a computer operates?
- •1.2. Algorithms and programming languages
- •If (condition) then ... Or if (condition) then ... Else ...
- •1.3. Summary
- •1.4. Exercises
- •Lecture 2 Fundamentals of programming I
- •2.1. The language
- •2.2. Quick start: first program and basics of syntax
- •2.3. Data in a program (variables and literals)
- •2.4. Operations on data (operators and expressions)
- •2.5. Summary
- •2.6. Exercises
- •Lecture 3 Fundamentals of programming II
- •3.1. Making decisions
- •3.2. Iterations
- •3.3. Arrays
- •3.4. Functions
- •3.5. Summary
- •3.6. Exercises
- •Lecture 4 Java and object-oriented methodology
- •4.1. What is Java
- •4.1.1 Java as a universal programming language
- •4.1.2. Java as a cross-platform language
- •4.1.3. Java as a universal environment for gui programming
- •4.1.4. Java as a universal environment for accessing data bases
- •4.1.5. Java as a universal multimedia programming environment
- •4.1.6. Java as a universal means for client-server programming
- •4.1.7. Java in a distributed environment
- •4.1.8. Java as an environment for building applications from ready-to-use components.
- •4.1.9. Java as the environment for xml processing
- •4.1.10. Micro Java
- •4.1.11. Why is Java worth learning?
- •4.2. Introduction to objects
- •4.4. The first program
- •5.2. Literals
- •5.3. Types of variables. Declarations.
- •Type_name variable_name;
- •Identifiers
- •Naming conventions:
- •5.4. More on operators and expressions
- •5.5. Numeric promotions
- •5.6. Summary
- •5.7. Exercises
- •Lecture 6 Objects
- •6.1. Objects and references
- •6.2. The class String
- •6.3. Useful examples
- •6.4. Summary
- •7.2. Defining attributes of objects
- •7.3. Defining operations on objects (methods)
- •7.4 Defining methods of object creation (constructors)
- •7.5. Example
- •7.6. Inheritance
- •7.7. Summary
- •7.8. Exercises
- •Lecture 8 Classes II
- •8.1. Accessing class members. The variable this.
- •8.2. Static members
- •AClassName.AFieldName
- •8.3. Explicit initialization
- •8.4. Packages and imports
- •8.5. Scope of an identifier. Local variables. Access control.
- •8.6. Structure of a program. Running an application.
- •8.7. Summary
- •8.8. Exercises
- •Lecture 9 Decisions
- •9.1. A brief survey of control statements.
- •9.2. Comparison operators and expressions
- •9.3. Logical operators and expressions
- •9.4. Making decisions: the if and if-else statements.
- •9.5. Multivariant selections done with the switch statement.
- •9.6. The conditional operator ?:
- •9.7. Summary
- •9.8. Exercises
4.1.2. Java as a cross-platform language
Java is an interpreted language. This feature enables execution of the once compiled bytecode on all platforms without recompilation.
Java sources (files with the ".java" extension) are compiled by the Java compiler to the bytecode (files with the ".class" extension) which is interpreted by the Java Virtual Machine (JVM) installed in the operating system or being part of a web browser.
source compilation loading JVM code -------------> bytecode --------------> execution (Win Unix OS/2 ...)
(.java) javac (.class)
In theory it means that once compiled, a program will execute the same way on all platforms. What a perfect idea (consider how much effort requires porting an application from one operating system to another)!
Its practical realization (in spite of many difficulties) is almost completed.
The mere portability of an interpreted language is not an extraordinary achievement. But, beside the language, its authors have created a rich set of standard libraries (API - Application Programmer Interface) which supply uniform, platform-independent means for GUI (Graphical User Interface) programming, database accessing, networking and many other activities.
The base set of libraries is called The Java Core API or JDK (Java Development Kit) or Java 2 SDK (Standard Development Kit). Furthermore, the Java Extension Framework mechanism was introduced to enable easy extension of the base set with other libraries (the standard ones as well).
4.1.3. Java as a universal environment for gui programming
The base set of standard libraries includes easy-to-use, platform-independent means for GUI programming.
Simple visual components have been available for a couple of years as a part of Java API called AWT (Abstract Window Toolkit).
As they were too modest for many advanced applications and their look was platform-dependent the new project emerged: The Swing. The main idea behind it was to enrich the look of existing components and to add some new ones as well as making the whole platform independent. Initially the Swing was a supplement to the Java 1.1 SDK but later it became a part of the J F C (Java Foundation Classes) which constitutes a substantial part of the Java 2 platform (the versions 1.2.x, 1.3 and 1.4). The JFC includes AWT together with the enhanced two-dimensional graphics (Graphics 2D), Swing, drag and drop technology and others.
4.1.4. Java as a universal environment for accessing data bases
Java SDK includes JDBC API (Java Database Connectivity API) - a set of tools for accessing (almost arbitrary) databases.
This easy-to-use facility is based on the SQL language which is a standard tool for querying databases.
4.1.5. Java as a universal multimedia programming environment
The Java Core API includes universal means for processing
images and graphics (2D)
sound and music (among others the formats WAV, AU, MIDI are supported)
Some of the currently available standard extensions
Java 3D for creating and processing 3-dimensional graphics,
Java Media Framework for processing advanced multimedia formats (RealStream among others)
are incorporated into the standard API.
