Java学习第十天
1:包装类:
byte Byte
short Short
int nteger
long Long
char Character
boolean Boolean
double Double
float Float
2.基本类型转成字符串类型
String.valueOf()
String ss =Integer.toString(7)
String str=Double.toString(6.6)
3字符串类型转成基本类型:常用
int a = Integer.parseInt("88");
double d=Double.parseDouble("99.99");
4.十进制转成其它进制
String num = Integer.toHexString(60);
String n =Integer.toOctalString(24);
String m = Integer.toBinaryString(6);
5.其它进制转十进制
int x = Integer.parseInt("3c",16); //第一个参数是被转的数,第二个参数说明第一个参数的进制
int x = Integer.parseInt("30",8);
int x = Integer.parseInt("110",2);
6: 装箱和拆箱
1 Integer tt=6;// new Integer(6) ---自动装箱 2 tt=tt+2;// tt.intValue()---6 自动拆箱 6+2==8 new Integer(8) 自动装箱 3 4 5 Integer m=127; 6 Integer n=127; 7 8 sop(m==n);//true jdb1.5开始 9 10 m=128; 11 n=128; 12 13 sop(m==n);//false 14 //如果一个数在byte的范围之内(-128---127),之前已经定义过,再定义时使用已经定义的
7:异常:程序在运行过程中出现的特殊情况,
Java把程序在运行时出现的不正常情况,提取属性和行为描述(异常名称,异常发生的位置,异常具体信息)
从而出现了异常,从而实现了异常的面向对象
8.异常体系: (继承Object类)Throwable
(Throwable的子类)--| Error:严重的错误,没办法处理的
(Throwable的子类)--| Exception:异常,程序运行时可处理的问题
9.异常特点:具备可抛性
默认的异常处理方式:系统创建异常类对象,因为main方法不能处理异常,抛给了JVM,JVM调用异常类对象的printStackTrace()方法,
输出异常名,异常信息,异常发生的位置,然后程序中断
try{
}catch(Exception e){
}
throws声明可能会出现的异常
必须处理:1:使用 try{}catch(){} 2:使用throws继续声明抛出
10.多重异常:
1 try{ 2 3 }catch(XXX e){ 4 5 }catch(YYY ee){ 6 7 }
子类异常要写在父类异常的上边
11.自定义异常:
1 class MyException extends Exception{ 2 3 MyException(){} 4 5 MyException(String message) 6 { 7 super(message); 8 } 9 }
对于自定义异常,系统不会自动创建异常类对象,所以需要使用throw 手动创建异常类对象
12.throw:用于手动抛出异常类对象
用了throw,必须处理,处理方式有2种:
1.使用try{}catch{}
2:使用throws继续声明抛出
13.throw和throws对比:
1.throw用在方法内部,throws用在方法后边
2.throw后边是异常类对象,throws后边是异常类
14.java把异常分为两类:
非运行时异常:编译时检测的异常,必须接收处理
运行时异常:编译时不检测的异常-------RuntimeException及其子类,编译不检测,即使使用了throws或throw,不处理,编译照样通过
原因:java认为出现运行时异常,程序就该中断,不该处理
运行时异常都是因为数据传送出错造成的,程序就该中断,修改错误数据,然后再执行
1 例子: 2 class MyMath 3 { 4 public int div(int a,int b) 5 { 6 return a/b;// throw new ArithmeticException() 7 } 8 } 9 class Demo5 10 { 11 public static void main(String[] args) //不用try{}catch(){} 可以,只不过是程序异常时会中断 12 { 13 MyMath myMath=new MyMath(); 14 //检测异常 15 try 16 { 17 int m = myMath.div(5,0); //new ArithmeticException() 18 System.out.println(m); //不执行 19 20 }catch(Exception e)//捕获 Exception e=new ArithmeticException() 多态 21 { 22 System.out.println(e.getMessage());//异常信息 23 System.out.println(e.toString());//异常类名:异常信息 24 e.printStackTrace(); //异常类名:异常信息 异常发生的位置 25 26 System.out.println("除数为0了"); 27 } 28 System.out.println("hehe") 29 } 30 }
注意:对于程序来说,最好把问题提前到编译时期,也就是说运行时可能发生的异常,在编译时期就能知道
15.finally中的代码在return之前执行的
1 System.exit()退出JVM虚拟机,finally中的代码不能执行 2 3 try{}catch(){} 4 5 try{}catch(){}finally{} 6 7 try{}finally{必须执行的语句} 8 9 特殊情况: 10 class MyMath 11 { 12 public int div(int a,int b) 13 { 14 return a/b; 15 } 16 } 17 class Demo11 18 { 19 public static void main(String[] args) 20 { 21 MyMath myMath=new MyMath(); 22 23 try{ 24 25 int m = myMath.div(5,0); 26 System.out.println(m); 27 28 }catch(Exception e) 29 { 30 System.out.println(e.getMessage()); 31 //return; 32 System.exit(1);//退出JVM finally中的代码不能执行 33 }finally 34 { 35 System.out.println("哈哈");//finally中的代码在return之前执行 36 } 37 } 38 }
posted on 2019-08-05 22:03 small_slag 阅读(210) 评论(0) 编辑 收藏 举报