0% found this document useful (0 votes)
70 views36 pages

224 Questions

The document summarizes new features introduced in Java 5 and Java 6. In Java 5, generics, autoboxing/unboxing, enhanced for loops, and annotations were added. Java 6 introduced improvements to XML processing, web services, scripting via Rhino, database support via Java DB, and GUI enhancements.

Uploaded by

saumitra ghogale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
70 views36 pages

224 Questions

The document summarizes new features introduced in Java 5 and Java 6. In Java 5, generics, autoboxing/unboxing, enhanced for loops, and annotations were added. Java 6 introduced improvements to XML processing, web services, scripting via Rhino, database support via Java DB, and GUI enhancements.

Uploaded by

saumitra ghogale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Java

 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");

// Loop array or collection. Iteration used


// even without declaration! The list object
// must implement java.lang.Iterable interface
for(String alphabet : list) {
System.out.println(alphabet);
}
Java  1.4  
import java.util.*;

class Main {
public static void main(String [] args) {
// Does not work, 5 is not a Object type!
someMethod(5);
}

public static void someMethod(Object a) {


System.out.println(a.toString());
}
}
Java  1.4:  SoluQon  
import java.util.*;

class Main {
public static void main(String [] args) {
Integer temp = new Integer(5);
someMethod(temp);
}

public static void someMethod(Object a) {


System.out.println(a.toString());
}
}
Java  1.4:  Lot  of  Coding  
Integer a = new Integer(5);
Integer b = new Integer(6);
int aPrimitive = a.intValue();
Int bPrimitive = b.intValue();
Autoboxing  Comes  to  Rescue!  
class Main {
public static void main(String [] args) {
// Boxing
Integer a = 2;

// UnBoxing
int s = 5 + a;
}
}
Java  1.5  
class Main {
public static void main(String [] args) {
// Works!
someMethod(5);
}

public static void someMethod(Object a) {


System.out.println(a.toString());
}
}
Java  1.5  
import java.util.*;

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);

for(int number : list) {


System.out.println(number);
}
}
}
Enum  
•  An  enum  type  is  a  type  whose  fields  consist  of  
a  fixed  set  of  constants  
 
enum Color {
WHITE, BLACK, RED, YELLOW, BLUE;
}
Usage  
enum Color {
WHITE, BLACK, RED, YELLOW, BLUE;
}

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 Programmer extends Human {


@Override
public void eatSomeTypo() {
System.out.println("Eats pizza");
}
}

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 + ". ");
}
}

public static void main(String[] args) {


String [] names = {"Jack", "Paul"};

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

public class CircleFunctions {


public double getArea(double r) {
return java.lang.Math.PI * (r * r);
}

public double getCircumference(double r) {


return 2 * java.lang.Math.PI * r;
}
}
Server  
import javax.xml.ws.Endpoint;

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;

public class Main {


public static void main(String[] args) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");

// Now we have a script engine instance that


// can execute some JavaScript
try {
engine.eval("print('Hello')");
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
}
Java  6:  GUI  
•  Faster  Splash  Screens  
•  System  tray  support  
•  Improved  Drag  and  Drop  
•  Improved  Layout  
•  WriQng  of  Gif  -­‐  files  
Java  6:  DB  Support  
•  Java  6  comes  with  preinstalled  relaQonal  
database,  Oracle  release  of  Apache  Derby  
Project  
•  Java  DB  is  installed  automaQcally  as  part  of  
the  Java  SE  Development  Kit  (JDK).  
•  For  a  Java  DB  installaQon,  set  the  
DERBY_HOME  environment  variable  
Java  7  
•  Using  Strings  in  switch  statements  
•  Syntax  for  automaQc  cleaning  of  streams  
•  Numeric  literals  with  underscores  
•  OR  in  excepQon  catches  
 

You might also like