【JavaEE】Day04-API

1.包装类
1.1基本类型包装类(记忆)

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
主要是基本类型和String之间的转换

1.2Integer类(应用)

  • Integer类概述

    包装一个对象中的原始类型 int 的值
    示例代码

    public class IntegerDemo {
        public static void main(String[] args) {
            //public Integer(int value):根据 int 值创建 Integer 对象(过时)
            Integer i1 = new Integer(100);
            System.out.println(i1);
    
            //public Integer(String s):根据 String 值创建 Integer 对象(过时)
            Integer i2 = new Integer("100");
    //        Integer i2 = new Integer("abc"); //NumberFormatException
            System.out.println(i2);
            System.out.println("--------");
    
            //public static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例
            Integer i3 = Integer.valueOf(100);
            System.out.println(i3);
    
            //public static Integer valueOf(String s):返回一个保存指定值的Integer对象 String
            Integer i4 = Integer.valueOf("100");
            System.out.println(i4);
        }
    }
    
    ### 1.3int和String类型的相互转换(记忆)
    
    
  • int转换为String

    • 转换方式

      • 方式一:直接在数字后加一个空字符串
      • 方式二:通过String类静态方法valueOf()
    • 示例代码

      public class IntegerDemo {
          public static void main(String[] args) {
              //int --- String
              int number = 100;
              //方式1  推荐使用这个方式
              String s1 = number + "";
              System.out.println(s1);
              //方式2
              //public static String valueOf(int i)
              String s2 = String.valueOf(number);
              System.out.println(s2);
              System.out.println("--------");
          }
      }
      
  • String转换为int

    • 转换方式

      • 方式一:先将字符串数字转成Integer,再调用valueOf()方法
      • 方式二:通过Integer静态方法parseInt()进行转换
    • 示例代码

      public class IntegerDemo {
          public static void main(String[] args) {
              //String --- int
              String s = "100";
              //方式1:String --- Integer --- int
              Integer i = Integer.valueOf(s);
              //public int intValue()
              int x = i.intValue();
              System.out.println(x);
              //方式2
              //public static int parseInt(String s)
              int y = Integer.parseInt(s);
              System.out.println(y);
          }
      }
      

使用场景:
当我们得到一个纯数字的字符串, 需要对他进行加减乘除的算数操作,那么需要将其"字符串"的角色,变成int角色
jdk1.5以后出现了自动拆装箱的过程
装箱:
将基本变成其对应包装类
拆箱:
将包装类变成其对应的基本类型
Integer i = 10;
进制:
0x : 十六进制
0: 八进制
0b: 二进制
什么都不写: 十进制
1.4字符串数据排序案例(应用)

  • 案例需求

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

  • 代码实现

    public class IntegerTest {
        public static void main(String[] args) {
            //定义一个字符串
            String s = "91 27 46 38 50";
    
            //把字符串中的数字数据存储到一个int类型的数组中
            String[] strArray = s.split(" ");
    //        for(int i=0; i<strArray.length; i++) {
    //            System.out.println(strArray[i]);
    //        }
    
            //定义一个int数组,把 String[] 数组中的每一个元素存储到 int 数组中
            int[] arr = new int[strArray.length];
            for(int i=0; i<arr.length; i++) {
                arr[i] = Integer.parseInt(strArray[i]);
            }
    
            //对 int 数组进行排序
            Arrays.sort(arr);
    
            //把排序后的int数组中的元素进行拼接得到一个字符串,这里拼接采用StringBuilder来实现
            StringBuilder sb = new StringBuilder();
            for(int i=0; i<arr.length; i++) {
                if(i == arr.length - 1) {
                    sb.append(arr[i]);
                } else {
                    sb.append(arr[i]).append(" ");
                }
            }
            String result = sb.toString();
    
            //输出结果
            System.out.println(result);
        }
    }
    

1.5自动拆箱和自动装箱(理解)

  • 自动装箱

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

  • 自动拆箱

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

  • 示例代码

    Integer i = 100;  // 自动装箱
    i += 200;         // i = i + 200;  i + 200 自动拆箱;i = i + 200; 是自动装箱
    

2.时间日期类

