基本类型包装类的作用
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:用于基本数据类型与字符串之间的转换
基本类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Integer类概述
包装一个对象中的原始类型 int 的值
构造方法
方法名 | 说明 |
public Integer(int value) | 根据 int 值创建 Integer 对象(过时) |
public Integer(String s) | 根据 String 值创建 Integer 对象(过时) |
public static Integer valueOf(int i) | 返回表示指定的 int 值的 Integer 实例 |
public static Integer valueOf(String s) | 返回一个保存指定值的 Integer 对象 String |
int转换为String 转换方式
方式一:直接在数字后加一个空字符串
方式二:通过String类静态方法valueOf()
String转换为int
方式一:先将字符串数字转成Integer,再调用valueOf()方法
方式二:通过Integer静态方法parseInt()进行转换
自动装箱
把基本数据类型转换为对应的包装类类型
自动拆箱
把包装类类型转换为对应的基本数据类型
Date类概述
Date 代表了一个特定的时间,精确到毫秒
Date类构造方法
方法名 | 说明 |
public Date() | 分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒 |
public Date(long date) | 分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数 |
方法名 | 说明 |
public long getTime() | 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值 |
public void setTime(long time) | 设置时间,给的是毫秒值 |
SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
我们重点学习日期格式化和解析
SimpleDateFormat类构造方法
方法名 | 说明 |
public SimpleDateFormat() | 构造一个SimpleDateFormat,使用默认模式和日期格式 |
public SimpleDateFormat(String pattern) | 构造一个SimpleDateFormat使用给定的模式和默认的日期格式 |
SimpleDateFormat类的常用方法
格式化(从Date到String)
public final String format(Date date):将日期格式化成日期/时间字符串
解析(从String到Date)
public Date parse(String source):从给定字符串的开始解析文本以生成日期
Calendar类概述
Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。 该方法返回一个Calendar 对象。
Calendar类常用方法
方法名 | 说明 |
public int get(int field) | 返回给定日历字段的值 |
public abstract void add(int field, int amount) | 根据日历的规则,将指定的时间量添加或减去给定的日历字段 |
public final void set(int year,int month,int date) | 设置当前日历的年月日 |
二月天案例
1 public class CalendarTest { 2 public static void main(String[] args) { 3 //键盘录入任意的年份 4 Scanner sc = new Scanner(System.in); 5 System.out.println("请输入年:"); 6 int year = sc.nextInt(); 7 //设置日历对象的年、月、日 8 Calendar c = Calendar.getInstance(); 9 c.set(year, 2, 1); 10 //3月1日往前推一天,就是2月的最后一天 11 c.add(Calendar.DATE, -1); 12 //获取这一天输出即可 13 int date = c.get(Calendar.DATE); 14 System.out.println(year + "年的2月份有" + date + "天"); 15 } 16 }
异常的概述
异常就是程序出现了不正常的情况
异常的体系结构
Throwable
Error:严重的错误,我们无法处理
Exception:程序本身可以处理的错误
RuntimeException:在编译期不做检查,等到发现错误时由我们回来修改程序
非RuntimeException:编译期就必须处理,否则无法通过编译
如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:
把异常的名称,错误原因及异常出现的位置等信息输出在了控制台
程序停止执行
定义格式
1 try { 2 可能出现异常的代码; 3 } catch(异常类名 变量名) { 4 异常的处理代码; 5 }
执行流程
程序从 try 里面的代码开始执行
出现异常,就会跳转到对应的 catch 里面去执行
执行完毕之后,程序还可以继续往下执行
常用方法
方法名 | 说明 |
public String getMessage() | 返回此 throwable 的详细消息字符串 |
public String toString() | 返回此可抛出的简短描述 |
public void printStackTrace() | 把异常的错误信息输出在控制台 |
编译时异常
都是Exception类及其子类
必须显示处理,否则程序就会发生错误,无法通过编译
运行时异常
都是RuntimeException类及其子类
无需显示处理,也可以和编译时异常一样处理
定义格式
1 public void 方法() throws 异常类名 { 2 …… 3 }
注意事项
这个throws格式是跟在方法的括号后面的
编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案, 将来谁调用谁处理
运行时异常可以不处理,出现问题后,需要我们回来修改代码
Throws
用在方法声明的后面,跟着的是异常类名
表示抛出异常,由该方法的调用者来处理
表示出现异常的一种可能,并不一定会出现这个异常
Throw
用在方法体内,跟着的是异常类名
表示抛出异常,由方法体内语句处理
执行throw一定抛出了某种异常
自定义异常类
1 public class iNumberLargeException extends Exception { 2 public iNumberLargeException(){} 3 4 public iNumberLargeException(String message){ 5 super(message); 6 } 7 }
检测类
1 public class Check { 2 public static void check(int sorce) throws iNumberLargeException { 3 if (sorce < 0 || sorce > 100) { 4 throw new iNumberLargeException("分数异常!"); 5 } else { 6 System.out.println("正常"); 7 } 8 } 9 }
测试类
import java.util.Scanner; public class iExceptionDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int sorce = sc.nextInt(); try { Check.check(sorce); } catch (iNumberLargeException e) { e.printStackTrace(); } } }
原文:https://www.cnblogs.com/zhiyDev/p/14076230.html