Presentation is loading. Please wait.

Presentation is loading. Please wait.

O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 1 Java Pros and Cons − Roundtable American Nuclear Society Annual Meeting June 16, 2004.

Similar presentations


Presentation on theme: "O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 1 Java Pros and Cons − Roundtable American Nuclear Society Annual Meeting June 16, 2004."— Presentation transcript:

1 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 1 Java Pros and Cons − Roundtable American Nuclear Society Annual Meeting June 16, 2004 Pittsburgh, PA

2 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 2 Java – an Object-Oriented Programming Language  Based on objects: data and methods together  Four Concepts:  Abstraction – describes physical world  Encapsulation – data and methods together  Inheritance - just like something else but...  Polymorphism – method overloading

3 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 3 Abstraction / Encapsulation public class Particle { Position position; Direction direction; double energy; public Particle(){ position = new Position(0, 0, 0); direction = new Position(1, 0, 0); energy = 1.0; } public void move(double distance){ position.move(direction, distance); } public void scat(double t, double p){... } public class Position { double x, y, z; public Position(double a, double b, double c){ x = a; y = b; z = c; } public void move(Direction d, double dis){ x = x + d.u*dis; y = y + d.v*dis; z = z + d.w*dis; } public double howFarTo(Position p){ double answer = (p.x-x)*(p.x-x) + (p.y-y)*(p.y-y) + (p.z-z)*(p.z-z); answer = Math.sqrt( answer ); return answer; }

4 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 4 Inheritance (1/2) public class ChargedParticle extends Particle { double restMass; int charge; // Physical Constants static double ELEMCHARGE = 1.60217733e-19; // Coulombs static double RESTMASSKG = 9.1093897e-31; // kg static double RESTMASS = 0.511; // MeV static double ERADIUS = 2.81792e-15; // meter public ChargedParticle(){ super(); restMass = ChargedParticle.RESTMASS; charge = -1; } public double getSpeed(){ double speed =... (energy-restMass)... return speed; }

5 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 5 Inheritance (2/2) public class Photon extends Particle { // Physical Constants static double speedOfLight = 299792458.0; // m/s static double planckConstant = 6.6260755e-34; // Joule seconds public Photon(){ super(); } public Particle[] comptonScatter(){ Particle[] answer = new Particle[2]; // photoelectron answer[0] = new ChargedParticle(...); // scattered photon answer[1] = new Photon(...); return answer; }

6 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 6 Polymorphism public class Particle { Position position; Direction direction; double energy; public Particle(){ position = new Position(0, 0, 0); direction = new Position(1, 0, 0); energy = 1.0; } public Particle(Position p, Direction d, double e){ position = p direction = d; energy = e; } public Particle(Particle p){ position = p.position; direction = p.direction; energy = p.energy; }

7 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 7 Java Pros  Free, freely distributable  Portable – “Write once, run anywhere”  Internet savvy  Extensive libraries – database, GUI, networking, etc.  Language – strongly typed, array indices are checked, automatic garbage collection, Threads, Exceptions  *.jar files – Java archive, runnable

8 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 8 Java Cons  Interpreted

9 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 9

10 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 10

11 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 11

12 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 12

13 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 13

14 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 14

15 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 15

16 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 16

17 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 17

18 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 18 Java 1.5 “Tiger”  Generics - no casting, errors at compile time, not runtime  Enhanced for Loop  Autoboxing/Unboxing - collections of primitive data types  Formatted Output - more like C or FORTRAN  New JVM Profiling API  Improved Diagnostic Ability - getStackTrace, Thread.getAllStackTraces private void printCollection(Collection c) { Iterator i = c.iterator(); while(i.hasNext()) { String item = i.next(); System.out.println("Item: "+item); } public void newFor(Collection c) { for(String str : c) { System.out.println(str); } System.out.printf("%s %3d", name, age);

19 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 19 Sun Microsystems, Inc. Binary Code License Agreement for the JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD EDITION, VERSION 1.4.2_X 3. RESTRICTIONS.... You acknowledge that Licensed Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility....

20 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 20 Sun Microsystems, Inc. Binary Code License Agreement for the JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD EDITION, VERSION 1.4.2_X 3. RESTRICTIONS.... You acknowledge that Licensed Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility....

21 O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 21 Any Questions?


Download ppt "O AK R IDGE N ATIONAL L ABORATORY U. S. D EPARTMENT OF E NERGY 1 Java Pros and Cons − Roundtable American Nuclear Society Annual Meeting June 16, 2004."

Similar presentations


Ads by Google