Overview of Java CS 3250. A Brief History January 1996: first official release JDK 1.0 Web: applets, security, URL, networking GUI: Abstract Windows Toolkit.

Slides:



Advertisements
Similar presentations
A Programmer's Introduction to Java - from a S/370 user (c) IDMS/SQL News
Advertisements

1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
The road to reliable, autonomous distributed systems
What is a Programming Language? The computer operates using binary numbers. The computer only knows about 1’s and 0’s. Humans can also use 1’s and 0’s,
Introduction to Java The objectives of this chapter are: To describe the key aspects of Java To describe the Java software development kit (SDK) To explain.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Introduction to Java Kiyeol Ryu Java Programming Language.
Introduction to Java Programming, 4E
Principles of Object-Oriented Software Development The language Java.
CS2200 Software Development Lecture: Java Platform Lecturer: Adrian O’Riordan Course Webpage:
For more Lectures and Notes Visit
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
Introduction to Java.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Developing User Interfaces (DUI) Chris North cs3724: HCI.
1 CSC 551: Web Programming Spring 2004 Java Overview  Design goals & features  platform independence, portable, secure, simple, object-oriented, … 
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
BASIC JAVA PROGRAMMING TUTORIAL. History  James Gosling and Sun Microsystems  Oak  Java, May 20, 1995, Sun World  Hot Java –The first Java-enabled.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Lecturer PEN PHIROM Tel : Web site: Lecturer PEN PHIROM Tel :
Advanced Java New York University School of Continuing and Professional Studies.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
CS 11 java track: lecture 1 Administrivia need a CS cluster account cgi-bin/sysadmin/account_request.cgi need to know UNIX
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 1 Introduction to.
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Introduction to Java Programming with Forte Y. Daniel Liang.
Introduce to Java. Outline History of Java History of Java Something about Java Something about Java Brief introduction to Java programming Brief introduction.
C# Versus Java Author: Eaddy, Marc Source: Software Tools for the Professional Programmer. Dr. Dobb's Journal. Feb2001, Vol. 26 Issue 2, p74 Hong Lu CS699A.
Session 1 Introduction to Java. Objectives Java Simplified / Session 1 / 2 of 32 Explain the history of Java Explain Java in brief List the types of Java.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Introduction to Java The Java Platform, The Java Language, JDK, Eclipse Svetlin Nakov Technical Trainer Software University
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
The Java Platform, The Java Language, JDK, IntelliJ
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
introductory lecture on java programming
Java – in context Main Features From Sun Microsystems ‘White Paper’
1 Introduction to Java. 2 * 10% Assignments/ class participation * 10% Pop Quizzes * 05% Attendance * 25% Mid Term * 50% Final Term.
ITP 109 Week 2 Trina Gregory Introduction to Java.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
Introduction to JAVA Programming
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Introduction to Java Programming, 4E Y. Daniel Liang.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Object Oriented Programming in
Introduction to Advanced Java Programming
Introduction to.
Introduction Enosis Learning.
Introduction Enosis Learning.
Getting Started ARCS Lab..
آشنایی با جاوا Introduction to Java
(Computer fundamental Lab)
Java History, Editions, Version Features
By Rajanikanth B Overview Of Java By Rajanikanth B
F II 1. Background Objectives
CSC 142 Introduction to Java [Reading: chapters 1 & 2]
CMPE419 Mobile Application Development
A Brief History January 1996: first official release JDK 1.0
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Overview of Java CS 3250

A Brief History January 1996: first official release JDK 1.0 Web: applets, security, URL, networking GUI: Abstract Windows Toolkit (AWT) "To be blunt, Java 1.0 was not ready for prime time." Core Java, Vol. I, p. 9

A Brief History (continued) February 1997: JDK 1.1 Authentication: digital signatures, certificates Distributed computing: RMI, object serialization, Java IDL/CORBA Database connectivity: JDBC Component architecture: JavaBean Version 1.1 "filled in the most obvious gaps, greatly improved the reflection capability, and added a new event model for GUI programming. It was still rather limited, though." Core Java, Vol. I, p. 9

December 1998: Java 2 Platform (JDK 1.2) Standard, Enterprise, and Micro Editions JFC: Swing, Java2D, Java3D Java Cryptography Extension (JCE) Enterprise computing: enterprise JavaBean (EJB), servlets, Java server page (JSP), Jini, XML A Brief History (continued)

More changes in 1.2 (Java 2): Java Multimedia Framework (JMF) Embedded systems: KVM, JavaCard Performance enhancement: JIT, HotSpot VM A Brief History (continued) Version 1.2 "replaced the early toylike GUI and graphics toolkits with sophisticated and scalable versions that came a lot closer to the promise of 'Write Once, Run Anywhere' than their predecessors." Core Java, Vol. I, p. 10

