黑马程序员------2015.6.17java基础--异常--package---线程
2015-06-17 22:26
483 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1. 自定义异常时:如果该异常的发生,无法再继续进行运算
就让自定义异常继承RuntimeException
对于异常分两种:
a.编译时被检测的异常
如函数内部抛出非运行时异常,而函数外没有抛出异常,则会编译失败
或者,程序调用抛出异常的函数时,没有对其进行处理。
b.编译时不被检测的异常(运行时异常,RuntimeException以及其子类)
在函数内部抛出运行时异常就可以。
2.finally通常用于关闭资源
3.格式-:try{
} catch() {
}
格式二:try{
} catch() {
} finally {
}
格式三:try{
} finally {
}
4.异常在子父类覆盖中的体现
a.子类在覆盖父类时,如果父类的方法抛出异常,那么子类覆盖方法,只能抛出父类的异常或者该异常的子类
b.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
c.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。
5.只有出现System.exit(0);finally不会被执行到
6.继承体系中 相同的变量不会被覆盖
7.throw单独存在时,下面不要定义语句,因为执行不到。
8.包package
将class文件放到指定的文件中
javac -d c:\file Test.java
javac -d . Test.java //放到当前文件中
9.包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
不同包中的子类还可以直接访问父类中被protected权限修饰的成员
包与包之间可以使用的权限有public protected
public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok
不同包 ok
10.一个文件中不允许出现两个同为public的类
11.import 为了简化类的书写
建议不写通配符* 占内存
12.进程:是一个正在执行中的程序
每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元
线程:就是进程中的一个独立的控制单元。
线程在控制着进程的执行。
一个进程中至少有一个线程。
java JVM 启动的时候会有一个进程java.exe
该进程中至少一个线程负责java程序的执行。
而且这个线程运行的代码存在于main方法中
该线程称为主线程。
其实更细节的说jvm,它启动不止一个线程,还有负责垃圾回收机制的线程。
13.如何定义一个线程呢?
方式一:继承Thread,覆盖run方法
步骤:a.定义类继承Thread
b.复写Thread类中的run方法
目的:将自定义的代码存储在run方法中
c.调用线程的start方法,
该方法有两个作用:启动线程,调用run方法
14.发现运行结果每一次都不同。
因为多线程都获取cpu的执行权。cpu执行到谁,谁就运行。
明确一点,在某时刻只能有一个程序在运行(多核除外)。
cpu在做着快速的切换,以达到看上去是同时运行的效果。
这就是多线程的一个特性:随机性,谁抢到谁执行,至于执行多长时间,cpu说了算。
15.为什么要覆盖Thread的run方法?
Thread类用于描述线程。
该类就定义了一个功能,用于存储线程类要运行的代码,该存储功能就是run方法
也就是说Thread类中的run方法,用于存储线程要运行的代码。
16.
17.局部变量在每一个线程中都有一份
1. 自定义异常时:如果该异常的发生,无法再继续进行运算
就让自定义异常继承RuntimeException
对于异常分两种:
a.编译时被检测的异常
如函数内部抛出非运行时异常,而函数外没有抛出异常,则会编译失败
或者,程序调用抛出异常的函数时,没有对其进行处理。
b.编译时不被检测的异常(运行时异常,RuntimeException以及其子类)
在函数内部抛出运行时异常就可以。
2.finally通常用于关闭资源
3.格式-:try{
} catch() {
}
格式二:try{
} catch() {
} finally {
}
格式三:try{
} finally {
}
4.异常在子父类覆盖中的体现
a.子类在覆盖父类时,如果父类的方法抛出异常,那么子类覆盖方法,只能抛出父类的异常或者该异常的子类
b.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
c.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。
5.只有出现System.exit(0);finally不会被执行到
6.继承体系中 相同的变量不会被覆盖
7.throw单独存在时,下面不要定义语句,因为执行不到。
8.包package
将class文件放到指定的文件中
javac -d c:\file Test.java
javac -d . Test.java //放到当前文件中
9.包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
不同包中的子类还可以直接访问父类中被protected权限修饰的成员
包与包之间可以使用的权限有public protected
public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok
不同包 ok
10.一个文件中不允许出现两个同为public的类
11.import 为了简化类的书写
建议不写通配符* 占内存
12.进程:是一个正在执行中的程序
每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元
线程:就是进程中的一个独立的控制单元。
线程在控制着进程的执行。
一个进程中至少有一个线程。
java JVM 启动的时候会有一个进程java.exe
该进程中至少一个线程负责java程序的执行。
而且这个线程运行的代码存在于main方法中
该线程称为主线程。
其实更细节的说jvm,它启动不止一个线程,还有负责垃圾回收机制的线程。
13.如何定义一个线程呢?
方式一:继承Thread,覆盖run方法
步骤:a.定义类继承Thread
b.复写Thread类中的run方法
目的:将自定义的代码存储在run方法中
c.调用线程的start方法,
该方法有两个作用:启动线程,调用run方法
14.发现运行结果每一次都不同。
因为多线程都获取cpu的执行权。cpu执行到谁,谁就运行。
明确一点,在某时刻只能有一个程序在运行(多核除外)。
cpu在做着快速的切换,以达到看上去是同时运行的效果。
这就是多线程的一个特性:随机性,谁抢到谁执行,至于执行多长时间,cpu说了算。
15.为什么要覆盖Thread的run方法?
Thread类用于描述线程。
该类就定义了一个功能,用于存储线程类要运行的代码,该存储功能就是run方法
也就是说Thread类中的run方法,用于存储线程要运行的代码。
16.
/* 练习:创建两个线程和主线程同时运行 原来线程都有自己默认的名称 Thread-编号 该编号从0开始 static Thread currentThread();获取当前线程对象 相当于 this getName();获取线程名称 设置线程名称:setName或者构造函数 */ class ThreadDemo { public static void main(String[] args) { Demo d1 = new Demo("one"); Demo d2 = new Demo("two"); d1.start(); d2.start(); //d.run();这样仅仅是对象调用方法,而线程创建了,并没有运行 for(int x=0;x<100;x++) { System.out.println("hello world"+x); } } } class Demo extends Thread { public Demo(String name) { super(name); } public void run() { for(int x=0;x<100;x++) { //this.getName()获得线程的名字,每个线程都有自己的名字 //Thread-编号 该编号从0开始 System.out.println(this.getName()+"demo"+x); System.out.println((Thread.currentThread()==this)+this.getName()+x); } } }
17.局部变量在每一个线程中都有一份
相关文章推荐
- 校招面试题
- 我自己的Android面试试题总结整理
- 程序员福利---免费接口
- 黑马程序员——String类
- 黑马程序员------File及IO流
- 黑马程序员------内部类
- 黑马程序员------java语言基础
- 黑马程序员------String、正则及常用类
- 第一次一年程序员面试
- 阅读《构建之法》第13~17章及读《一个程序员的生命周期》感想
- C 语言字符串处理函数实现合集
- 黑马程序员------java语言基础
- 为什么中国需要职业经理人?
- 程序员学习编程需要攻克的8个障碍
- 课本最后一章《人,绩效和职业道德》及博客园博客阅读读后感
- 怎么面试架构师
- 前端面试学习笔记之HTML
- 搜狐 云端服务组实习面试小记
- 阅读《构建之法》第13-17章和《一个程序员的生命周期》有感
- 挑战面试编程:左移字符串