JAVA学习笔记day08

目录

1.基本类型包装类

1.1基本类型包装类概述

1.2Integer类的概述和使用

1.3int 和string的相互转换

1.4练习案例字符串中数据排序

1.5自动装箱和拆箱

2.日期类

2.1date类概述和构造方法

2.2Date类常用方法

2.3SimpleDateFormat类概述

2.4SimpleDateFormat的构造方法

2.5SimpleDateFormat格式化和解析日期

2.6日期类案例

2.7Calendar类概述

2.8Calendar的常用方法

2.9案例:二月天

3.异常

3.1异常概述

3.2JVM的默认处理方案

3.3异常处理

3.4异常处理之try.....catch....

3.5Throwable的成员方法

3.6编译时异常和运行时异常的区别

3.7异常处理之throws

3.8自定义异常

3.9throws和throw的区别


1.基本类型包装类

1.1基本类型包装类概述

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

常用的操作之一:用于基本数据类型与字符串之间的转换

JAVA学习笔记day08

1.2Integer类的概述和使用

integer:包装一个对象中的原始类型int的值

JAVA学习笔记day08

1.3int 和string的相互转换

基本类型包装类的最常见操作就是:用于基本类型和字符串之间的相互转换

1.int转换为string

public static string valueOf(int i):返回int参数的字符串表示形式。该方法是String类中的方法,string a=String.valueOf(i);

2.String转换为int

public static int perseInt(String s):将字符串解析为int类型。该方法是Integer类中的方法,int a=Integer.perseint(s);

1.4练习案例字符串中数据排序

要求:有一个字符串“91 27 46 38 50”,请写程序实现最终输出结果:“27 38 46 50 91”

JAVA学习笔记day08

 

JAVA学习笔记day08

1.5自动装箱和拆箱

  • 装箱:把基本数据类型转换为对应的包装类类型
  • 拆箱:把包装类类型转化为对应的基本数据类型
Integer i=100;   //自动装箱
i+=200;    //i=i+200;   i+200;(自动拆箱) i=i+200;(自动装箱)

Integer i=Integer.valueOf(100);  //手动装箱
Integer ii=100;//自动装箱

ii=ii.intValue()+200; //手动拆箱
ii+=200;//自动拆箱+自动装箱
Integer iii=null;
if(iii!=null){
    iii+=300;//如果没有if判断就会出现NullPointerException
}

注意:在使用包装类类型的时候,如果做操作,最好先判断是否为null

我们推荐的是,只要是对象,在使用前就必须进行不为null的判断

2.日期类

2.1date类概述和构造方法

Date代表了一个特定的时间,精确到毫秒

JAVA学习笔记day08

2.2Date类常用方法

JAVA学习笔记day08

2.3SimpleDateFormat类概述

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方法格式化和解析日期。我们重点学习日期格式化和解析

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从“A”到“Z”以及从‘a’到‘z’引号的字母被解释为表示日期或时间字母串的组建的模式字母

常用的模式字母及对应的关系如下:

  • y                  年
  • M                 月
  • d                  日
  • H                  时
  • m                分
  • s                  秒

2.4SimpleDateFormat的构造方法

JAVA学习笔记day08

 

2.5SimpleDateFormat格式化和解析日期

1.格式化(从Date到String)

public final String format(Date date):将日期格式化成日期/时间字符串

2.解析(从String到Date)

public Date parse(String source):从给定字符串的开始解析文本以生成日期

2.6日期类案例

需求:定义一个日期工具类(DateUtils),包含两个方法:把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateDemo),测试日期工具类的方法

JAVA学习笔记day08

JAVA学习笔记day08

2.7Calendar类概述

Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化

Calendar rightNow=Calendar.getInstance();

2.8Calendar的常用方法

JAVA学习笔记day08

2.9案例:二月天

需求:获取任意一年的二月有多少天?

思路:

1、键盘录入任意的年份

2、设置日历对象的年、月、日

  • 年:来自键盘录入
  • 月:设置为3月,月份是从零开始的,所以设置的是2
  • 日:设置为1日

3、3月1日往前推一天,就是2月的最后一天

4、获取这一天输出即可

实现代码:

JAVA学习笔记day08

3.异常

3.1异常概述

异常:就是程序出现了不正常的情况

异常体系

JAVA学习笔记day08

Error:严重问题,不需要处理

Exception:称为异常类,它表示程序本身可以处理的问题

RuntimeException:在编译期是不检查的,出现问题后,需要我们回来修改代码

非RuntimeException:编译期就必须处理的,否侧程序不能通过编译,就更不能正常运行了

3.2JVM的默认处理方案

如果程序出现了问题,我们没有做任何处理,最终JVM会做最终的处理

  • 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
  • 程序停止执行

3.3异常处理

如果程序出现了问题,我们需要自己来处理,有两种方案:

  • try.....catch.....
  • throws

3.4异常处理之try.....catch....

try{

          可能出现异常的代码;

}catch(异常类名   变量名){

异常的处理代码;

}

执行流程:程序从try里面的代码开始执行,出现异常,会自动生成一个异常类对象,该异常对象将被提交给java运行时系统,当java运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理,执行完毕之后,程序还可以继续往下执行。

JAVA学习笔记day08

3.5Throwable的成员方法

JAVA学习笔记day08

  • getMessage()输出异常的原因
  • toString()输出异常的种类和原因
  • printStackTrace()输出异常的种类、原因和位置

3.6编译时异常和运行时异常的区别

java中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常

所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常

  • 编译时异常:必须显式处理,否则程序就会发生错误,无法通过编译
  • 运行时异常:无需显示处理,也可以和编译时异常一样处理

3.7异常处理之throws

虽然我们通过try...catch...可以对异常进行处理,但是并不是所有的情况我们都有权限进行异常的处理,也就是说,有些时候可能出现的异常是我们处理不了了的,这个时候该怎么办呢?针对这种情况,java提供了throws的处理方案

格式:

throws 异常类名;

注意:这个格式是跟在方法地括号后面的

JAVA学习笔记day08

  • 编译时异常必须要进行处理,两种处理方案:try...catch...或者throws,如果采用throws这种方案,将来谁调用谁通过try...catch...处理
  • 运行时异常可以不处理:出现问题后,需要我们回来修改代码

3.8自定义异常

JAVA学习笔记day08

自定义异常应用:

JAVA学习笔记day08

JAVA学习笔记day08

JAVA学习笔记day08

3.9throws和throw的区别

throws:

  • 在方法声明后面,跟的是异常类名
  • 表示抛出异常,由该方法地调用者来处理
  • 表示出现异常的一种可能性,并不一定会发生这些异常

throw:

  • 用在方法内,跟的是异常对象名
  • 表示抛出异常,由方法体内的语句处理
  • 执行throw一定抛出了某种异常

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:day08_vuex状第08讲_vuex状态管理和ui库态管理和ui库


下一篇:day08—李大人parttwo