Day16 基本类型、包装类、异常

基本类型包装类

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

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

Integer类的概述和使用

Integer:包装一个对象中的原始类型Int的值。

方法:valueof()

int和String的相互转换

int转换为String

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

例如:

​ int num = 100;

​ String s = String.valueOf(num);

String转换为int

public static int parseInt(String s): 将字符串解析为Int类型。该方法是Integer类中的方法、

例如:

​ String s = “100”;

​ int i = Integer.parseInt(s);

自动装箱和拆箱

装箱:把基本数据类型转换为对应的包装类类型

拆箱:把包装类类型转换为对应的基本数据类型


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


Date类

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

方法

1.public Date() 分配一个Date对象,并初始化。

2.public Date(long date) 分配一个Date对象,并将其初始化为表示从基准时间起指的毫秒数。

3.public long getTime() 过去的是日期从对象1970年1月1日00:00:00到现在的毫秒值

4.public void setTime(long time) 设置时间,给的是毫秒值。

SimpleDateFormat

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

y-年 M-月 d-日

H-时 m-分 s-秒

格式化和解析日期

1.格式化(从Date到String)

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

2.解析(从String到Date)

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

字符中的数据排序

DEMO:

package Day16_Integer;

public class StringSort {
    public static void main(String[] args) {
        //创建一个字符串
        String s = "20 18 17 11 7 40";
        //将字符串中的数字通过split方法存储到String[]数组中
        String[] arrstring = s.split(" ");
/*        for(int i = 0;i<arrstring.length;i++) {
            System.out.println(arrstring[i]);
        }*/
        //创建一个int[]数组,将String[]数组中的元素存到int[]数组中
        int[] arr = new int[arrstring.length];
        for (int x = 0; x < arrstring.length; x++) {
            arr[x] = Integer.parseInt(arrstring[x]);
        }
        //对int[]数组进行排序
       for(int i = 0;i<arrstring.length-1;i++){
           for(int y = 0;y<arrstring.length-1-i;y++){
               if(arr[y]>arr[y+1]){
                   int temp = arr[y];
                   arr[y] = arr[y+1];
                   arr[y+1] = temp;
               }
           }
       }
        String s1 = arrayToString(arr);
        System.out.println(s1);

        //把排序后的int数组中的元素拼接到一个字符串中
    }
    public static String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i] + ",");
            }
        }
        sb.append("]");
        String s = sb.toString();
        return s;
    }
}

Calendar类

定义

Calendar c = Calendar.getInstanse();

常用方法

public abstract void add(int field,int amount)

​ 安照日历的规则,将指定的时间量添加或交给指定的日历字段

public final void set (int year,int month,int date)

​ 设置当前日历的年月日

Demo:二月天

package Day16_Integer;

import java.util.Calendar;
import java.util.Scanner;

/*
二月天
 */
public class CalendarDemo {
    public static void main(String[] args) {
        //键盘录入年份
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        //设置日历对象的年月日
        //月份:3 日:1
        Calendar c = Calendar.getInstance();
        c.set(year,3,1);
        //利用add方法输出二月最后一天
        c.add(Calendar.DATE,-1);
        //输出这一天
        int date = c.get(Calendar.DATE);
        System.out.println(year+"年的2月份有"+date+"天");
    }
}

异常

异常体系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aj6ul8r9-1607084262794)(D:\JAVA学习截图\异常体系.jpg)]

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

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

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

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

JVM的默认处理方案

1.把异常的名称,异常原因及异常出现的位置等信息输出在了控制台

2.程序停止执行

try…catch…

格式:

try{

​ 可能出现异常的代码;

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

​ 异常的处理代码;

}

Throwable成员方法

public String getMassage():返回此throwable的详细消息字符串

public String toString():返回此可抛出的简短描述

public void printStackTrace:把异常的错误信息输出在控制台

throws

抛出异常对象

自定义异常

创建一个异常类;

类中应该有一个无参构造方法,一个有参构造方法。

throws和throw的区别

throws:

1.用在方法声明后面,跟的是异常类名

2.表示抛出异常,由该方法的调用者来处理

3.表示出现异常的一种可能性,并不一定会发生这种异常

throw:

1.用在方法体内,跟的是异常对象名

2.表示抛出异常,由方法体内的语句处理

3.执行throw一定抛出某种异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值