2.1Date类(应用)

  • Date类概述

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

  • Date类构造方法
    时间原点: 1970年1月1日0时0分0秒 ---->1970年1月1日8时0分0秒(东八区)
    Date(); ---->创建日期对象,代表当前电脑时间,距离时间原点过得毫秒值
    Date(long time); ----> 创建日期对象,指定毫秒值距离时间原点的时间
    例如:
    Date date = new Date(); ----> 代表2019年12月3日11点41分
    Date date = new Date(1000); ----> 代表1970年1月1日8点0分1秒
    注意: 在使用指定时间的话, 毫秒值最好+L修饰
    成员方法:
    setTime(long time); ---->设置时间中维护的毫秒值
    long getTime(); ----> 获取时间中的毫秒值
    示例代码

    public class DateDemo01 {
        public static void main(String[] args) {
            //public Date():分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
            Date d1 = new Date();
            System.out.println(d1);
    
            //public Date(long date):分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
            long date = 1000*60*60;
            Date d2 = new Date(date);
            System.out.println(d2);
        }
    }
    

2.2Date类常用方法(应用)

  • 常用方法

    方法名说明
    public long getTime()获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
    public void setTime(long time)设置时间,给的是毫秒值
  • 示例代码

    public class DateDemo02 {
        public static void main(String[] args) {
            //创建日期对象
            Date d = new Date();
    
            //public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
    //        System.out.println(d.getTime());
    //        System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
    
            //public void setTime(long time):设置时间,给的是毫秒值
    //        long time = 1000*60*60;
            long time = System.currentTimeMillis();
            d.setTime(time);
    
            System.out.println(d);
        }
    }
    
    

2.3SimpleDateFormat类(应用)

  • 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):从给定字符串的开始解析文本以生成日期
  • 示例代码

    public class SimpleDateFormatDemo {
        public static void main(String[] args) throws ParseException {
            //格式化:从 Date 到 String
            Date d = new Date();
    //        SimpleDateFormat sdf = new SimpleDateFormat();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            String s = sdf.format(d);
            System.out.println(s);
            System.out.println("--------");
    
            //从 String 到 Date
            String ss = "2048-08-09 11:11:11";
            //ParseException
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date dd = sdf2.parse(ss);
            System.out.println(dd);
        }
    }
      		yyyy: 表示年
      		MM: 表示月
      		dd: 表示日
      		HH: 时
      		mm: 分
      		ss:

常用模式:
yyyy年MM月dd日 HH:mm:ss
yyyy-MM-dd HH:mm:ss
作用:
String format(Date date); ----> Date ---->String
Date parse(String time); ----> String ---->Date
*注意: 要被格式化的字符串的模式必须和SimpleDataformat的模式一样,这里出现编译时异常
例如:
String s = “2019-12-12”
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

2.4 Calendar类(了解!!!!,开发中很少用到)

  • Calendar类概述

    作用: 专门针对年,月,日,时有有些特殊的操作
    构造: 是一个抽象类
    Calender c = Calender.getInstance();// 通过静态方法获取Calender的子类对象
    方法:
    get(int field); ---->获取日历中的信息
    常用的字段:
    Calender.YEAR
    Calender.MONTH
    Calender.DATE
    add(int field, int amount); —>给日历中某个字段添加或者减少一些值

	set(int year,int month,int day); --->将日历的年月日一起修改了!!!!

###2.5.闰年(了解!!!)
能够被4整除, 但是不能被100整除 或者 能够被400整除的叫做闰年, 其他都是平年

3.异常

3.1异常(记忆)

  • 异常的概述

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

  • 异常的体系结构
    Throwable是异常的根类
    Error: 代表"硬件"层面的错误
    Exception:
    *编译时异常: 在编译期间就会报错的异常, 程序员必须处理, 如果不处理无法编译通过
    除了运行时异常都是编译时异常
    处理方式: 要求必须处理
    *运行时异常: 在运行期间才有可能报的错, 不影响编译
    RuntimeException或者子类都是运行时异常
    处理方式: 可以处理,也可以不处理
    异常如果我们不处理, jvm会处理, 默认处理方式: 1.将错误信息(异常类名,异常原因, 异常位置)打印到控制台上 2.将程序终止了
    异常处理的第一种方式:---->为了不让程序遇到异常终止!!!
    try{
    1.可能出现异常的代码
    2.出现异常后不需要执行的代码

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

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

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

    }…
    注意: catch可以出现多个, 但是如果catch中的异常有子父类关系, 父类要放到下面!!!
    执行流程:
    程序开始,执行try里面的语句, 如果try出现了异常, 就会找catch,如果说没有出现异常, 根本就不会走catch语句, 所以

      catch中国好备胎, catch走完后,不会影响下面的代码.
    

异常处理的第二种方式:
throws 异常类名
位置: 在方法声明上
本质: 将异常抛给调用者处理
.异常的功能:
我们发现, 异常基本都是一样, 唯一不一样就是异常类名不一样,所有的子类并没有特有的方法,
所有的方法都是从Throwable中继承下来的
*void printStackTrace(); ----> 将异常类名,异常原因, "异常位置"打印到控制台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值