黑马程序员_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>、期待与您交流! -------
一 异常:
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>、期待与您交流! -------
相关文章推荐
- 黑马程序员——java基础学习笔记——第四天
- 黑马程序员----java基础笔记
- 黑马程序员-----笔记整理(java基础五-------面向对象--多态)
- 黑马程序员 java基础之IO笔记
- 【屌丝学习笔记】第四天 JAVA基础
- 黑马程序员自学笔记 Java基础<五>---> 多线程
- 黑马程序员_毕向东_Java基础视频教程第十八天-IO流---学习笔记
- 黑马程序员——Java基础教程学习笔记
- 黑马程序员_Java基础笔记 --动态代理
- 黑马程序员_毕向东_Java基础_DAY03_函数_学习笔记
- Java基础班第四天笔记
- 黑马程序员--Java基础学习第四天
- 黑马程序员--- 笔记整理(java基础七-----问题整理)
- 黑马程序员-java基础-集合学习笔记
- 黑马程序员-------学习日记Java基础 第四天
- 黑马程序员__java基础笔记1
- 黑马程序员---------笔记整理(java基础九-----String,StringBuffer,StringBuilder)
- 黑马程序员-----笔记整理(java基础十----集合)
- 黑马程序员——java第四天:基础语法(函数、数组)
- 黑马程序员------java学习笔记之数组基础