zoukankan      html  css  js  c++  java
  • 包装类

    包装类

    5.1 概述

    java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

    基本类型 对应的包装类(位于java.lang包中)
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

    5.2 装箱拆箱

    基本类型与对应的包装类对象之间,来回转换过称称为“装箱”与“拆箱”:

    • 装箱:从基本类型转换为对应的包装类对象。(基本类型的数据-->包装类)
    • 构造方法:
      • Integer(int value)构造一个新分配的 Integer 对象,他表示指定的 int 值。
      • Integer(String s)构造一个新分配的Integer对象,它表示 String 参数所指示的 int 值。
      • 传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确 "a" 抛异常
    • 静态方法:
      • static Integer valueOf(int i) 返回一个指定的 int 值的 Integer 实例。
      • static Integer valueOf(String s) 返回保存指定的String 的值的 Integer 对象
    • 拆箱:从包装类对象转换为对应的基本类型。(包装类-->基本类型的数据)
      • 成员方法:
        • int intValue() 以 int 类型返回该 Integer 的值。

    用Integer与int为例:

    基本类型 -- > 包装对象

    // 使用构造函数
    Integer i= new Integer(6);
    // 使用包装类中的valueOf方法
    Integer ii = Integer.valueIf("6");
    

    包装对象-->基本数值

    int num = i.intvalue();
    

    5.3 自动装箱与自动拆箱

    自动装箱与自动拆箱:基本类型的数据和包装类之间可以进行相互转换

    JDK1.5之后出现的新特性

    • 自动装箱:直接把int类型的整数赋值于包装类

      如:Integer in = 1;就相当于 Integer in = new Integer(1);

    • 自动拆箱:int是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算

      如:in + 2;就相当于 in.intVale() + 2 = 3;

      int = in.intVale() + 2 = 3 又是一个自动装箱

    Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
    i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
    //加法运算完成后,再次装箱,把基本数值转成对象。
    

    5.4基本类型与字符串之间的转换

    1.基本类型-->字符串(String)

    1. 基本类型的值+" " 最简单的方法(工作中常用)

    2. 包装类的静态方法toString(参数),不是Object类的toString方法()重载

      static String toString(int i)返回一个表示指定整数的string 对象。

    3. String类的静态方法valueOf(参数)

      static String valueOf(int i)返回 int 参数的字符串表示形式。

    2.字符串(String)--> 基本类型

    使用包装类的静态方法parseXXX("字符串");

    如:

    ​ Integer类: static int parseInt(Sting s)

    ​ Double类:static double parseDouble(String s);

     public static void main(String[] args) {
            // 基本类型-->字符串
            int i1 = 100;
            String s1 = i1 +"";
            System.out.println(s1+999);
    
            String s2 = Integer.toString(100);
            System.out.println(s2+300);
    
            String s3 = String.valueOf(100);
            System.out.println(s3 + 100);
    
            // 字符串(String)--> 基本类型
            int i = Integer.parseInt(s1);
            System.out.println(i - 10);
    
            // 不能转换字符串报错 数字格式异常 NumberFormatException
            /*int a = Integer.parseInt("a");
            System.out.println(a);*/
    
        }
    
  • 相关阅读:
    使用Angular CLI生成 Angular 5项目
    asp.net core 2.0 web api + Identity Server 4 + angular 5 可运行前后台源码
    依赖反转原则DIP 与使用了Repository模式的asp.net core项目结构
    Git基本命令 -- 别名 + 忽略 + 推送
    Git基本命令 -- 历史
    多线程,论多核时代爱恨情仇
    凛冬将至,用几款特效暖暖身
    HTML5游戏开发引擎,初识CreateJS
    详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)
    详解设计模式六大原则
  • 原文地址:https://www.cnblogs.com/anke-z/p/12507188.html
Copyright © 2011-2022 走看看