224 Questions
224 Questions
5 & 6 Features
Jussi
Pohjolainen
Tampere
University
of
Applied
Sciences
Versions
and
Naming
• JDK
1.0
–
1996
• JDK
1.1
–
1997
–
JDBC,
RMI,
ReflecQon..
• J2SE
1.2
–
1998
–
Swing,
CollecQons..
• J2SE
1.3
-‐
2000
–
HotSpot
JVM..
• J2SE
1.4
–
2002
–
assert,
NIO,
Web
start..
• J2SE
5.0
(1.5)
–
2004
–
Generics,
Autoboxing..
• Java
SE
6
(1.6)
–
2006
–
Rhino,
JDBC
4.0
…
• Java
SE
7
(1.7)
–
2011
–
Small
language
changes,
API
Changes
New
Features
• Java
SE
5
– Generics
– Autoboxing
– Improved
looping
syntax
– AnnotaQons
– …
• Java
SE
6
– XML
Processing
and
Web
Services
– ScripQng
– JDBC
4.0
– Desktop
APIs
– …
Generics
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add(new Integer(22));
Iterator i = list.iterator();
while(i.hasNext()) {
System.out.println((String) i.next());
}
Result
Using
Generics
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add(new Integer(22));
Iterator<String> i = list.iterator();
while(i.hasNext()) {
System.out.println((String) i.next());
}
Result
Enhanced
for
-‐
loop
ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
class Main {
public static void main(String [] args) {
// Does not work, 5 is not a Object type!
someMethod(5);
}
class Main {
public static void main(String [] args) {
Integer temp = new Integer(5);
someMethod(temp);
}
// UnBoxing
int s = 5 + a;
}
}
Java
1.5
class Main {
public static void main(String [] args) {
// Works!
someMethod(5);
}
class Main {
public static void main(String [] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(new Integer(6));
list.add(7);
class Main {
public static void main(String [] args) {
System.out.println(Color.WHITE);
Color c1 = Color.RED;
System.out.println(c1);
}
Enum
• Enum
declaraQon
defines
a
class!
• Enum
can
include
methods
• Enum
constants
are
final
staQc
• Compiler
adds
special
methods
like
values
that
returns
an
array
containing
all
the
values
of
the
enum.
• Enum
class
extends
java.lang.enum
Enum
enum Color {
WHITE, BLACK, RED, YELLOW, BLUE;
}
class Main {
public static void main(String [] args) {
for (Color c : Color.values()) {
System.out.println(c);
}
}
}
StaQc
Import
(1/2)
class Main {
public static void main(String [] args) {
int x = Integer.parseInt("55");
int y = Integer.parseInt("56");
int x = Integer.parseInt("57");
}
}
StaQc
Import
(2/2)
import static java.lang.Integer.parseInt;
class Main {
public static void main(String [] args) {
int x = parseInt("55");
int y = parseInt("56");
int z = parseInt("57");
}
}
Metadata
• With
Java
5
it’s
possible
to
add
metadata
to
methods,
parameters,
fields,
variables..
• Metadata
is
given
by
using
annota,ons
• Many
annota.ons
replace
what
would
otherwise
have
been
comments
in
code.
• Java
5
has
built-‐in
annotaQons
Override:
Does
not
Compile!
class Human {
public void eat() {
System.out.println("Eats food");
}
}
class Main {
public static void main(String [] args) {
Programmer jack = new Programmer();
jack.eat();
}
}
Other
AnnotaQons
used
By
Compiler
• @Depricated
–
Gives
warning
if
when
depricated
method
or
class
is
used
• @SuppressWarnings
–
Suppress
all
warnings
that
would
normally
generate
System.out.format
import java.util.Date;
class Main {
public static void main(String [] args) {
Date d = new Date();
// Lot of format characters available!
System.out.format("Today is %TF", d);
}
}
Variable
Argument
List
class Main {
public static void printGreeting(String... names) {
for (String n : names) {
System.out.println("Hello " + n + ". ");
}
}
printGreeting("Jack", "Paul");
printGreeting(names);
}
}
User
Input:
Scanner
Scanner in = new Scanner(System.in);
int a = in.nextInt();
Java
6:
XML
&
Web
Services
• Easy
way
of
creaQng
Web
Services
• Expose
web
service
with
a
simple
annotaQon
Web
Service
package hello;
import javax.jws.WebService;
@WebService
class Publish {
public static void main(String[] args) {
Endpoint.publish(
"http://localhost:8080/circlefunctions",
new CircleFunctions());
}
Generate
Stub
Files
• Generate
stub
files:
– wsgen
–cp
.
hello.CircleFuncQons
Java
6:
Rhino
• Framework
to
connect
to
Java
programs
to
scripQng-‐language
interpreters.
• Rhino
JS
Engine
comes
with
Java
6
• To
ability
to
run
JS
from
Java
and
JS
from
command
line
• Rhino
is
wriken
in
Java
Example
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;