Versions 1.3 and 1.4: incremental improvements to library, performance bug fixes A Brief History (continued) "During this time, much of the initial hype about Java applets and client-side applications abated, but Java became the platform of choice for server-side applications." Core Java, Vol. I, p. 10

Versions 5.0 (originally 1.5): significant changes to language, not just library generic classes features inspired by C# "for each" loop, autoboxing, metadata A Brief History (continued) "Language changes are always a source of compatibility pain, but several of these new language features are so seductive that we think programmers will embrace them eagerly." Core Java, Vol. I, p. 10

Evolution of Java VersionNew Language FeaturesClasses and Interfaces 1.0 The language itself Inner classes None None Assertions Generic classes, "for each" loop, varargs, autoboxing, metadata, enumerations, static import 3270 based on p. 10 of Core Java, Vol. I

Top 10 Reasons for Using Java Or, 10 ways to start an argument

10. Garbage Collected C and C++ are not, but most other modern languages are

9. Visual Studio Platform-specific Version problems Impossible to write a small program Lack of support for command-line tools Emacs, make, javac, java

8. Multi-threaded Runnable synchronized

7. Distributed Socket classes Remote Method Invocation (RMI) Serialization

6. GUI-less GUIs Can make a GUI with just a text editor Also, flexible GUIs (layouts)

5. Jobs Personally, I haven’t heard of a good way to measure this…

4. Pervasive “The Open Handset Alliance, a group of more than 30 technology and mobile companies, is developing Android: the first complete, open, and free mobile platform.” Also servlets, applets, JSP, current phone platforms

3. Linux, OS X Architecture neutral

2. Libraries Thousands of classes Comprehensive and useful documentation

And the number one reason is...

1. Portable, standard, and free Graphics and GUIs Near misses: wxWidgets (not standard, not particularly easy to use) QT (not free or standard) GTK (not standard).NET (not portable)

Top 10 reasons NOT to use Java You can’t say I’m biased…

10. Unity Unity? Huh? JavaScript, C#, Boo

9. ReallyLongVariableNamesAn dClassNamesForWhichJavaI sFamousOrInfamous

8. Java is “hard to teach” “Too many things that can’t be explained at the beginning” Do you believe it?

7. J2EE But, some people think this is Java’s niche

6. Java is the “new COBOL” Do you believe it?

5. Bad press Overhyped, misconceptions See Professor Allison’s D paper

4. Sun’s follies ME (and not working with Palm) Java Media Framework Java 3D Quicktime for Java (OK, that’s Apple’s) Is Oracle doing any better?

3. C# and the 900-pound gorilla

2. Python, JavaScript But, see Jython and Rhino Maybe Ruby, D, and maybe even PHP (but not Perl)

1. Performance Not as fast as C++ or C# Is it fast enough?

What’s Missing (vs. C++) Explicit pointers Delete operator Destructors References (pass-by-reference) Default arguments

What’s Missing (vs. C++) Globals Local static data Operator overloading Multiple (implementation) inheritance Separation of declaration and definition Templates (“generics” added in 1.5)

What’s New Everything resides in a class Data and functions Garbage collection Fewer memory management headaches Exceptions not optional Unicode encoding Portable: Threads Networking Data sizes

Java Architecture Java code is compiled into platform- independent “byte code” (“javac.exe”) Each class in its own.class file The Java Virtual Machine runs in the target environment (“java.exe”) Interprets the byte code Advantage: portability (“write-once-run- anywhere”) Disadvantage: degraded performance

JIT Compilation “Just-in-time” compilation The JVM has the JIT compiler compile the code into native machine code times faster than classic JVM interpretation

public class Hello { public static void main (String[] args) { System.out.println("Hello, world"); } First Java Application Every program must have at least one class Source file must be class name plus ".java"

public class Hello { public static void main (String[] args) { System.out.println("Hello, world"); } First Java Application The famous "magic formula" for the main method of a Java application:

Elements of Java Programs Class: Hello Method: main(...) Statement: System.out.println(...) Comments: // a comment /* another comment */ /** document comment */ Source file: Hello.java (case sensitive)

Development Environments Java SDK from Oracle command-line tools: javac, java, etc. no editor included netBeans (netbeans.org) IDE, including Java beans (components) Eclipse IDE (eclipse.org) IDE All of these are free See Ch. 2 and the web sites for more information.

Compile and Run an App using the Java SDK command-line tools To compile: javac Hello.java To run: java Hello