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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 等风来! 中级黑马   /  2015-11-24 21:01  /  821 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

异常总结
1:异常(理解)
        (1)异常:就是程序出现的不正常情况。

        (2)异常体系:
                Throwable
                        |--Error 严重的问题,是处理不了的。要改正代码的。
                        |--Exception
非RuntimeException的,是需要处理的。编译期异常。
                                |--RuntimeException 不需要处理的,是需要改代码的。运行期异常。
                举例:
                        Error:
                                地震,海啸。
                        Exception:
                                感冒了,头疼。
                注意:
                        每种体系的子类都是以父亲的名称作为后缀。
                        XxxError
                        XxxException

        (3)java虚拟机的默认处理方式
                把异常的类名,原因,位置等信息显示在控制台。
                一旦有异常发生,其后的代码不能继续执行。

        (4)异常的解决方案:
                A:自己处理
                        基本格式:
                                try{
                                        可能发生异常的代码;
                                }catch(异常类名 变量名){
                                        异常的处理代码;
                                }finally{
                                        释放资源的代码;
                                }
                        注意:一旦有一次发生,就会立马执行catch里面的代码。

                        变形格式:
                                try...catch
                                try...catch...catch
                                try...catch...catch...finally
                                try...finally
                       
                        JDK7针对多个catch进行了优化:
                                catch(异常1 | 异常2 | 异常3 ... 变量){}

                                注意:这些异常必须是平级关系。
                                      和try...catch...catch的不同点是
                                      JDK7的这种方案是必须平级关系,不能有子父关系。
                                      而try...catch...catch父亲放最后是可以的。
                B:抛出处理
                        用throws关键字在方法上声明(抛出)。

                C:到底使用谁?
                        a:能自己处理的尽量自己处理。(建议用try...catch)
                        b:实在不行,你先抛了在说。上就业班我们对异常是进行统一处理的。

                        看到问题,点击鼠标。

可能出现的面试题:

        (5)finally的特点及面试题
                A:特点
                        里面的代码永远会执行。除非前面退出jvm。c
                B:面试题
                        a:请说说final,finally,finalize的区别?
                        b:finally里面的代码永远会执行吗?
                        c:假如在catch里面有ruturn,finally里面的代码还能被执行吗?
                          如果能,请问是在return前,还是在return后?

                          如果你能说在中间,就更好了。


        (6)Exception和RuntimeException的区别?
                A:Exception 编译时期异常,必须处理的。
                            如果在方法上,throws了该类型的异常,将来调用者必须处理。
                            如果在方法内部,throw了该类型的异常,必须在方法上throws该异常。
                B:RuntimeException 运行时期异常,是不需要处理的。要改代码的。
                            如果在方法上,throws了该类型的异常,不需要处理。
                            如果在方法内部,throw了该类型的异常,方法上可以throws该异常,也可以不throws该异常。


        (7)throw和throws的用法和区别?
                A:throw
                        用法:用在方法内部,后面跟的是异常对象名称。
                        区别:用throw抛出了编译时期异常,方法上面必须用throws抛出。
                              用throw抛出了运行时期异常,方法上面可以不用throws抛出。
                B:throws
                        用法:用在方法声明上,后面跟的是异常类名。
                        区别:用throws在方法上声明了异常,内部可以没有throw


File类总结
1. File类(掌握)
       (1)概述
              因为数据在硬盘上最常见的方式,就是文件。而文件本身有很多的属性,比如说:文件大小,是否可读,是否隐藏。那么java为了方便我们对文件进行操作,就提供了File类供我们使用。
              File:既可以表示文件,也可以表示(目录)文件夹。  

       (2)构造方法:
          File(String pathname):根据指定的路径创建File对象。
              File(String parent,String child):根据指定的父文件夹和子文件或者文件夹创建File对象
              File(File parent,String child):根据指定的父文件夹对象和子文件或者文件夹创建File对象

       (3)成员方法:
          a:创建功能:
        创建文件:public boolean createNewFile()如果指定的文件不存在,就创建。如果存在, 就不创建
    创建文件夹:public boolean mkdir()创建指定的目录,如果存在,就不创建
                        public boolean mkdirs()创建指定的目录,如果存在,就不创建。这个时候,如果父目录不存在,它也会自动创建
        注意:你要创建什么,自己最清楚。也就是,你要调用哪个方法,你自己必须明白
                      因为如果你不明白,就会有问题。
                绝对路径:以盘符开始的路径
                相对路径:不以盘符开始的路径
              b:删除功能:
                     public boolean delete():既可以删除文件,也可以删除文件夹,取决于使用的对象
                     注意:A:如果你删除的目录下还有内容,那么,必须先把使用内容删除完毕后,在删除目录
                   B:java语言的删除不走回收站
             c:判断功能:(自己补齐功能方法名和返回值以及参数列表)
                 判断file对象是否存在
                                exists()
                     判断file对象是否是文件
                                isFile()
             判断file对象是否是文件夹
                                isDirectory()
                     判断file对象是否是绝对路径
                                isAbsolute
                     判断file对象是否可读
                                canRead()
                     判断file对象是否可写
                                canWrite()
                     判断file对象是否隐藏
                                isHidden()

         d:获取功能:(自己补齐功能方法名和返回值以及参数列表)

                 获取文件的绝对路径
                                getAbsolutePath()
                     获取相对路径
                                getPath()
                     获取文件名称
                                getName()
                     获取文件的大小,单位是字节
                                length()
                     获取上次修改时间的毫秒值
                                lastModified()
                     列出可用的系统文件根目录
                                listRoots()
                     返回的是指定目录下所有文件或者文件夹的名称数组
                                String[] list()
                     返回的是指定目录下所有文件或者文件夹对象数组
                                listFile()
     

1 个回复

倒序浏览
第一种:局部结构体
#include<stdio.h>
int main(){
    //一种正常的局部结构体
  
struct person{
    char *name;
    int age;
};
//赋值与取值
    struct person per={"angelaBaby",23};
    printf("name=%s---age=%d\n",per.name,per.age);
    return 0;
}
第二种:全局结构体
#include<stdio.h>
struct person{    //一种全局结构体
    char *name;
    int age;
}per={"angelaBaby",23};
int main(){
//赋值与取值
    printf("name=%s---age=%d\n",per.name,per.age);
    return 0;
}
第三种:匿名类型结构体
//匿名类型结构体
#include<stdio.h>
int main(){
    struct {
        char *name;
        int age;
    }per={"angelaBaby",23};
   
    printf("name=%s---age=%d\n",per.name,per.age)
   
}
第四种:嵌套类型结构体
//嵌套类型结构体
#include<stdio.h>
int main(){
    struct person{
        char *name;
        int age;
    }p1;
    struct actor{
        char *name;
        int age;
        struct person p1;
    }a1={"huangXiaoMing",30,
        {"angelaBaby",23}};
    printf("演员名字是= %s,年龄是 %d,人名字是= %s,年龄是 %d\n",a1.name,a1.age,a1.p1.name,a1.p1.age);//需注意的地方!!!
    return 0;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马