Java面试知识点:Object类、Math类、BigDecimal类、自动装箱、拆箱

问题:Java面试知识点:Object类、BigDecimal类、自动装箱、拆箱

答案:

1.Object类:

代码如下:

package com.xy;

/**
 * @ProjectName: day01
 * @Package: com.xy
 * @ClassName: test03
 * @Author: 杨路恒
 * @Description:
 * @Date: 2021/8/13 0013 17:33
 * @Version: 1.0
 */
public class test03 {
    public static void main(String[] args) {
        Student student=new Student("杨大大","23");
        System.out.println(student);
        System.out.println(student.toString());
        Student student1=new Student("杨大大","23");
        System.out.println(student.equals(student1));    //Object类中的equals方法,底层也是用==号比较地址值
        String s="abc";
        //1.此时调用的是String类中的equals方法。
        //保证参数也是字符串,否则不会比较属性值而直接返回false
        StringBuilder stringBuilder=new StringBuilder("abc");
        System.out.println(s.equals(stringBuilder));
        //2.StringBuilder类中是没有重写equals方法,用的就是Object类中的。
        System.out.println(stringBuilder.equals(s));
    }
}


package com.xy;

import java.util.Objects;

/**
 * @ProjectName: day01
 * @Package: com.xy
 * @ClassName: test04
 * @Author: 杨路恒
 * @Description:
 * @Date: 2021/8/13 0013 20:06
 * @Version: 1.0
 */
public class test04 {
    public static void main(String[] args) {
        Student student=new Student("杨大大","23");
        System.out.println(Objects.toString(student));      //返回参数中对象的字符串表示形式
        //如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。
        System.out.println(Objects.toString(null,"null"));
        System.out.println(Objects.isNull(student));    //返回 true如果提供的参考是 null ,否则返回 false 。
        System.out.println(Objects.nonNull(student));   //返回 true如果提供的参考是非 null否则返回 false 。
    }
}

2.Math类

代码如下:

package com.xy;

/**
 * @ProjectName: day01
 * @Package: com.xy
 * @ClassName: test01
 * @Author: 杨路恒
 * @Description:
 * @Date: 2021/8/13 0013 13:27
 * @Version: 1.0
 */
public class test01 {
    public static void main(String[] args) {
        int abs = Math.abs(-10);        //返回参数的绝对值
        System.out.println(abs);
        double ceil = Math.ceil(10.1);//向上取整
        System.out.println(ceil);
        double floor = Math.floor(10.1);        //向下取整
        System.out.println(floor);
        long round = Math.round(10.1);          //四舍五入
        System.out.println(round);
        double pow = Math.pow(6, 2);//返回a的b次方幂
        System.out.println(pow);
        double random = Math.random();//返回为double的正值
        System.out.println(random);
    }
}

3.BigDecimal类

代码如下:

package com.xy;

import java.math.BigDecimal;

/**
 * @ProjectName: day01
 * @Package: com.xy
 * @ClassName: test05
 * @Author: 杨路恒
 * @Description:
 * @Date: 2021/8/14 0014 9:25
 * @Version: 1.0
 */
public class test05 {
    public static void main(String[] args) {
        System.out.println(10.0/3.0);
        BigDecimal bigDecimal=new BigDecimal(10.0);
        BigDecimal bigDecimal1=new BigDecimal("0.3");
        System.out.println(bigDecimal);
        System.out.println(bigDecimal1);
        BigDecimal bigDecimal2=new BigDecimal("10.0");
        System.out.println(bigDecimal2.add(bigDecimal1));       //和为
        System.out.println(bigDecimal2.subtract(bigDecimal1));  //减为
        System.out.println(bigDecimal2.multiply(bigDecimal1));  //积为
        //返回BigDecimal其值为(this / divisor) ,其首选比例为(this.scale() - divisor.scale()) ;
        // 如果无法表示准确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException 。
//        System.out.println(bigDecimal2.divide(bigDecimal1));
        //参数一:表示参数运算的另一个对象
        //参数二:表示小数点后精确到多少位
        //参数三:舍入模式
                //进一法 BigDecimal.ROUND_UP
                //去尾法 BigDecimal.ROUND_FLOOR
                //四舍五入 BigDecimal.ROUND_HALF_UP
        System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_UP));
        System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_FLOOR));
        System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_HALF_UP));

    }
}

4.自动装箱、拆箱

代码如下:

package com.xy;

/**
 * @ProjectName: day01
 * @Package: com.xy
 * @ClassName: test06
 * @Author: 杨路恒
 * @Description:
 * @Date: 2021/8/14 0014 9:51
 * @Version: 1.0
 */
public class test06 {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        Integer integer=new Integer(6);
        Integer integer1=new Integer("66");
        System.out.println(integer);
        System.out.println(integer1);
        Integer integer2 = Integer.valueOf(6);
        Integer integer3 = Integer.valueOf("66");
        System.out.println(integer2);
        System.out.println(integer3);
        Integer integer4=6;     //自动装箱,Java底层会帮我们自动的调用valueof方法
        System.out.println(integer4);
        int i=integer4;
        System.out.println(i);
        String s="6";
        System.out.println(integer4+Integer.parseInt(s));
        String s1="91 27 46 38 50";
        int[] arr=new int[s1.length()];
        int index=0;
        String s2="";
        for (int j = 0; j <s1.length() ; j++) {
            if(s1.charAt(j)==' '){
                arr[index]=Integer.parseInt(s2);
                index++;
                s2="";
            }
            else {
                s2+=s1.charAt(j);
            }
        }
        arr[index]=Integer.parseInt(s2);
        for (int j = 0; j <arr.length ; j++) {
            System.out.println(arr[j]);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhyangtop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值