A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© pengmin 中级黑马   /  2016-5-16 23:56  /  449 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

异?常:★★★
异常处理原则:功能抛出几个异常,,抛几个就处理几个。?
功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性
特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在下面。
throw?和throws关键字的区别:?
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。?
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。

线程的2种创建方式(必问)?
创建线程的第一种方式:继承Thread?,由子类复写run方法。?

步骤:?
1,定义类继承Thread类;?
2,目的是复写run方法,将要让线程运行的代码都存储到run方法中;?3,通过创建Thread类的子类对象,创建线程                        对象;?
4,调用线程的start方法,开启线程,并执行run方法。?
线程状态:?
新建:继承Thread类或者实现Runnable接口                s
运行:具备执行资格,同时具备执行权;start()?用于开始一个线程让一个线程运行
冻结:sleep(time)线程进入休眠,wait()等待—notify()唤醒;线程释放了执行权,同时释放执行资格;?
临时阻塞状态:线程具备cpu的执行资格,没有cpu的执行权;?
消亡:stop()?

创建线程的第二种方式:实现一个接口Runnable。
?步骤:?
1,定义类实现Runnable接口。?
2,覆盖接口中的run方法(用于封装线程要运行的代码)。
?3,通过Thread类创建线程对象;?
4,将实现了Runnable接口的子类对象作为实际参数传递给Thread类中的构造函数。
?为什么要传递呢?
因为要让线程                对象明确要运行的run方法所属的对象。?
5,调用Thread对象的start方法。开启线程,并运行Runnable接口子类中的run方法。?
Ticket?t?=?new?Ticket();?
New Thread(t).start()
/*?
直接创建Ticket对象,并不是创建线程对象。?
因为创建对象只能通过new?Thread类,或者new?Thread类的子类才可以。?
所以最终想要创建线程。既然没有了Thread类的子类,就只能用Thread类。?*/?
Thread?t1?=?new?Thread(t);?//创建线程。

3 个回复

倒序浏览
赞  不会刚好看看
回复 使用道具 举报
总结的不错,会了
回复 使用道具 举报
感谢分享,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马