java l1 array prof. sin-min lee department of computer science san jose state university

36
Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Upload: victor-lamb

Post on 18-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java L1 Array

Prof. Sin-Min Lee

Department of Computer Science

San Jose State University

Page 2: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Overview - What is Java

•New, general purpose object-oriented programming language from Sun Microsystems

•Allows users to interact with Web pages beyond simply:

•reading them

•filling out a form

•answering questions

•Allows interaction with program running as an extension to your Web browser

•May be used to augment web page with both a new protocol and the program which implements that protocol

•May be used for writing both network-oriented and local application programs

Page 3: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

History of the development of Java

•Started out in 1991 as Project Green

•focussed on O/S software for consumer electronic devices

•James Gosling recognized inadequacy of C++ and initiated development of Oak language

•Green went through several false starts before dissolving

•Small group decided to adapt Oak (later named Java) to a web technology -- result was a new web browser, WebRunner (later named HotJava), operational in 1994

•Paper on Oak byte codes presented by Gosling at Programming Language Design and Implementation (PLDI) conference in 1995

Page 4: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Highlights of the Java Language

•It's Simple

•It's Object Oriented

•It's Safe

•It's Secure

•It's Portable

•It's Fast (potentially)

•It's Multi-threaded

Page 5: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java - It's Simple

•Java has only the necessary functionality needed to implement its feature set.

•It has omitted the features of C and C++ which have been considered to be "unsafe"

•pointer "forging"

•operator overloading

•static objects

•Memory is managed automatically, relieving the programmer from being responsible for freeing unused space

•There is no Java preprocessor - the program that you see is the same program that the Java compiler sees.

Page 6: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java - It's Object Oriented

•Syntax and semantics inherited from C and C++, but many of its object management features come from Objective C (e.g. interfaces).

•Unlike C and C++, there are no stand-alone functions, but only methods associated with a class.

•Everything (except for the built-in primitive types) is either a class, a method, or an object.

•Extensive class library comes with Java, to interface with:

•host operating system

Page 7: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

•window manager

•network

•Java Applications and Applets may provide their own class library support

•May not replace "system" classes (for security purposes)

Page 8: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java - It's Safe

•Four different levels of safety checks and enforcement to prevent the introduction of viruses

•protect against deleting or modifying files

•protect against corrupting the operator of user's computer

•More strict type model than either C or C++

•Arrays are first class objects

•always range checked

•no visible conversion to pointer plus offset

•No implicit declarations in Java

•Only a minimum number of implicit conversions

Page 9: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java - It's Fast (potentially)

•Currently, all mainstream implementations of Java are running Java programs interpretively

•port of the interpreter developed by Sun

•alternative implementation built from the Java Language and Virtual Machine specifications

•Java byte code is similar to functionality to P-code or U-code

•Several experimental projects translating Java byte codes to either C or native machine code

•Slower than C or C++, due to mandatory run-time checks

•For many small Java programs, no advantage of compiling over interpreting

Page 10: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Java - It's Multi-threaded

•Threads of control are an integral part of the Java language, not a run-time library "add-on"

•Java offers preemptive multi-threading, implemented via the Thread class

•Especially important when developing applets

•provide the proper dynamics between the Java applet and the host browser

•prevent applet from usurping most of the compute cycles

Page 11: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Arrays

• One of the most basic data structures, is an array. An array is just a number of items, of same type, stored in linear order, one after another. Arrays have a set limit to their size, they can’t grow beyond that limit. An array in Java is noted as:

• int array[] = new int [10];orint [] array = new int [10];

• This would create an array of integers of size 10. Any element in that array can be accessed by:

• int value = array[5];

• This would put the value of the 5’th (counting from 0) element into the variable ‘value’.

Page 12: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

• Arrays are very often manipulated in loops. For example, if you have an array named "myNumbers" and you'd like to print all of them, one per line, you'll do something like this:

• for(int i = 0;i<myNumbers.length;i++)• System.out.println(myNumbers[i]);• Arrays are not just restricted to being int type,

they can be of any type, even of your own created class.

• Arrays are nice structures, which are generally faster than other data structures, but they do have limits.

Page 13: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 14: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

SOME VARIATIONS IN DECLARING ARRAYS

• int numbers[10];

• static int numbers[10] = { 34, 27, 16 };• static int numbers[] = { 2, -3, 45, 79, -14, 5, 9, 28,

-1, 0 };• static char text[] = "Welcome to New Zealand.";• static float radix[12] = { 134.362, 1913.248 };• double radians[1000];

Page 15: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

#include <stdio.h> main() { int x; static int values[] = { 1,2,3,4,5,6,7,8,9 }; static char word[] = { 'H','e','l','l','o' }; for( x = 0; x < 9; ++x ) printf(" Values [%d] is %d\n", x, values[x]); }

Sample Program Output Values[0] is 1 Values[1] is 2 .... Values[8] is 9

Page 16: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

• The following program shows how to initialise all the elements of an integer based array to the value 10, using a for loop to cycle through each element in turn.

#include <stdio.h>

main()

{

int count;

int values[100];

for( count = 0; count < 100; count++ )

values[count] = 10;

}

Page 17: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

• 5.Arrays and pointers are very closely connected. The name of the array is also a pointer to the beginning of the memory associated with the array (which is why

• (1) arrays are passed as reference parameters and

• (2) you can pass an array using only its name.)

Page 18: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Arrays

• int vec [ 9 ];

• float mat [ 9] [ 20 ]; • vec [ k ] = vec [ k ] * 2; • mat [ k ] [ j ] := mat [ k ] [ j ] * vec [ k ];• Often when solving problems on the computer

you would like to represent and manipulate a set of data values having similar characteristics

• Arrays provide this capability

Page 19: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 20: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 21: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Limits of Array

• One of the major limits, is that they're fixed in size, and can't grow or shrink to accomodate the data. The Vector class in java, uses an array, and does make it seem that the array is growing or shrinking. In reality, Vector class checks to see if more space is needed, if it is, then it creates a new array, copies the old array to the new array, and makes the new array, it's primary array, thus, giving the impression that the array "grew" to fit the data. This approach can get rather slow, if a lot of growing & shrinking is needed.

Page 22: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 23: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 24: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 25: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 26: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

Generating a Random Number

The following code snippet demonstrates how to generate a pseudo-

random integer number that falls within a specific range.

Random random, random1; int nbr;random = new Random(); nbr = someMinValue + Math.abs(random.nextInt()) % (someMaxValue - someMinValue); random1 = new Random(nbr); // create another randon number generator using // a specific seed value

There are two constructors for Random() . When invoked

with no argument, then a new pseudo-random

number generator is created using the current

time of day as a seed; otherwise, a pseudo-random

number generator can be created using a specific seed.

Page 27: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 28: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 29: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 30: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 31: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University

MULTI DIMENSIONED ARRAYS

• Multi-dimensioned arrays have two or more index values which specify the element in the array.

• multi[i][j]

• In the above example, the first index value i specifies a row index, whilst j specifies a column index.

Page 32: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 33: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 34: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 35: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University
Page 36: Java L1 Array Prof. Sin-Min Lee Department of Computer Science San Jose State University