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

    一、概述

    Java中的基本数据类型没有方法和属性,而包装类就是为了让这些拥有方法和属性,实现对象化交互。

    基本数据类型 包装类型
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

    二、常量池

    1. 包装类对象的初始值为null(是一个对象)
    2. Java中除了float和double的其他基本数据类型,都有常量池
    • 整数类型:[-128, 127]值在常量池
    • 字符类型:[0, 127]对应的字符在常量池
    • 布尔类型:true、false在常量池

    因为有常量池的存在,所以有下列现象出现

    public class IntegerTest {
        public static void main(String[] args) {
            Integer num1 = 100;   // 可以理解为String类的赋值方式
            Integer num2 = new Integer(100);
            Integer num3 = 100;
            System.out.println(num1 == num2);   // false
            System.out.println(num1 == num3);   // true
        }
    }
    

    因为new了之后,会在堆内存中开辟空间,所以先打印false、再打印true。但是常量池有范围是-128到127之间,如下

    public class IntegerTest {
        public static void main(String[] args) {
            Integer num1 = 1000;   // 可以理解为String类的赋值方式
            Integer num2 = new Integer(1000);
            Integer num3 = 1000;
            System.out.println(num1 == num2);   // false
            System.out.println(num1 == num3);   // false
        }
    }
    

    超出了范围,打印结果就都为false了。

    三、自动装箱和拆箱

    • 自动装箱和拆箱是JDK1.5开始的。
    • 基本数据数据类型自动转换为包装类型叫做装箱
    • 包装类型自动转换为基本数据类型叫做拆箱
    public class IntegerTest {
        public static void main(String[] args) {
            Integer num1 = 100;   // 自动装箱  
            Integer num2 = num1 + 200;   // num1自动拆箱为基本数据类型然后进行计算
        }
    }
    

    分开分析

    // 自动装箱
    Integer num = 100;
    // 100是基本数据类型(int类型)
    // 原始代码:Integer num = Integer.valueof(100)
    

    ---

    Integer num1 = 100;   // 自动装箱  
    
    Integer num2 = num1 + 200;   
    // 先自动拆箱、计算完后,再自动装箱
    // 拆箱代码:num.iintvalue()
    // 运算:num.intvalue() + 100
    // 装箱:Integer.valueof(num.intvalue() + 100)
    

    四、基本数据类型与字符串的转换

    在开发过程中数据在不同平台之间传输都以字符串形式存在的,有些数据表示的数值含义,如果要用于计算我们就需要将其转换为基本数据类型。

    4.1、字符串转换为基本数据类型

    包装类型除了Character之外,都存在一个静态方法:parseXxxx,如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。

    public static byte parseByte(String s)   // 将字符串参数转换为对应的byte基本类型
    
    public static short parseShort(String s)   // 将字符串参数转换为对应的short基本类型
    
    public static int parseInt(String s)   // 将字符串参数转换为对应的int基本类型
    
    public static long parseLong(String s)   // 将字符串参数转换为对应的long基本类型
    
    public static float parseFloat(String s)   // 将字符串参数转换为对应的float基本类型
    
    public static double parseDouble(String s)   // 将字符串参数转换为对应的double基本类型
    
    public static boolean parseBoolean(String s)   // 将字符串参数转换为对应的boolean基本类型
    

    例子

    // 必须保证字符串是要即将转换的格式,否则异常
    System.out.println(Integer.parseInt("100"));   // 100
    System.out.println(Boolean.parseBoolean("true"));   // true

    4.2、基本数据类型转换为字符串

    (1)、可以直接在数字后加一个空字符串

    int num = 100;
    String str = num + "";
    System.out.println(num);   // 100

    (2)、通过String类静态方法valueOf()

    int num = 100;
    String str = String.valueOf(num);
    System.out.println(num);   // 100
    

      

      

  • 相关阅读:
    正则表达式之断言
    认识CSS中标题引入icon图标
    认识CSS中字体图标
    认识CSS中精灵技术(sprite)和滑动门
    认识CSS中高级技巧之用户界面样式
    认识CSS中高级技巧之元素的显示与隐藏
    认识CSS中布局之文档流、浮动、定位以及叠放次序
    正则表达式之括号
    正则表达式之量词
    正则表达式之字符组
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14770041.html
Copyright © 2011-2022 走看看