要求键值对,采用HashMap/Hashtable; 数据量大,采用Vector;
第25讲 泛型、异常
1、泛型
public static void main(String[] args) { // TODO Auto-generated method stub // Gen
class Bird { public void test1() { System.out.println(\ } public void count(int a,int b) { System.out.println(a+b); } }
class Gen
}
o=a; }
//得到T的类型名称
public void showTypeName() { System.out.println(\}
2、java反射机制
可以通过反射机制获得类的信息。 public void showTypeName() { System.out.println(\ //通过反射机制,可以得到T类型的很多信息,比如T类的成员函数名 Method []m=o.getClass().getDeclaredMethods(); for(int i=0;i 3、泛型作用 类型安全;提高复用率 向后兼容;层次清晰; 性能较高; 4、异常处理 异常分类 (1)检查性异常:java.lang.Exception 程序正确,但因为外界的环境条件不满足引发。如读取的文件不存在。 (2)运行期异常:java.lang.RuntimeException 程序存在bug,需要更改程序。 (3)错误:java.lang.Error 异常处理: 1、try…catch 在出现异常的地方就终止执行代码,然后进入catch 可以有多个catch语句,抓取不同的异常。 public static void main(String[] args) { // // // // // //检查异常 //打开一个不存在的文件 try { Socket s=new Socket(\ System.out.println(\ FileReader fr=new FileReader(\} catch (Exception e) { //把异常信息输出,利于排除bug e.printStackTrace(); } catch(IOException e2) { e2.printStackTrace(); System.out.println(\错误\} 2、finally 在try…catch块后面加finally。 finally { //该语句块无论前面有无异常,都会执行 //一般说,把需要关闭的资源(文件、链接、内存...)关闭 if(fr!=null) try { fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } finally在一些情况不会执行: finally块中有异常; 程序所在线程死亡; 前面的代码中有System.exit(); 关闭了CPU。 3、将异常抛出 利用throws将异常抛出,抛出给调用者。 以下程序中,Father调用了Son中的test1函数,而test1将自己的异常throws,则调用者Father的对象必须处理该异常。 class Son { public void test1() throws Exception { FileReader fr=null; fr=new FileReader(\ } } class Father { public Son son; public Father() { son=new Son(); } public void test2() throws Exception { son.test1(); } } 第27讲 作业 String String pool中放置的String,如果两个字符直接赋值,且是相等的,则他们的地址是相同的。 如果是String a=new String(“abc”),则不会相等,各自有自己的空间。 String a=\ String b=\ if(a==b) { System.out.println(\ } else System.out.println(\ } 第29讲 swing介绍 1、JFrame JFrame jf=new JFrame(); //给窗口设置标题 jf.setTitle(\ //设置窗口大小,单位像素px jf.setSize(200, 200); //设置初始位置 jf.setLocation(300, 300); //设置点击关闭按钮时的操作 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示 jf.setVisible(true); 2、JButton JButton jb1=null; jb1=new JButton(\按钮\ this.add(jb1); 第30讲 布局管理器 1、边界布局BorderLayout 将容器划分为东南西北中五个部分。