Java一句话

来源:互联网 发布:java 文件上传类型 编辑:程序博客网 时间:2024/05/21 06:15

此文是我自己在学习Java过程中觉得有用的且容易混淆或者遗忘的一句话总结。
1)long类型不能用于switch语句;
2)一个接口可以继承(扩展)多个接口;
3)在方法块中声明静态变量时,会引起编译错误;
4)检验异常通过Exception类的子类进行定义,而非检验异常则通过RuntimeException类的子类进行定义;
5)可以通过匿名内部类来直接实例化抽象类或接口;
6)在静态嵌套内部类存在于接口内部时,接口可以将内部存在实现方式的引用数据类型包括进去;

public interface Command{public void execute(String s);public static class Dos implements Command{public void execute(String s){//some codes to execute a dos command}}public static class Unix implements Command{public void execute(String s){//some codes to execute a Unix command}}}

现在,如果我们想在UNIX平台上运行,那么可以使用如下代码:
Command c = new Command.Unix();c.execute("dir");

7)获得当前线程的引用:Thread t = Thread.currentThread();
获得当前线程组的引用:ThreadGroup tg = Thread.currentThread().getThreadGroup();

8)序列化(Serializable)过程中从不存储临时实例(声明为transient);
serializable是标记性接口,无可实现方法,只是通知编译器其实现类可被序列化。当一个实例被声明为transient时,其值在序列化过程中将丢失。

import java.io.*;public class TestObjectIO {public static void main(String[] args) {T t = new T();t.k = 8;try {FileOutputStream fos = new FileOutputStream("e:/debug/testObjectIO.dat");ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(t);oos.flush();oos.close();FileInputStream fis = new FileInputStream("e:/debug/testObjectIO.dat");ObjectInputStream ois = new ObjectInputStream(fis);T tRead = (T)ois.readObject();System.out.println(tRead.i+","+tRead.j+","+tRead.d+","+tRead.k);}catch(FileNotFoundException e) {e.printStackTrace();}catch(ClassNotFoundException e) {e.printStackTrace();}catch(IOException e) {e.printStackTrace();}}}class T implements Serializable {int i = 10;int j = 9;double d = 2.3;transient int k = 15;}

运行结果:10,9,2.3,0

实现externalizable接口可以自行控制序列化过程,而serializable由于没有方法所以无法由程序员自己控制序列化过程。

9)

原创粉丝点击