T5 s1 day14

**********************************************************************
异常处理 Java工具类
**********************************************************************
Java集合框架
文件流 IO
多线程

回顾:
try{

}finally{

}

public int test(){
try{
//
//
return 1;

}catch(Exception ex){

}finally{
//能否被执行
//执行完finally后,再去执行try中的return
}

}
异常处理用途:
1、保证程序的正常运行
2、辅助来调试程序

try-catch-finally java中最常用的异常处理方法
throw throws 抛出异常
当不符合程序的业务需求时(但是是符合Java的语法的),自己产生一个异常

业务:功能要怎么做,做成什么样的

throw 声明一个异常


对异常的两种处理方式


1、捕获、处理 try-catch
2、thorws 继续向外, 不要抛给JVM

扩展:自定义异常类
PayException 自定义的异常,一定要自己抛出


调试程序:debug

错误:语法性质的 红色波浪线
对于错误,必须修正,否则无法编译、运行
bug:缺陷,不是错误,是因为设计不全面带来的漏洞
需要调试程序来发现bug

1、设置断点
断点:程序执行到断点的位置会中断运行
双击 设置或取消断点(有效代码行:注释、{}等无效)
2、程序需要调试运行 debug as
2.1绿色背景:代表程序当前所执行的行
2.2 上方右侧 变量区 Varlables
中间左侧 代码执行区
下方 运行结果
3、F5、F6 每按一次,代码向下执行一行
F6:如果执行的代码是调用方法的代码,不会进入到方法的内部
F5:如果执行的代码是调用方法的代码,会进入到方法内部
F5注意:可以进入自己编写的方法内部

Java中的系统类:

Java中分两个大的数据类型种类:
1)基本数据类型:8个
2)引用数据类型:无数个
在Java中所有的类都是数据类型例如:String Scanner Random Demo4
2.1、系统引用类型:String Scanner Random …… 是Java已经写好的类
2.2、自定义引用类型:PG自己写的类

int[] ary=new int[2];


【说明】数组也是引用类型

基本类型和引用类型区别:
1)基本类型变量,变量对应的内存空间直接存放的就是值
int age=20;
int age2=age; 把age里的值20复制一份,存放到age2中
2)引用类型变量,变量存储的是堆空间的内存地址
PayException pe=new PayException();
pe存放的是new 分配的堆空间内存地址
PayException pe2=pe; //把pe里存放的地址复制一份,存放到pe2中
pe pe2 存放的是同一个堆空间的地址

*****
方法的参数是基本类型和引用类型的区别?


基本类型 把实参的值复制后传入形参,形参的改变不影响实参
引用类型 把实参的地址复制一份传入形参,通过形参改变地址所对应的值,通过实参查看会有变化,因为实参和形参存放的是同一个堆空间的地址。

8种基本类型都分别对应着一个引用类型,因为Java的集合只允许存储引用类型。
int Integer
byte Byte
short Short
long Long
float Float
double Double
char Character
boolean Boolean
包装类:每个基本类型所对应的类类型称为包装类
int num=123;
在Java中,把基本类型转换为对应的引用类型,称为装箱
把引用类型转换为对应的基本类型,称为拆箱

如何装箱和拆箱?见Demo6.java

把字符串转换为int类型的方式
1、 int num1=Integer.parseInt("字符串");

2、Integer it=new Integer("字符串");
int num2=it.intValue();

3、int num6=Integer.valueOf("200");
【注意】字符串必须是数值字符串
String str="234"; 数值字符串
String str2="a23"; 非数值字符串

把int 类型 转换为字符串
int num4=123;
String str4=String.valueOf(num4);

面试题:Integer.parseInt() 和Integer.valueOf()比较哪种转换为int更好

Integer.parseInt()更好,直接转换为了int类型
Integer.valueOf(),先把字符串转换为Integer,然后Integer自动拆箱为int,多了一操作

Integer类的方法
构造方法
Integer(int i)
Ingeger(String s)
实例方法
public int intValue(){

}
静态方法
public static Integer valueOf(int i){}
public static Integer valueOf(String str){}
public static int parseInt(String){}

重点:String 和int之间相互转换的方式

String 使用频繁,Java对String的内存使用方式进行了优化,字符串的值存放在常量区域内,且不可改变。
String str="12";
String 不可变字符串

String类的常用方法
1、length() 字符串的长度
2、charAt(索引) 返回指定索引所对应的字符
3、indexOf("字符串") 参数在字符串中首次出现的位置,从0开始查找 -1没有
4、str.indexOf("好好学习", 7); 参数2是查找的起始位置
5、str2.split("分隔符"); 返回字符串型数组,参数是分隔符,作用,把字符串按分隔符分割成数组
6、str.replace("我们", "java1901全体学生"); 参数2替换掉字符串中所有的参数1
7、toCharArray() 把字符串转换成字符型数组
8、substring(参数) 从参数位置开始截取字符串,一直截取到最后
9、substring(int begin,int end)从参数begin开始截取,截取到end,但是不包含end
10、toUpperCase() 把字符串中所有小写字母转成大写
11、toLowerCase() 把字符串中所有大写字母转成小写
12、trim() 把字符串两端的空格去掉,中间的不去
13、valueOf(参数) 把参数转成字符串类型
14、concat(参数) 字符串连接
15、equals() 比较字符串的值是否相等,区分大小写
16、equalsIgnoreCase 比较字符串的值是否相等,不区分大小写

让用户输入一个电子邮箱,判断邮箱格式是否正确
邮箱中要包含@ .

String 不可变的字符串,频繁改变字符串值如果使用String,会浪费内存
可以使用StringBuffer类来替代String
StringBuffer在改变字符串值时,不抛去源空间,在原空间基础上更改

append(参数) 把参数追加在原字符串上

总结:


throw 声明一个异常
throws 抛出

自定义异常类:继承Exception

printStackTrace() 打印异常的方法的调用过程和异常原因
getMessage(); 返回字符串 异常原因

断点调试程序

两类数据类型:
基本类型:8
引用类型:无数个
方法的参数是基本类型和引用类型的区别

包装类:
装箱:基本类型 转换 引用类型
拆箱:引用类型 转换 基本类型 自动完成
字符串和int 的转换方式

字符串:存储方式
String s1="abc";
String s2="abc";

== equals 的区别
字符串的常用方法


今晚作业
1、梳理、理解技能点。
2、作业文档
3、补充:
自己编写字符串方法
3.1 输入应为单词,把首字母转成大写或小写
3.2 截取字符串public String mySubString(int begin,int count)


猜你喜欢

转载自www.cnblogs.com/wxcsz/p/10672450.html
今日推荐