1 / 41

Getting Started

Getting Started. Programming. Programming consists of two steps: design (the architects) coding (the construction workers) Programming requires: a programming language to express your ideas a set of tools to design, edit, and debug your code either

early
Download Presentation

Getting Started

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Getting Started

  2. Programming • Programming consists of two steps: • design (the architects) • coding (the construction workers) • Programming requires: • a programming language to express your ideas • a set of tools to design, edit, and debug your code • either • a compiler to translate your programs to machine code • a machine to run the executable code • or • an interpreter to translate and execute your program

  3. Algorithm design • Pancakes 800g flower 4 tsp sucker 1 tsp salt 12 eggs 16 dl milk 12 sp water • Pour the milk in a bowl • Pour the water in the bowl • Add the salt • Add the sucker • As long as there are eggs left • Take an egg • Break the egg • Put in the bowl • Add the flower • Turn the dew

  4. Coding • A Java program for a Pancake Robot … double kiloFlower = 0.8; int tspSugar = 4; int tspSalt = 1; int noEggs = 12; int dlMilk = 16; int spWater = 12; Robot.pourMilkInBowl(dlMilk); Robot.pourWaterInBowl(spWater); Robot.putSaltInBowl(tspSalt); Robot.putSugarInBowl(tspSugar); … Variables are declared before they are used The program is read sequentially from top to bottom

  5. Making decisions based on logical expressions Coding … Robot.putSugarInBowl(tspSugar); While (noEggs > 0) { NoEggs = NoEggs -1; Robot.breakEgg(); Robot.putEggInBowl(); } Robot.putFlowerInBowl(kiloFlower); Robot.turnDew(); …

  6. What is Java? • A programming language • Fully buzzword-compliant: A simple, object oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded, dynamic language. From: Java: An Overview James Gosling, Sun Microsystems, February 1995.

  7. What Else is Java? • According to Gosling: • “An environment” • “A platform” • “A way of thinking” • …ok, whatever • Java is a phenomenon • Took the world by storm in 1995 when introduced with the HotJava web Browser • Quickly integrated with Netscape browser

  8. What is Java? • Java is a general-purpose, high-level programming language. • The features of Java • Java program is both compiled and interpreted. • Write once, run anywhere • Java is a software-only platform running on top of other, hardware-based platforms. • Java Virtual Machine (Java VM) • The Java Application Programming Interface (JAVA API)

  9. How Will Java Change My Life? • Get started quickly • Write less code • Write better code • Develop programs faster • Avoid platform dependencies with 100% pure Java • Write once, run anywhere • Distribute software more easily

  10. Simple Architecture-neutral Object-Oriented Distributed Compiled Interpreted Statically Typed Multi-Threaded Garbage Collected Portable High-Performance Robust Secure Extensible Well-Understood Features of Java

  11. Some History • 1993 Oak project at Sun • small, robust, architecture independent, Object-Oriented, language to control interactive TV. • didn’t go anywhere • 1995 Oak becomes Java • Focus on the web • 1996 Java 1.0 available • 1997 (March) Java 1.1 - some language changes, much larger library, new event handling model • 1997 (September) Java 1.2 beta – huge increase in libraries including Swing, new collection classes, J2EE • 1998 (October) Java 1.2 final (Java2!) • 2000 (April) Java 1.3 final • 2001 Java 1.4 final (assert) • 2004 Java 1.5 (parameterized types, enum, …) (Java5!) • 2005 J2EE 1.5

  12. Java 1.3 77 packages 1595 classes Java 1.0 8 packages 212 classes Java 1.1 23 packages 504 classes Java 1.2 59 packages 1520 classes Java 1.4 103 packages 2175 classes Java 1.5 131 packages 2656 classes javax.activity, javax. management New Events Inner class Object Serialization Jar Files International Reflection JDBC RMI JFC/Swing Drag and Drop Java2D CORBA JNDI Java Sound Timer Regular Exp Logging Assertions NIO java.nio, javax.imageio, javax.net, javax.print, javax.security, org.w3c javax.naming, javax.sound, javax.transaction javax.accessibility, javax.swing, org.omg java.math, java.rmi, java.security, java.sql, java.text, java.beans java.applet, java.awt, java.io, java.lang, java.net, java.util

  13. Java Applications and Java … lets • Stand-alone Applications • Just like any programming language • Applet • Run under a Java-Enabled Browser • Midlet • Run in a Java-Enabled Mobile Phone • Servlet • Run on a Java-Enabled Web Server • Switchlet • …

  14. Java Developer's Kit (I) • Java's programming environment • Core Java API • compiler • interpreter • debugger • dis-assembler • profiler • more...

  15. Java Developer's Kit (II) Java Interpreter Java Compiler Compile Run Java Source Java Bytecode <file>.java Java Dis-assembler <file>.class

  16. Source Computer Compilation Java Program Java ByteCode Prepare and Execute Java Internet Verification Your computer Java ByteCode Execution Restricted Env.

  17. Write Once, Run Anywhere

  18. ByteCode: Food for the VM • For most languages, compilation produces machine code • Java compilation produces “bytecode” • Intermediate code readable by the VM • Transferable across the Internet as applets • VM interprets BC into instructions • Partly responsible for performance lag • ByteCode produced on any platform may be executed on any other platform which supports a VM

  19. JIT compiler compiled code execution model of Java compiler source (text) bytecode (aka. class file) JVML dynamic loading virtual machine verifier bytecode interpreter CPU

  20. The JIT • Just-In-Time compiler • Translates bytecode into machine code at runtime • 1-time overhead when run initiated • Performance increase 10-30 times • Now the default for most JVM’s • Can be turned off if desired • JIT can apply statistical optimizations based on runtime usage profile

  21. Not just one JVM, but a whole family • JVM (J2EE & J2SE) • Well-known Java Virtual Machine. • CVM, KVM (J2ME) • Small devices. • Reduces some VM features to fit resource-constrained devices. • JCVM (Java Card) • Smart cards. • It has least VM features. • And there are also lots of other JVMs

  22. Java Platform & VM & Devices

  23. Java VM and API • Java API and Virtual Machine insulate the Java program from hardware dependencies. • Java API

  24. Collection of ready-made software components that provide many useful capabilities. Grouped into libraries (packages) of related components. Core API Essentials: Object, String, Input and Output... Applets Networking Internationalization Security Software Components Object Serialization Java Database Connectivity (JDBC) Java API

  25. Java 2 Platform

  26. The “Hello World” Application

  27. Create a Java Source File public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");} }

  28. Compile and Run • Compile • javac HelloWorld.java • One file named HelloWorld.class is created if the compilation is succeeds. • Run • java HelloWorld examples

  29. Programming tasks Write code compile Run program Correct errors

  30. The Simplest Java Application: Hello,World! • Since Java is object-oriented, programs are organized into modules called classes, which may have data in variables and subroutines called methods. Each program is enclosed in a class definition. main() is the first method that is run. class HelloWorld { public static void main (String[] args) { System.out.println(“Hello World!”); } } Syntax is similar to C - braces for blocks, semicolon after each statement. One difference: upper and lower case matter! The notation class.method or package.class.method is how to refer to a public method (with some exceptions).

  31. Command Line Programming • First you have to code and edit your program in the text editor of your choice and remember to save your file in the form of SomeClass.java. • Then you must go to the command line (hence Command Line Programming) and set the Path for your Java Virtual Machine if you have not done so already. • Then compile your program by typing: javac SomeClass.java • If you have errors you must go back to your editor fix and resave your file, which can be a pain. • Once all errors are gone you will get a file called SomeClass.class. • Once that happens you can type: java SomeClass.java and observe your output.

  32. Integrated Development Environments (IDE) • JCreator, Eclipse, and NetBeans use the following concepts to manage the files for a project: • A Workspace in which multiple projects are stored • A Project in which multiple files are stored • Source files with the extension .java containing human-readable program statements • created by you in an editor • Class files with the extension .class containing machine-readable program logic • Created by the Java compiler

  33. NetBeans 4.1 examples

  34. The “Hello World” Applet

  35. Create a Java Source FileHelloWorldApplet.java • import java.applet.Applet;import java.awt.Graphics;public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString(“Hello World!”, 5, 25); }}

  36. Compile the Source File • javac HelloWorldApplet.java • One file named HelloWorldApplet.class is created if the compilation is succeeds.

  37. Displaying your applet from a Web page. • Create an HTML file with an applet tag to display the results of drawing the applet. <html><head> <title>Simple Hello Page</title> </head> <body> My Java applet says: <applet code=“HelloWorldApplet.class” width=150 height=25> </applet> </body></html> Name of your applet class. The browser will use a rectangle of width 150 pixels and height 25 pixels to display the applet within the other html.

  38. The Simplest Java Applet: Hello, World! • Java applets are part of the class hierarchy that can call methods to display on a screen (within the browser window). One way to draw on the screen is to call the method drawString from the standard method paint. The import statement allows the use of methods from the Graphics class without the dot notation . import java.awt.Graphics; public class HelloWorldApplet extends java.applet.Applet { public void paint (Graphics g) { g.drawString(“Hello World!”, 5, 25); } } Puts this as a subclass of Applet. The paint method displays a graphics object on the screen - one of the standard methods that takes the place of main for applets.

  39. No main method • Yes, applets have a main method... • ...but it's in the browser, not in your code! • More about that later in the course …

  40. Say hello to Kara ..\kara\allkara-en.jar

  41. So really, why learn about programming? • Programmers make lots of money. • Programming really is fun. • Programming is very intellectually rewarding. • Programming makes you feel superior to other people. • Programming gives you complete control over an innocent, vulnerable machine, which will do your evil bidding with a loyalty not even your pet dog can rival.

More Related