<properties>
<comment>Hi</comment>
<entry key="id">1</entry>
<entry key="name">rocie</entry>
<entry key="email">rocie@sina.com</entry>
</properties>
|
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("d:/jdk5/properties/test.xml");
prop.loadFromXML(fis);
prop.list(System.out);
System.out.println("Name: " + prop.getProperty("name"));
|
InputStream is = PropertiesTest.class.getClassLoader().getResourceAsStream("rocie.xml");
Properties ps = new Properties();
ps.loadFromXML(is);
System.out.println("name:"+ps.getProperty("name"));
|
Properties prop = new Properties();
prop.setProperty("id", "2");
prop.setProperty("name", "彭大双");
prop.setProperty("email", "pds@dotraining.com");
FileOutputStream fos = new FileOutputStream("d:/jdk5/properties/pds.xml");
prop.storeToXML(fos, "彭大双","gbk");
fos.close();
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Hi</comment>
<entry key="id">1</entry>
<entry key="name">rocie</entry>
<entry key="email">rocie@sina.com</entry>
</properties>
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for properties -->
<!ELEMENT properties ( comment?, entry* ) >
<!ATTLIST properties version CDATA #FIXED "1.0">
<!ELEMENT comment (#PCDATA) >
<!ELEMENT entry (#PCDATA) >
<!ATTLIST entry key CDATA #REQUIRED>
|
问题:ConcurrentModificationException、fail-fast
解决方法:java.util.concurrent
public static List<Integer> list = new ArrayList<Integer>();
public static int[] is = new int[]{1,2,3,4,65,456};
static
{
for(int i=0;i<100;i++)
list.add(i);
}
public static void main(String args[])
{
for(Integer i:list)
System.out.println(i);
System.out.println("-------other for each--------");
for(int i:is)
System.out.println(i);
}
|
public class EnumTest {
private Color color;
public static enum Color {red,yellow,blue,green};
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
public static void main(String args[])
{
for(Color c:Color.values())
{
System.out.println("name:"+c.name()+"ordinal:"+c.ordinal());
}
EnumTest et = new EnumTest();
et.setColor(Color.red);
Color c = et.getColor();
switch(c)
{
case red: System.out.println("red:"+c.name()+c.ordinal());
break;
case yellow: System.out.println("yellow"+c.name()+c.ordinal());
break;
default : System.out.println("over");
}
}
} |
定义简单的泛型
public static void main(String args[])
{
List<String> list = new ArrayList<String>();
for(int i=0;i<100;i++)
list.add(String.valueOf(i));
String five = list.get(4);
} |
使用通配符
public abstract class Shape {
public abstract void draw(Canvas c);
}
public class Circle extends Shape { private int x, y, radius;
public void draw(Canvas c) { ... }
}
public class Rectangle extends Shape { private int x, y, width, height;
public void draw(Canvas c) { ... }
}
public class Canvas {
public void draw2All(List<? extends Shape> shapes)
{
for (Shape s: shapes)
s.draw(this);
}
public static void main(String args[])
{
List<Shape> list = new ArrayList<Shape>();
list.add(new Circle());
list.add(new Rectangle());
new Canvas().draw2All(list);
}
}
|
泛形方法
public static <T> void fromArrayToCollection(T[] a, Collection<T> c)
{
for (T o : a)
c.add(o);
for(T o:c)
System.out.println(o);
}
public static void main(String args[])
{
String[] as = new String[]{"1s","2s","3s","4s"};
List<String> list = new ArrayList<String>();
fromArrayToCollection(as,list);
Integer[] is = new Integer[]{new Integer(1),new Integer(2),new Integer(3)};
List<Integer> li = new ArrayList<Integer>();
fromArrayToCollection(is,li);
} |
public static void main(String args[])
{
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<100;i++)
list.add(i);
} |