This document provides an overview of the Java programming language. It discusses Java's history beginning as a language for consumer electronics and its adoption as a web programming language. The document outlines Java's features such as being object-oriented, portable, robust, secure, and having a large standard library. It provides examples of using Java for web applets, database access, distributed applications, and graphics. It also compares Java's performance to C++ and discusses how to get started with Java development.
Liberty: The Right Fit for Micro Profile?Dev_Events
Kevin Sutter, Senior Technical Staff Member, IBM @kwsutter
Alasdair Nottingham, Websphere Runtime Architect, IBM @notatibm
The move to microservices is well under way, but has enterprise Java adapted to these new realities? Although some argue that enterprise Java is irrelevant, many of its tried-and-proven APIs are highly applicable to microservice architectures. And the need for new APIs to address challenges inherent in highly distributed microservices is clear. The recent announcement of the Micro Profile initiative (microprofile.io) to define new application server portable APIs means that these needs will be addressed. This session explores what Micro Profile is, how it can help with microservices, and how WebSphere Liberty’s à la carte approach to Java EE can help enable microservices by using the new Micro Profile and ldemo Liberty plus the microProfile-1.0 feature.
Introduction to java programming. fundamentas. basic programming. java is easy to learn. following this presentation , you can get more knowledge of Java . Elementary level presentation.
Java
This slide is a shot overview to Java from start up to now. Where we were? Where we are? Where we’re going? Know how. Was hold in Lindholmen October, 2013 http://www.lindholmen.se/en/node/35950
Liberty: The Right Fit for Micro Profile?Dev_Events
Kevin Sutter, Senior Technical Staff Member, IBM @kwsutter
Alasdair Nottingham, Websphere Runtime Architect, IBM @notatibm
The move to microservices is well under way, but has enterprise Java adapted to these new realities? Although some argue that enterprise Java is irrelevant, many of its tried-and-proven APIs are highly applicable to microservice architectures. And the need for new APIs to address challenges inherent in highly distributed microservices is clear. The recent announcement of the Micro Profile initiative (microprofile.io) to define new application server portable APIs means that these needs will be addressed. This session explores what Micro Profile is, how it can help with microservices, and how WebSphere Liberty’s à la carte approach to Java EE can help enable microservices by using the new Micro Profile and ldemo Liberty plus the microProfile-1.0 feature.
Introduction to java programming. fundamentas. basic programming. java is easy to learn. following this presentation , you can get more knowledge of Java . Elementary level presentation.
Java
This slide is a shot overview to Java from start up to now. Where we were? Where we are? Where we’re going? Know how. Was hold in Lindholmen October, 2013 http://www.lindholmen.se/en/node/35950
* It’s a open source IDE.
* Latest version is NetBeans 7.0
* Following type of applications can be created:
>Desktop applications
>Enterprises applications
>Web applications &
>Mobile applications, etc.
In this core java training session, you will learn get introduction to Java. Topics covered in this session are:
• History of Java – A Programmer’s Perspective
• Salient Features of Java
• Major Java Editions
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
In this presentation, we summarize the lessons we have learned during the MagicDraw adaptation of VIATRA, Eclipse’s open source framework for scalable reactive model transformations. We have built V4MD, an open source extension for MagicDraw that others can freely reuse and build on, and IncQuery for MagicDraw, a commercial add-on that provides powerful yet user-friendly querying and validation capabilities.
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how. You should also consider attending this session to hear about some suprises you don't want to miss...
A slide deck presenting the highlights of the NetBeans IDE 7 release, including each of its minor releases, 7.1, 7.1.1, 7.2, 7.2.1, 7.3, 7.3.1, and 7.4, in the context of the IDE's complete feature set.
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
BP106 From XPages Hero To OSGi Guru: Taking The Scary Out Of Building Extension Libraries. From IBM ConnectED 2015, delivered jointly with Christian Guedemann
CrossWorlds is IBM WebSphere Liberty and IBM Domino getting together to provide a huge leap forward for Domino developers and customer. Learn what's being built !!!
Java: Finding Bugs, Fixing Bugs in IBM Domino Designer and XPagespanagenda
Writing Java code? Of course you are. Paul and Julian will demonstrate some tools and techniques for tracking down real or potential bugs in your code, and show you ways that you can investigate your Java environment if you think something is acting strangely. We will focus largely on Java in the context of IBM Domino Designer, but these techniques should be applicable to other contexts (like Eclipse) as well.
GateIn - Presented at Atlanta JUG on 1/19/2010Wesley Hales
This presentation is an overview of the GateIn Platform. Most of the presentation was done using live demos, so links to videos of similar demos are in their respective slides.
* It’s a open source IDE.
* Latest version is NetBeans 7.0
* Following type of applications can be created:
>Desktop applications
>Enterprises applications
>Web applications &
>Mobile applications, etc.
In this core java training session, you will learn get introduction to Java. Topics covered in this session are:
• History of Java – A Programmer’s Perspective
• Salient Features of Java
• Major Java Editions
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
In this presentation, we summarize the lessons we have learned during the MagicDraw adaptation of VIATRA, Eclipse’s open source framework for scalable reactive model transformations. We have built V4MD, an open source extension for MagicDraw that others can freely reuse and build on, and IncQuery for MagicDraw, a commercial add-on that provides powerful yet user-friendly querying and validation capabilities.
Java and in particular OSGi are now very important parts of the Notes/Domino app dev model. In this session, you will learn what techniques can be utilized to process background jobs for XPages applications. Whether you want to replace your existing agents with Domino OSGi Tasklet Services (DOTS) or use Eclipse Jobs to run time-consuming routines without interrupting the use of your application - we will show you real life examples of why and how. You should also consider attending this session to hear about some suprises you don't want to miss...
A slide deck presenting the highlights of the NetBeans IDE 7 release, including each of its minor releases, 7.1, 7.1.1, 7.2, 7.2.1, 7.3, 7.3.1, and 7.4, in the context of the IDE's complete feature set.
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
BP106 From XPages Hero To OSGi Guru: Taking The Scary Out Of Building Extension Libraries. From IBM ConnectED 2015, delivered jointly with Christian Guedemann
CrossWorlds is IBM WebSphere Liberty and IBM Domino getting together to provide a huge leap forward for Domino developers and customer. Learn what's being built !!!
Java: Finding Bugs, Fixing Bugs in IBM Domino Designer and XPagespanagenda
Writing Java code? Of course you are. Paul and Julian will demonstrate some tools and techniques for tracking down real or potential bugs in your code, and show you ways that you can investigate your Java environment if you think something is acting strangely. We will focus largely on Java in the context of IBM Domino Designer, but these techniques should be applicable to other contexts (like Eclipse) as well.
GateIn - Presented at Atlanta JUG on 1/19/2010Wesley Hales
This presentation is an overview of the GateIn Platform. Most of the presentation was done using live demos, so links to videos of similar demos are in their respective slides.
Description of the Java platform (languages, runtime libraries, execution environments) and how to write cross platform portable Java code (mobile, desktop, server, iot, ...).
In this session you will learn:
Introduction to Java
History of Java
Salient Features of Java
Setting up Environment for Java development
Object Oriented Programming Concepts
For more information: https://www.mindsmapped.com/courses/software-development/become-a-java-developer-hands-on-training/
Still running on Java 8? Tempted by new versions of Java, but afraid too? This material contains some information on what to expect, and what kind of lessons were learned taking multitude of Java 8 projects to Java 9, 10, and 11.
project developed on Banking with concepts of core Java and MySQL also how to use Java JDBC to connect to MySQL and perform SQL queries, database inserts and deletes.
why Java is so popular is the platform independence. Programs can run on several different types of computer; as long as the computer has a Java Runtime Environment (JRE) installed, a Java program can run on it.
Java is a strongly typed programming language because every variable must be declared with a data type. A variable cannot start off life without knowing the range of values it can hold, and once it is declared, the data type of the variable cannot change
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Unit 8 - Information and Communication Technology (Paper I).pdfThiyagu K
This slides describes the basic concepts of ICT, basics of Email, Emerging Technology and Digital Initiatives in Education. This presentations aligns with the UGC Paper I syllabus.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
2. What will this talk cover?
Will discuss
– History of Language
– What is Java
• Language
• Libraries
– What is it good for
– Why you should (perhaps) use it
– How does it compare with other
languages, particularly C, C++
– Future of Language
• Lawsuits etc.
– Conclusion
Not a tutorial on how to program in
Java
– There are a number of example
programs, but intent is to give a feel
for the language rather than go into
too many details.
– If there is sufficient interest it may
be possible to arrange tutorial-like
session(s) at a future date.
Appendix (left over slides)
– Gives a brief introduction to
language syntax and features.
3. What is Java?
History
– Originally designed (1991) as a small
language for consumer electronics
(cable boxes, toasters etc.)
– Eventually someone wrote HotJava
Browser, which could run Java
Applets
– At height of internet craze, adopted by
Netscape, Microsoft, Sun etc. as Web
Programming Language.
More than just a Web Tool
– Java is a fully functional, platform
independent, programming language
– Powerful set of machine independent
libraries, including windowing (GUI)
libraries.
Past Year
– Sun has released several new versions
of language + libraries
– >1,000,000 copies of Java
Development kit downloaded
– Java available for MAC, Win 95/NT,
HP, SUN, SGI, Digital Unix, Linux,
Amiga, OS/2, BEOS, VMS, and even
AIX
– Microsoft <---Sues---> Sun
Next Year
– Should see many real Java
applications emerge
4. How does Java work?
Java source code is compiled into
machine independent “bytecodes”
The bytecodes can be run directly by
an interpreter
The bytecodes can be converted to
machine code and executed (“Just in
Time (JIT)” compilation).
An optimizing interpreter can
dynamically identify program
“hotspots” and create code optimized
for the specific machine/environment.
– Optimizing interpreter coming soon
from SUN.
Java Source code
Compiler
Java “Bytecodes”
Mac
Bytecode
Unix
PC
JIT
Compiler
Interpreter
Machine Code
5. Java Buzzwords
Simple
– well, simpler than C++
Object Orientated
– more so than C++
Distributed
– Built in support for Internet
protocols, URL’s, HTTP etc.
– Support for distributed objects, RMI,
CORBA etc.
Robust
– Difficult to create memory leaks, go
beyond the end of an array, corrupt
stack or code
Secure
– Bytecode “verifier”, padded cell
Architecture Neural, Portable
– Runs on PC, MAC, Unix, VMS
Interpreted
– “Compiler” converts code into
machine independent “bytecodes”
High Performance
– With JIT compiler still several times
slower than native C++
– Coming soon! Optimizing interpreter
from Sun, faster (?!?) than C++
Multithreaded
– Language has direct support for
multithreading (c.f. subprocesses)
Dynamic
– Libraries can change without
recompiling programs that use them
6. Java Language Features
Pure Object Oriented Language
– Can only write classes
Syntax very similar to C/C++,
but without many of the rarely
used, overly complex features
of C++
–
–
–
–
No history
No operator overloading
No multiple inheritance
No Pointers
Supports
–
–
–
–
Inheritance
Interfaces
Nested Classes
Automatic Garbage Collection
Built in support for
–
–
–
–
–
Threads
Exception handling
Object serialization
Networking
Reflection
7. Java Libraries (API’s)
The usefulness of Java is greatly enhanced by the large range of
platform independent libraries available:
–
–
–
–
–
–
AWT - Basic GUI toolkit - delegates to OS specific “Peers”
SWING (a.k.a. JFC) Enhanced “Peerless” GUI toolkit (Beta)
2D - Transformations, stroked fonts, pattern fill, textures etc. (Beta)
JDBC - Standard Interface between Java and SQL databases
ODMG binding - Standard Interface to Object databases
RMI + CORBA - Remote procedure calls between distributed Java
applications, and between Java and other languages
– BEANS - Java based components, plug commercial components into your
applications.
– Media (audio, video etc.), Share (e.g. whiteboards), Animation, Telephony,
3D (developed by SUN and SGI), cryptography, server. (Beta)
8. What is Java Good For?
Web Applets
Database programming
– SQL databases using JDBC
– Object databases using ODMG binding
Java Servlets
Stand Alone Applications
– GUI based applications
Distributed client-server applications
– Using TCPIP + RMI + CORBA
Graphics applications
– 2D and 3D
Physics Analysis
10. Java Applets
Java Applets are programs designed
to run inside a web browser.
Instead of having a “main” method
they have a class derived from
“Applet” whose “init” method is
called when the applet is loaded.
The applet class provides
capabilities for loading images,
sounds and animations from the
internet.
Applets loaded from the internet are
run inside a “sandbox” which
restricts what they can do:
– No Access to local filesystem
– Can only open network connections
with the site they came from
Problems
– Lack of network/filesystem access
can be restrictive
– Complex programs can be large and
hence slow to download
– Sun has been introducing new
releases far to fast for browser
manufacturers to keep up.
– Each browser has subtle differences.
Solutions?
– Java activator from SUN
• Plug in for netscape/IE to ensure
latest SUN features always available.
– Signed applets can be granted more
privileges.
• Can download local copies of large
programs
12. Java SQL Database Access
Java provides standard interface to SQL
databases, JDBC
– Most database vendors now have implementations
of JDBC for use with their database
– Oracle has pure Java JDBC driver (no need to
install SQLNet, SQLPlus etc. to be able to use it).
Makes it possible to write database programs
which are independent of the underlying
database.
Automatic translation of database types to native
Java types:
– e.g. Date/time in database is extracted as Java Date
object, manipulation of dates straightforward.
14. Java Object Database Access
Using JDBC to connect to databases is fine for accessing
legacy data in SQL databases.
– Using SQL and pulling columns out of tables is a little
inconvenient.
– Would be better to create a network of related objects in
Java and
• “stick them all in a database”
• “retrieve all or part of the network later”
– This is what object databases are for
• ODMG (Object Database Management Group) has defined a
standard binding between Java and OO databases.
• Several OO databases new support the ODMG Java binding
16. Java Servlets
A Java Servlet runs on a web server instead of a web browser
– Performs similar function to CGI scripts under Unix
– Works with many web servers
• Netscape, Microsoft IIS, Apache, Java Web Server, many more...
– Machine independent
– Much faster than CGI (no process forking)
– Gives full power of Java for database access, data manipulation etc.
17. Real Applications in Java?
So far all examples have been fairly trivial.
Is it possible to write real applications in Java? Yes! (at least I hope so)
18. Java for Physics Analysis?
Java has good mix of power, simplicity, math, speed for physics analysis
– SLD has developed a set of hep.analysis classes for Histograming
– Networking support and mobility of code excellent for client server applications.
• Analysis routine goes to data instead of data coming to analysis routine.
19. How to get started with Java
Download free Java Developer Kit (JDK) from SUN (www.javasoft.com)
–
–
–
–
Available for Windows, Solaris.
Contains line mode compiler+debugger+misc. tools
Similar kits available for many other platforms (from vendors)
Solaris/AIX JDK installed for Unix at SLAC in /afs/slac/packages/java
For more serious work get hold of a Java Integrated Development Environment
–
–
–
–
Symantec Café (the oldest and most popular IDE at present)
Visual J++ from Microsoft (beware of assimilation)
Visual Age for Java from IBM
Java Workshop from SUN
• All contain integrated editor/debugger/source control
• None have really good WYSIWYG layout tools (yet).
20. More Information
Books
– Keep away from books whose
focus is too web related
– O’Reilly
– Java in a Nutshell
– Exploring Java
– Core Java (SunSoft)
• A little two thick for comfort, but
comprehensive and down-to-earth
– Learn Java Now (Microsoft)
• Comes free with Visual J++
Web Sites
–
http://www.javasoft.com
• Sun’s home page for Java
–
http://www.javasoft.com/books/Series/Tutorial/index.html
• Complete JAVA tutorial, in case you are
too poor to buy the book
–
http://www.gamelan.com/
• Huge library of Java applets and
applications
–
http://www.javaworld.com
–
http://www.javareport.com
• JavaWorld/Java Report (magazines)
–
http://café.symantec.com/
• Café Web Site
–
http://www.microsoft.com/visualj
• Visual J++
–
http://www-sldnt.slac.stanford.edu/jas
• Java Analysis Studio
21. Conclusion
If you are still using:
– Fortran, C, C++, Perl, CGI, SQLPlus, Rexx, IDA etc.
you could save yourself a lot of time and effort by switching to:
23. Topics to be Covered
Java Language Features
–
–
–
–
–
–
–
–
–
Variables, Operators, Expressions
Statements
Classes + Objects
Inheritance
Packages
Exceptions
Multithreading
Data Structures
Standard Libraries
Plenty of example programs
– Tutorial rather than real-world programs
24. Types, Variables, Operators, Expressions
Primitive Types
int, short, long, byte
• all signed
• size is machine independent
float, double
char
• Stores single UNICODE character
boolean
Variables and Expressions
int a, b;
double salary = 100000;
float slacRaise = 1.00002;
salary = salary * slacRaise;
salary *= slacRaise;
salary -= parkingFine;
Operators
+ - * / % ^ ++ -! ~ & | && || ? :
<< >> >>>
< <= > >= == !=
Strings
– Java has nice UNICODE string type
that supports concatenation, substrings,
comparison etc.
String s = “Your raise is ” +
slacRaise;
Notes:
– if (a = 3) { } is illegal!
– No operator overloading
– No pointers! (But surprisingly you
won’t miss them)
25. Statements
Again, very C like
if (condition1) {block1}
else if (condition2) {block2}
else {block3}
for (int i=0 ; i<10 ; i++)
{block}
while (condition) {block}
do {block} while (condition);
Unfortunately even the switch
statement is just like C
switch (choice)
{
case 1:
case 2:
…
break;
case 3:
…
break;
default:
…
break;
}
26. Introduction to OO Programming
Java is an object oriented
programming language, so some
rudimentary knowledge of OO
terminology is required
– Classes (e.g. “Employee”, “Track”)
• Objects
– specific instances of a class (e.g.
“Tony Johnson”, “Track 5”)
• In Java all functions are contained
within classes
• For largely historical reasons
functions are often called methods or
member functions
– Inheritance (aka subclassing)
• e.g. “Associate Director”, “Drift
Chamber Track”
– Encapsulation
• Variables/Functions can be declared:
– private
• only functions within same class
or superclass can access them (c.f.
C++ protected)
– public
• any function can access them
• Java also implements
– static
• Applies to class not object
– final
• Cannot be overridden by
subclass
27. Classes
class Employee
Class Declaration
{
public Employee (String n, double s)
Constructor
{
name = n;
salary = s;
}
public Employee (String n)
Overloaded Constructor
{
name = n;
salary = 0;
}
public void raiseSalary(double byPercent)
{
salary *= 1 + byPercent / 100;
}
public double getSalary()
Access Method
{
return salary;
}
private String name;
Private Member Variables
private double salary;
}
28. Objects
Objects represent instances of classes
Employee javaExpert = new Employee(“Joe”,100000);
javaExpert.RaiseSalary(10); // Raise salary by 10%
system.out.println(“Salary is” + javaExpert.GetSalary());
Note that Java uses the keyword new for creation of new objects.
Unlike C++ there is no delete keyword for the deletion of objects.
– Java handles deletion of objects (and recovery of the memory they occupy)
automatically as soon as there are no longer any references to them.
– This makes writing code much easier, it is “impossible” to create a memory
leak in Java..
– The process of keeping track of when objects are unreferenced and deleting
them is called “garbage collection”. It does impose some processing overhead
which slows down Java programs compared to equivalent programs in C or C+
+.
Appl_1 Example + EmployeeTest Example
29. Inheritance
class Manager Extends Employee
Class Declaration
{
public Manager (String n, double s, Employee e)
Constructor
{
name = n;
salary = s;
secretary = e;
}
public String GetSecretary()
New Access Method
{
return secretary;
}
public void RaiseSalary(double byPercent)
Overridden Method
{
double bonus = 10;
super.RaiseSalary(byPercent + bonus);
}
private Employee secretary;
New member variables
}
ManagerTest Example
30. Interfaces
Interfaces in Java are a replacement
for the concept of “multiple
inheritance” in C++.
Suppose we want to sort managers by
the number of employees they have.
Employee
Manager
Sortable
In C++ both Employee and Sortable
can be classes
In Java one (probably sortable) must
be an “interface”
Employee Sort Example
Interfaces
– Objects can implement any number of
interfaces
– Can have hierarchies of interfaces
– Interfaces cannot have methods
– Cleaner but not quite as powerful as
multiple inheritance
– Only way to implement “callbacks” in
Java
Enumeration Interface
– Can loop over all elements of any class
that implements the enumeration
interface
Enumeration e = thing.elements();
while (e.hasMoreElements())
{
Thing t = e.getNextElement();
}
31. Arrays, Collections etc.
C++
Built in objects continued…
– “If you build it they will come”
– Standard Template Library
Java has powerful built in objects
– String
– Arrays
• Arbitrary size but cannot be resized
– Vectors
• Full dynamic sizing
– Property Sets
• Useful for storing program
parameters
–
–
–
–
–
– Bit Sets
• Arbitrary size array of bits
– HashTables + HashSets
• Quick way to look up object in large
collection
Linked Lists
Queues
Stacks
Multi-Dimensional Arrays
Full featured “Collections” coming
in JDK 1.2
Sieve Example (Benchmark)
–
–
–
–
C++ 1.53 seconds
Java 59.93 seconds
Visual Basic 65.69 seconds
Microsoft JIT compiler ?3 seconds
32. Threads
Threads are similar to “fork” or
“spawn” but
– Threads run in same address space,
not separate process
• Very efficient
• Very dangerous
– All modern operating systems have
support for threads
Java has built-in support for threads
– Just derive a class from thread
– Issue the start() method on the
object
Bouncing Ball Example
Java Threads support
–
–
–
–
Priorities
Interrupts
Thread groups
Synchronization
• synchronized keyword can be
applied to classes or methods
– Timers
33. Java AWT Package
AWT allows development of
platform independent GUI programs
– Java takes a “Lowest Common
Denominator” approach
• Supports only one mouse button
• Doesn’t “look as nice” as native
windows/MAC applications
• Available graphical layout tools are
quite limited.
– Moderate set of graphic objects
• Buttons, Labels, Text Input, Menus,
• Scroll Bars, Dialogs, Radio Buttons
– Mapped onto native GUI objects on
each platform.
“Layouts” are used to compensate for
the fact that GUI objects may have
different sizes on different platforms
– Limited set of layouts are provided
•
•
•
•
Flow Layout
Border Layout
Card Layout
Grid (Bag) Layout
– User defined layouts needed for most
real programs
HelloWorld Example
34. Java for Physics?
Java
Compiler
Experiment
Extensions
(Event Display)
import physics.hep.*;
GUI
Network
Data
Analysis
Engine
Users
Java
Code
Experiment
Interface
class MyAnalysis extends Analysis
{
public void init()
{
h = new Hist(“Energy”);
}
public void Evanal(Event e)
{
Enumeration x = e.getTracks();
while (x.hasMoreElements())
{
Track t = x.getNextElement();
h.Add(t.getEnergy());
}
}
private Histogram h;
}