zoukankan      html  css  js  c++  java
  • java常用类与包装类--包装类

    2.基本数据类型数据的包装类

    局部变量中基本数据类型直接分配在栈中,而对象分配在堆中

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

    包装类主要功能:用于基本数据类型与字符串之间的转换

    2.1 Integer类

    2.1.1构造方法

    Integer 类在对象中包装了一个基本类型 int 的值。
    此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。

    2.1.2包装类和基本数据类型和字符串的转化

            Interger i1=5;//自动装箱
            Interger i2=new Interger(1);
            Interger i3=Interger.valueOf(3);

            int i4 = i1;//自动拆箱
            int i5 = i2.intValue();

            String s1 = 5+"";自动装箱
            String s2 = String.valueOf(3);

     

    String转换成int值的几种方式:
    1.int i1 = Integer.parseInt("12");
    2.int i2 = new Integer("12").intValue();
    推荐第一种方式,这也是包装类的最常用的场景

    字符串转换为其它基本数据类型
    byte b = Byte.parseByte("15");
    float f = Float.parseFloat("1.5");
    double d = Double.parseDouble("3.14");

     

           .toString方法

             Integer i8 = new Integer("3");

     2.1.3版本说明

    2.1.4int值转换成String

      int值转换成String的4种方式:

    1. String s1 = "" + 10;
    2. String s2 = String.valueOf(10);
    3. String s3 = new Integer(10).toString();
    4. String s4 = Integer.toString(10);

      推荐使用第一,二种方式

    2.1.5 debug自动装箱

    查看一下拥有调用这个方法所在这个类:

     

     2.1.6练习题

    /*
     * 不使用构造方法去创建Integer对象(自动装箱)
     *     当值在-128 到 +127之间时,实际返回的是缓冲区中的对象的引用.
     * 
     * 反之调用的是valueOf方法-->new Integer(int value)
     * 
     */
    public class IntegerDemo5 {
    
        public static void main(String[] args) {
            Integer i1 = new Integer(10);
            Integer i2 = new Integer(10);
            System.out.println(i1 == i2);//比较的是内存地址 false
            
            Integer i3 = 200;
            Integer i4 = 200;
            System.out.println(i3 == i4);//false
            
            
            Integer i5 = 100;
            Integer i6 = 100;
            System.out.println(i5 == i6);//true
        }
    
    }

    2.2BigInteger类

    针对超出Integer表数范围的大数场景,Java提供了BigInteger类,用于大整型数的计算(加减乘除余

    BigInteger add(BigInteger val)
      返回其值为 (this + val) 的 BigInteger
    BigInteger subtract(BigInteger val)
      返回其值为 (this - val) 的 BigInteger。
    BigInteger multiply(BigInteger val)
      返回其值为 (this * val) 的 BigInteger。
    BigInteger divide(BigInteger val)
      返回其值为 (this / val) 的 BigInteger。
    BigInteger[] divideAndRemainder(BigInteger val)
      返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。

     

     

    2.3BigDecimal类

    针对精确计算的场景,Java提供了BigDecimal类,用于浮点数的精确计算

    构造方法:
    BigDecimal(double value)
      直接使用double参数的构造方法有一定的不预支性
    BigDecimal(String value)
      必须把他转成String类型才会准确

    2.4Character类

    Character 类在对象中包装一个基本类型 char 的值。

    构造方法(只有一个):
    Character(char value)
    构造一个新分配的 Character 对象,用以表示指定的 char 值。

    此外,该类提供了几种方法,

    1. 以确定字符的类别(小写字母,数字,等等),
    2. 并将字符从大写转换成小写,反之亦然。

    都是静态方法
    boolean isUpperCase(char ch)
    boolean isLowerCase(char ch)
    boolean isDigit(char ch)
    char toUpperCase(char ch)
    char toLowerCase(char ch)



  • 相关阅读:
    浅谈软件测试流程
    在9个点上画10条直线,要求每条直线上至少有三个点
    word中快速插入时间
    多核处理器时,__rdtsc()的使用编程珠玑第一章
    解决 error LNK2019: 无法解析的外部符号 问题
    修改IE代理
    overload重载 override覆盖 overwirte重写
    几个题目
    12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。
    在link.c中已经include了头文件了,为什么使用ld还无法识别mian和printf?
  • 原文地址:https://www.cnblogs.com/wqbin/p/11180159.html
Copyright © 2011-2022 走看看