您的位置:首页 > 职场人生

黑马程序员_java基础笔记第四天

2015-02-02 13:53 253 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一 异常:

1 定义:

1 Java对不正常情况描述户的对象体现。描述不正常情况的类称之我异常类。

2 特点:

1 将问题封装。

2 将问题与代码隔离。

3 Error:

1 不可处理异常。

2 是jvm虚拟机抛出的严重问

4 Exception:

1 可处理异常。

2 分为编译时期异常和运行时期异常。

3 一般处理编译时期异常,不处理运行时期异常,因为程序员编程时输入错的需要停掉修改代码。

5 异常的处理方式:

1 throws 在方法上抛出异常,当解决表时在方法上抛出。

2 try{}catch(异常对象){}finally{};

6 设定异常:

1 throw:当在函数内声明异常未处理时是函数上必须抛出此异常。RuntimeException函数可以声明

2自定义异常:当编写程序时有自己定义的异常,继承Exception,或RuntimeException。

7 格式

1 一个try一个catch。

2 一个try多个catch。

3 一个或多个catch和一个finally。

4 一个try一个finally。在其他程序中catch。

8 注意:

1 当在多个catch时,上面的catch里的异常不能是下面catch的父类。

2 方法内抛了非运行时异常,那么方法上一定要抛异常。

3 当在函数内抛出异常但没处理,发生异常时下面的代码会执行不到。

4 获取到异常后不能决绝时,也可以抛出两一个异常。

5 子类不可以抛出父类没有定义过的异常,如有异常时必须在本类方法中处理。

6 可以抛出多异常。

9 异常的一些方法:

1 String getMessage(),返回此 throwable 的详细消息字符串。

2 void printStackTrace(PrintWriter s),将此 throwable 及其追踪输出到指定的 PrintWriter。

3 String toString(),返回此 throwable 的简短描述。

二 包:

1 定义:

1 package

2 包就是文件夹。

3 用来存储class文件。

4 可以在不同包内定义相同名的类,而不冲突。

5 所以在实用类时要明确是那个包下的类。

2 特点:

1 统一管理。

2 可以将class和Java文件分离,提高安全性。

3 格式:

1 Java文件第一行,import.多级包名.类名。

2 本类中调用了其他包的对象时应先导入此包。

4 访问权限:

public protected default private

1 包与包 ok

2 不同包子类 ok ok

3 包中 ok ok ok

4 类中 ok ok ok ok

5 静态导入:

1 Java1.5新特性。

2 将导入一个类的所有静态成员。

3 方便使用不用再加类名点,但是阅读困难。

三 多线程:

1 定义:

1 可个进程内可能会有多条执行路径,每条路径经是以线程。

2 CPU在快速的切换执行这些路径。

3 Java虚拟机是多线程的,在运行main方法时,还在调用垃圾回收机制。

2特点:

1 使多个程序可以同时执行。

2 提高了运行速率。

3 使用:

1 继承Thread类,或实现Runnable接口。

2 重写run方法。

3 调用static方法,1,开启以个线程。2,执行run语句。

4 状态:

1 创建状态。

2 就绪状态。

3 运行状态。

4 等待状态。

5 阻塞状态。

5 同步:

1 前提:

1 当多个线程并发访问共享数据,数据被多条语句调用时,可能导致数据错乱。

2 解决

1 将共享数据封装在同步到吗中。

2 snychronized{};声明在方法内,相当于给数据上了锁。

3 snychronized 放在方法返回至前面。

3 snychronized相关

1 每个同步都有锁;

2 多个run方法访问共享数据是同步锁要相同。

3 同声明在函数上时锁匙this

4 懒汉式并发访问同步锁是,类.class。

4 等待唤醒机制;

1 对象.wait()等待,前面要和锁对象相同,调用时会出现异常。

2 notify()唤醒,前面要和锁对象相同,一般唤醒第一个等待的线程。

3 notifyAll()唤醒线程池中所有线程。

4 他们都是定义在Object类中的。

5 注意wait和sleep最大的差别是wait释放了锁。

6 Lock:

1 定义:

1 显示同步机制,就是可以看到的锁。

2 特点及使用:

1 1.5版本的新特性。

2 可以替代snychronized;

3 把wait() notify() notifyAll()封装为一个Condition对象。

4 await()等待,signal()唤醒本方线程。 signalAll() 唤醒本方所有线程。

5 使用await(),signal()省去循环判断标记的环节。

7 死锁:

1 在两个语句的同步中嵌套了不相同同步锁,而锁的位置是相反的。

2 在进入第一个锁内,想进第二个锁时,锁被另一个线程锁占用,

而他想进入的锁也被本线程占用这时程序就停在那锁死了

8线程的一些方法:

1 设置优先级 setPriority(1~10)

2 Thread.yield();暂停当先线程执行其他线程。

3 join();插入线程执行完插入线程后在执行本线程。

4 static Thread currentThread():获取当前线程对象。

5 getName(): 获取线程名称。

6 设置线程名称:setName或者构造函数。

死锁代码:

public class Student implements Runnable {

int x=0;

@Override

public void run() {

x++;

if(x==1){

synchronized ("1") {

synchronized ("2") {

}

}}

else{

synchronized ("2") {

synchronized ("1") {

}

}

}

}

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: