2016/5/3 复习

异常处理   try  cathc  finally        Exception表示检查异常    RuntimeException运行时异常     thow抛出异常   thows声明异常

如果父类声明了异常 子类重写父类声明异常 不能比父类的异常多  也不能大余父类异常的声明 

常用类  :  System类  系统类     常用方法: currentTimeMillis()返回以毫秒为单位的时间    

exit(int status)  终止当前正在运行的JAVA虚拟机     getProperties()确定当前的属性  

getProperty(String key)获得指定键指示的系统属性   nanoTime()返回最准确的可用系统计时器的当前值,以毫秒为单位

gc() 运行垃圾回收器   

Runtime类  代表JAVA运行环境     String类 字符串不可更改    StringBuffer类 可更改字符串 用toString转换为String类

StringBuilder 类 大致和StringBuffer一样  但运行速度快 安全性不高  

Date类   时间类(已过时)    Calendar类GregorianCalendar类  时间类 改良版   Calendar是一个抽象类

Math 数学类  

 

反射 类加载 垃圾回收     

类加载分为三部     加载————链接——————初始化

加载 :加载过程(3部)完成后得到class对象          根加载  自己编制的程序    扩展加载  JAVAX.*    JAR包    加载扩展类文件     系统加载   加载不需要new的系统类

链接:  验证:结构是否正确 是否和其他类保持一致    准备:为静态属性分配内存   设置初始值     解析:将类的二进制书记中的符号替换为直接引用 

初始化 :  验证是否被加载 链接  若没有 就加载 链接          验证该类的父类有没有初始化   若没有便初始化父类    若类中有初始化语句 优先依顺序执行初始化语句

什么时候初始化 类 (接口):

创建类的时候    调用某个类的静态方法      访问或修改某个类的静态属性    反射强制创建这个类的class文件    初始化某个类的子类    直接用java。exe命令运行主类

 

反射:   在运行期得到  载入 编译时不知道的类    作用:可以装载运行时才能得到的一个类的  属性  成员变量  结构  或者创建对象这些平时对类的操作

反射查看类信息:  编译期不知道类名  运行期能得到类名  用forName()方法得到对象

编译期知道名字 :  直接用属性获得对象(new)      得到了实例对象 : getClass方法返回所属类对应的对象  

创建对象 : new  反射  对象克隆  对象反序列化   四种方法  

 

多线程  :  运行一个程序可以叫做一个进程    一个进程有多个线程(各种不同的功能)  线程由CPPU控制  Thread线程类  

如何创建  :  继承一个Thread类     Thread子类中重写run方法     创建Therad子类的实例    调用实例上的start方法    

实现Runnable接口创建线程     Thread是Runnable的子类   Runnable可以有效分离线程 较好的体现了面向对象的设计    可以避免单继承 

同步异步   :同步 有序列的线程排序  用于资源唯一性的时候 (如买票有排列性    

异步:  无序的线程运行   资源抢夺分配 

死锁: A需要B的运行结果来运行  而B也需要A的运行结果来运行    都不能运行  

 

posted on 2016-05-03 21:23  查理布朗  阅读(137)  评论(0编辑  收藏  举报