当前位置 : 主页 > 编程语言 > c++ >

java基础笔记(十八)

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt 年饮冰 难凉热血田林哥哥复习:throws出现在方法后,加上一个或者多个异常类,表示本方法不处理这些类型的异常对象,直接抛给调用我的方法;throw出现在方法体内,用于
gistfile1.txt
年饮冰 难凉热血
田林哥哥

复习:
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的操作
网友评论