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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清风木扬 中级黑马   /  2014-3-27 11:24  /  952 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一。异常
     1. 异常:就是程序在运行时出现不正常情况。
     2,异常的处理
java 提供了特有的语句进行处理。

try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
一定会执行的语句;
}
3.异常的常用方法。
   e.getMessage();异常信息
   e.toString());// 异常名称  异常信息。
   e.printStackTrace();//异常名称,异常信息,异常出现的位置。
4.throws与throw区别
   throws用函数上,throw用在函数内.
   throws后面跟异常类名,可以跟多个类。throw 跟异常类对象。
5.多个catch时(为了具体异常,具体处理。catch块中的异常存继承时,父类放到后面)。
7.异常分类
   编译时被检测异常,编译时不被检测的异常(运行时异常,RuntimeException 及其子类)
6.自定义异常类()
class ExtendException extends Exception
{
   public  ExtendException ()
   { super();}
   public  ExtendException(String msg)
   {super(msg);}
}
class DivException
{
    public int div(int x,int y)throws ExtendException
    {
     if(y<0)
      throw new ExtendException(y+"小于");
     return x/y;
    }
}
class DivExceptionTest
{
public static void main(String[] args)
{
  try
  {
    DivException d=new DivException();
    int x=8;
    int y=-1;
     d.div(x,y);
  }
  catch(ExtendException e)
  {
   System.out.println(e.getMessage());
  }
  
}
}
二,多线程。
1.线程与进程
   进程:是一个正在执行中的程序。
   线程:就是进程中的一个独立的控制单元。

2.线程生成。
  2.1 第一种:继承Thread类实现public void run(){}
  2.2  第二种:把实现Runnable接口中的public void run(){}的实例,传给Thread

实现方式(线程间可以共享资源“卖票”)和继承方式有什么区别呢?
继承Thread:线程代码存放Thread子类run方法中。
实现Runnable,线程代码存在接口的子类的run方法。

3.线程安全(读了错误数据)与同步(多次读写  wait() notify()) (安全与同步的 锁旗相同)
      
  线程安全
  
  问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参       与进来执行。导致共享数据的错误。
  解决办法:对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不可以参与执行。

synchronized(对象){需要被同步的代码}  
好处:解决了多线程的安全问题。
弊端:多个线程需要判断锁,较为消耗资源,  

4.静态同步
      静态的同步方法,使用的锁是该方法所在类的字节码文件对象。 类名.class
     非静态的同步方法,使用的锁是该方法所在类的对象。

5.常用方法
  join():
      当A线程执行到了B线程的.join()方法时,A就会等待。等B线程都执行完,A才会执行。
      B.join(1000)  B执行1后再分离开。
   interrupt();  
       将冻结状态,强制让线程恢复到运行状态中来。

   由前台线程创建的线程默认也是前台线程。
    isDaemon()和setDaemon()方法来判断和设置一个线程是否为后台线程

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马