包装类

1. Object类

  • 类Object是类层次的根类,也就是说任何个类都是该类的直接或者间接子类。

  • 如果定义一个java类没有使用extends指明继承哪个类,编译器自动加上extends Object

常用方法
  • equals :若希望比较两个对象的内容 ,则需要重写该方法(默认比较地址)。
```java
   // 当调用对象和参数对象指向同一个对象时,则内容一定相同
        if (this == obj) return true;
        // 当调用对象为不为空而参数对象为空时,则内容一定不相同
        if (null == obj) return false;
        // 判断obj指向的对象是否为Student类型的对象,若是则条件成立,否则条件不成立
        if (obj instanceof Student) {
            Student ts = (Student) obj;
            // 以学号作为基准判断两个对象是否相等  int是基本数据类型,内存空间中放的就是数据本身,使用 == 可以判断数据是否相同
         return this.getId() == ts.getId();  
		else
            return false;
@Override
    public boolean equals(Object obj) {
        if(obj instanceof Student){
            Student student=(Student)obj;//强制转换
            return this.getId()==student.getId();
        }else
            return false;
    }
```
  • String toString()

    该方法默认返回的字符串为:包名.类名@哈希码值的十六进制

    为了返回更有意义的数据,需要重写该方法

使用print或println打印引用或字符串拼接引用都会自动调用该方法

方法声明功能介绍
Object()使用无参方式构造对象
boolean equals(Object obj) //多态,父类类型的引用用于判断调用对象是否与参数对象相等(==)。若该方法被重写后,则应该重写hashCode方法来保证结果的一致
int hashCode()用于获取调用对象的哈希码值(内存地址的编号)。
String toString()用于获取调用对象的字符串形式

2. 包装类 (熟悉)

  • 每种包装类型的对象中所包装的值不可改变,要改变必须生成新的对象

Interger

常用方法:MAX_VALUE、MIN_VALUE、SIZE(表示的二进制位数)、BYTES(字节数)、TYPE(表示int类型的class实例)

构造Integer类型的对象:
    public Integer(int value||string s)构造方法已过时
    采用:valueOf( )//int到Integer类型的转换
获取调用对象的整数类型,相当于Interger到int类型转换
    intValue()
 字符串转为整数:paserInt("200")//只可数字字符串
    int ic=Integer.parseInt("200a") //编译ok,运行发生NumberFormatException数字格式异常
  • 装箱:

基本数据类型到包装类实例;拆箱:包装类实例转换为基本数据类型

java开始增加自动拆箱与自动装箱

Integer i=100;

int ib=i;

自动装箱池

将-128到127的整数已经装箱完毕,程序中使用该范围之内的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率

Integer i1=128; Integer i5=127; 
Integer i2=128;	Integer i6=127; 
Integer i3=new Integer(128);
Integer i3=new Integer(128);
i1==i2; //false 比较的地址     i5==i6; true 地址一样
i2/equals(i2); //true 比较内容

Double

		// 1.在Java5之前装箱和拆箱的实现
        // 实现了从double类型到Double类型的转换,装箱
        Double db1 = Double.valueOf(3.14);
        System.out.println("db1 = " + db1); // 3.14
        // 实现了从Double类型到double类型的转换,拆箱
        double d1 = db1.doubleValue();
        System.out.println("d1 = " + d1); // 3.14

        // 2.从Java5开始实现自动装箱和自动拆箱
        Double db2 = 3.14;
        double d2 = db2;
        
        double d=5.0/5  //Infinty正无穷大
        -5.0/.0   //-Infinity负无穷大
        0.0/0.0  //NAN (not a number)

Boolean

        // 相当于从boolean类型到Boolean类型的转换,装箱
        Boolean bo1 = Boolean.valueOf(true);
        System.out.println("bo1 = " + bo1); // true
        boolean b1 = bo1.booleanValue();
        System.out.println("b1 = " + b1); // true

        System.out.println("----------------------------------------------");
        // 2.从Java5开始支持自动装箱和拆箱
        Boolean bo2 = false;
        boolean b2 = bo2;
        System.out.println("b2 = " + b2); // false

        System.out.println("----------------------------------------------");
        // 3.实现从String类型到boolean类型的转换
        //boolean b3 = Boolean.parseBoolean("112");
        // 该方法的执行原理是:只要参数数值不为true或者TRUE时,则结果就是false

Character

  • 封装了单个字符值
        // 1.在Java5之前调用方法实现装箱和拆箱机制
        // 相当于从char类型到Character类型的转换,装箱
        Character ca1 = Character.valueOf('a');
        System.out.println("ca1 = " + ca1); // a
        // 从Character类型向char类型的转换,拆箱
        char c1 = ca1.charValue();
        System.out.println("c1 = " + c1); // a

        System.out.println("----------------------------------------");
        // 2.从Java5开始支持自动装箱和拆箱
        Character ca2 = 'b';
        char c2 = ca2;
        System.out.println("c2 = " + c2); // b

        System.out.println("----------------------------------------");
        // 3.实现字符类型的判断以及转换
        System.out.println(Character.isUpperCase(c2)); // 判断是否为大写字母  false
        System.out.println(Character.isLowerCase(c2)); // 判断是否为小写字母  true
        System.out.println(Character.isDigit(c2));     // 判断是否为数字字符  false
        System.out.println("转换为大写字符是:" + Character.toUpperCase(c2)); // B
        System.out.println("转换为小写字符是:" + Character.toLowerCase(c2)); // b

Math类(熟悉)

        System.out.println("获取两个整数中最大值的结果是:" + Math.max(10, 20)); // 20
        System.out.println("获取两个整数中最小值的结果是:" + Math.min(10, 20)); // 10
        System.out.println("获取次方的结果是:" + Math.pow(2, 3)); // 8.0  体现double类型
        System.out.println("获取绝对值的结果是:" + Math.abs(-5)); // 5
        System.out.println("进行四舍五入的结果是:" + Math.round(3.14)); // 3
        System.out.println("该整数的平方根是:" + Math.sqrt(16)); // 4.0
        System.out.println("生成的随机数是:" + Math.random()); // 随机数 包含0.0不含1.0

BigDecimal类

由于float与double类型在运算时可能有误差,对于BigDecimal可实现精度运算

       // 1.构造BigDecimal类型的两个对象
        BigDecimal bd1 = new BigDecimal("5.2");
        BigDecimal bd2 = new BigDecimal("1.3");
        // 2.使用构造完毕的对象实现加减乘除运算
        System.out.println("实现加法运算的结果是:" + bd1.add(bd2)); // 6.5
        System.out.println("实现减法运算的结果是:" + bd1.subtract(bd2)); // 3.9
        System.out.println("实现乘法运算的结果是:" + bd1.multiply(bd2)); // 6.76
        System.out.println("实现除法运算的结果是:" + bd1.divide(bd2)); // 4

        // 3.实现精确运算
        System.out.println(0.1 + 0.2); // 0.30000000000000004
        BigDecimal bd3 = new BigDecimal("0.1");
        BigDecimal bd4 = new BigDecimal("0.2");
        System.out.println("精确计算的结果是:" + bd3.add(bd4)); // 0.3

        // 4.注意事项
        BigDecimal bd5 = new BigDecimal("2");
        BigDecimal bd6 = new BigDecimal("0.3");
        System.out.println("除法运算的结果是:" + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
    }

BigInteger类可表示任何大小的实数

igDecimal(“2”);
BigDecimal bd6 = new BigDecimal(“0.3”);
System.out.println(“除法运算的结果是:” + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
}


BigInteger类可表示任何大小的实数













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值