异常处理用途:
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类的常用方法
length() 字符串的长度
charAt(索引) 返回指定索引所对应的字符
indexOf("字符串") 参数在字符串中首次出现的位置,从0开始查找 -1没有
str.indexOf("好好学习", 7); 参数2是查找的起始位置
str2.split("分隔符"); 返回字符串型数组,参数是分隔符,作用,把字符串按分隔符分割成数组
str.replace("我们", "java1901全体学生"); 参数2替换掉字符串中所有的参数1
toCharArray() 把字符串转换成字符型数组
substring(参数) 从参数位置开始截取字符串,一直截取到最后
substring(int begin,int end)从参数begin开始截取,截取到end,但是不包含end
toUpperCase() 把字符串中所有小写字母转成大写
toLowerCase() 把字符串中所有大写字母转成小写
trim() 把字符串两端的空格去掉,中间的不去
valueOf(参数) 把参数转成字符串类型
concat(参数) 字符串连接
equals() 比较字符串的值是否相等,区分大小写
equalsIgnoreCase 比较字符串的值是否相等,不区分大小写
让用户输入一个电子邮箱,判断邮箱格式是否正确
邮箱中要包含@ .
String 不可变的字符串,频繁改变字符串值如果使用String,会浪费内存
可以使用StringBuffer类来替代String
StringBuffer在改变字符串值时,不抛去源空间,在原空间基础上更改
append(参数) 把参数追加在原字符串上
总结:
throw 声明一个异常
throws 抛出
自定义异常类:继承Exception
printStackTrace() 打印异常的方法的调用过程和异常原因
getMessage(); 返回字符串 异常原因
断点调试程序
两类数据类型:
基本类型:8
引用类型:无数个
方法的参数是基本类型和引用类型的区别
包装类:
装箱:基本类型 转换 引用类型
拆箱:引用类型 转换 基本类型 自动完成
字符串和int 的转换方式
字符串:存储方式
String s1="abc";
String s2="abc";
== equals 的区别
字符串的常用方法
来源:https://www.cnblogs.com/zhn011700/p/10673097.html