Java笔记
来源:互联网 发布:五十岁而知天命 编辑:程序博客网 时间:2024/05/29 10:40
1.异常匹配遵循就近原则。若要捕获所有异常要用基类Exception,即catch(Exception e)
2.对异常的处理,要么处理(即捕捉)异常要么声明异常。声明异常格式:
void f() throws Sneeze{
throw new Sneeze();
}
void g() throws Exception{
try{
f();
}catch(){}
}
3.Exception有个接口throwable,接口下有四个方法:String getMessage(); String toString(); Void PrintStackTrace(); void printStackTrace(print stream)。
4.如何创建自己的异常,相当于定义自己的异常。
5.Rethrow(异常再次抛出):可抛出不同异常也可抛出相同异常。
6.异常发生可能导致某些操作无法被执行,而这些操作又是必须要被执行,则可以把这些操作代码写在finally{操作代码}。
7.对于执行时异常抛出时可以不声明。
8.class A{
void f() throws E1{}
}
class B extends A{
void f() throws E2{}
}
注:在子类里不可以抛出不同于父类的异常,只可抛出父类抛出的异常。上述例不正确。
9.Throwable包括Error和Exception。Error交给系统处理,弹出警告。Exception是异常基类。
10.如果不处理异常,异常向上抛出,出现运行时异常,编译没问题。
1.import java.io.*;
import java.util.*;
public class DirList{
public static void main(String[] args){
File path = new File(".");
String[] List;
if(args.Length == 0)
List = path.List();
else
List = path.List(new DirFilter (args[0]));
for(int i = 0; i<List.Length; i++)
System.out.println(List[i]);
}
}
class DirFilter implements FilenameFilter{
String afn;
DirFilter(String afn){
this.afn = afn ;
}
public boolean accept(File dir, String name){
//strip path information
String f = new File(name).getName();
return f.indexof(afn) !=-1; //f获得文件与afn匹配,不成功用-1表示
}
}
//运行时可查询当前文件夹所在文件 java 文件名 ·要查询文件扩展名
2.Input Stream , Reader ; Output Stream , Writer .
输入源可能是:Byte array , a String array , a file , a pipe
3.FilterInputStream可将多个流连接到一起。
FilterInputStream DateInputStream
BufferInputStream
FilterOutputStream DateOutputStream
PrintOutputStream
BufferOutputStream
4.InputStreamReader 可将 Input Stream 转换为 Reader ; OutputStreamWriter 可将 Output Stream 转换为 Writer .
5.Buffered Reader in = new BufferedReader(new FileReader("IoStreamDemo.java"));
String s.s2 = new String();
while((s=in.readLine()) != null)
s2 + = s + "\n";
in.close;
//输入源是文件
6.BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a line");
System.out.println(stdin.readLine()); //输入源是标准输入
7.随机文件访问
RandomAccessFile rf = new RandomAccessFile("rtest.dat","rw")
8.System.setIn(InputStream);
System.setOut(OutputStream);
System.setErr(OutputStream); //标准输入、输出、错误的重定向
9.ThreadsDemo1 t1 = new ThreadsDemo1(r1);
ThreadsDemo1 t2 = new ThreadsDemo1(r2);
t1.start();
t2.start();
10.InputStream/OutputStream 字节流 reader/writer 字符流
1.Thread t;
t = new Thread(this); //线程创建
t.start(); //线程启动
可定义在构造方法中。
2.线程睡眠可用sleep()方法。
3.生命周期方法:start()/stop(); suspend()/resume(); Thread.sleep(); join(); Thread.yield()。
4.把线程定义在一个组里,可实现多个线程统一挂起或唤醒。
5.关键字synchronized修饰句可加速线程,即只有一个线程可访问。
synchronized也可修饰方法,即只有一个进程可调用。
6.wait和notify All 可协调进程间的合作。
7.线程创建的两种方法:1)继承thread方法;2)定义thread对象。
8.对象a1,a2加锁后synchronized,a1访问f()方法时,a2也可访问f()方法,因锁作用的是对象a1,a2.
9.死锁是由于线程间互相等待出现。比如线程A访问资源a,锁住资源a,请求资源b;而此时线程B访问资源b,锁住资源b,请求资源a。致使线程 A,B陷入死锁状态。
10.IP地址的获得:
import java.net.*;
public class WhoAmI{
public static void main(String[] args)
throws Exception{
if(args.Length != 1){
System.err.println("Usage: WhoAmI MachineName");
System.exit(1);
}
InetAddress a = InetAddress.getByName(args[0]);
System.out.println(a);
}
}
- java笔记
- JAVA笔记
- java笔记
- java笔记
- JAVA笔记
- java笔记
- Java 笔记
- java笔记
- java 笔记
- java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- Java笔记
- java笔记
- java笔记
- ruby 正则表达式的含义
- 数学之美系列二:谈谈中文分词
- 轻松搞定面试中的二叉树题目
- ActiveRecord 验证及回调函数callback
- 现在优化软件概述--引自浙大江爱朋博士论文
- Java笔记
- 跟踪Oracle启动状态
- DeepLearnToolbox_DBN notes
- rails 单表继承 观察者
- 2013视觉跟踪的初学者
- SWT、Swing 或 AWT:哪个更适合您?
- 《人月神话》读书笔记
- 通过继承CWinThread实现MFC多线程
- scrollview 中嵌套 edittext edit无法获取焦点的解决办法