gistfile1.txt 年饮冰 难凉热血田林哥哥复习:throws出现在方法后,加上一个或者多个异常类,表示本方法不处理这些类型的异常对象,直接抛给调用我的方法;throw出现在方法体内,用于
年饮冰 难凉热血 田林哥哥 复习: throws出现在方法后,加上一个或者多个异常类,表示本方法不处理这些类型的异常对象,直接抛给调用我的方法; throw出现在方法体内,用于创建一个异常对象,然后抛出,如果抛出异常的代码被try包括着,那就用catch拦截;如果当前方法没有处理异常的代码,再看该方法有没有声明不处理这种异常; 异常的类数据结构: 只有一个私有属性message; 有一个有参的构造函数来往该属性里传数据; 通过调用getMessage方法来获取message的值 通过toString方法来获取 异常的类型和异常信息message 通过printStackTrace来获取先默认调用toString(),显示异常所出现的类,方法和代码语句的位置,方便找到异常出现的位置 利用Exception的printStackTrace()来追踪异常出现的异常栈/方法栈情况 所以异常类都是Exception的子类,所以通常有参的构造方法中代码为:super(message); 抛出异常的方法和处理异常的方法尽量在同一个方法里,不然会影响效率 尽量解决运行时异常,同时对编译时异常准备预处理方案,不要让可能出现的异常影响程序的继续执行。 捕获了异常一定要处理。 编译时异常一定要用throws声明,运行时异常允许不用throws声明,但是建议还是声明一下 finally中不要有return! 新姿势: 命令行参数: 在cmd中,java 文件名 参数1 参数2 把参数放在主方法默认接收的字符串args数组里; Param1 = args[0];//取出参数然后处理 System.exit(0);//主动退出 标准流: System.in:标准字节输入流的对象 inputStream; System.out/err:标准(错误)字节输出流的对象 printStream; system继承了标准流类,标准流类又有标准输入流和标准输出流两个子类 标准输入流面向的是 键盘缓冲区; 标准输出流面向的是 显示器; InputStream ir= New inputStreamReader(system.in);//用一个字符流来接收字节流,字符流可以一次读取两个字节的字符,如果是英文字符(一个字节)那就扩充为两个字节;如果是中文(两个字节),那就把两个字节合并为一个字符 BufferReader in = New BufferReader(ir);//用一个缓冲流来接收字符流,缓冲流是读取一行字符,到换行为止 ASCII码是一个字节,unicode码是两个字节 print打印参数,println打印参数并换行 这两个方法对接收多重简单数据类型的参数进行了重载, Print(int)和print(int[])调用的是两个不同的方法 Properties类操作: properties类实现了名字key到值value的映射。 Key和value都是String类型的Map; New properties();//创建对象 通过setProperty(“属性名”,“属性值”)往里面设值 通过getProperty(“属性名”),来取得对应的value值 把内存中的property对象存到外部存储介质的XX.properties文件中;也可以把properites文件中的数据读取到内存中; 在properties文件中K-V对应:key = value 通过PropertyName()方法返回了一个包含所有属性名的Enumeration对象; 读取properties文件数据来给property对象的私有属性设值的过程: 导入java.util包; 开辟一个property的静态全局变量props; Props = new Properties();//创建一个p对象,把地址给props File f = new file(“文件位置”);// .\\表示当前路径下 FileInputStream in = new FileInputStream(f);//创建一个流与该文件相关 Props.load(in);//让对象从in流所指的文件中读取数据 In.close;//读取完毕,关闭流 ReadPro rp= new ReadPro();//在rp所指的对象中,有一个对props对象的引用,构造方法可以通过props.getPropety(“key”),取出props属性来给当前对象rp的属性进行初始化 rp.loadproper();//把rp对象的数据保存到外存文件 Loadproper() { Props.setProperty(“orcale_user”,”tl”);//把props对象中的orcale_user对应的值改为tl FileOutputStream out = new FileOutputStream(“文件将保存的位置和名字”);//新建输出流指向文件,如果有重名,就覆盖;无该文件,就创建 Props.store(out,“文件将保存的位置和名字”);//把对象数据通过输出流传输到外存然后保存成文件 Out.close(); } 表示层接收到用户名和密码,传给业务层,业务层把数据封装为bean创建持久层对象,然后传给DAO 通过file f = new file(“文件”); If(f == null);文件不存在,可以继续注册 具体流程太多了,听录音吧。 项目要求: 分层开发,边界明确,各司其责。去北京之前完成:有注册登入功能的1.1版本 用Property读取系统的环境变量: 通过System.getProperties()方法返回系统属性值:创建Property对象,然后把环境变量里的数据设到该对象中 Enumeration p_names = props.propertyNames();//把该对象的所有属性名取出来存为一个集合 通过p_names.hasMoreElement方法迭代取出属性名对应的属性值 创建线程类的两种方式: 一:继承Thread类,重写run()方法 二:实现Runnable接口,重写run()方法,在run方法中完成操作 通过内部类创建线程对象,通过线程对象来进行+1-1的操作