手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

Java中的Math、System、Object、Objects、BigDecimal的常用方法,基本数据类型包装类、int和String的相互转换方法

时间:2021/5/27 18:51:09|来源:|点击: 次

1. API——Math

Math类 包含执行基本数字运算的方法

Math类中无构造方法(构造方法私有化),但内部的方法都是静态的,则可以通过 类名.进行调用

Math类的常用方法:

  • int abs(int a):返回参数绝对值
  • double ceil(double a):向上取整
  • double floor(double a):向下取整
  • int round(float a):四舍五入返回最接近a的int型数字
  • int max(int a, int b):返回二者中的最大值
  • int min(int a, int b):返回二者中的最小值

2. API——System

System类中无构造方法(构造方法私有化),但内部的方法都是静态的,则可以通过 类名.进行调用

System类常用方法:

  • public static void exit(int status)  终止当前运行的 Java 虚拟机,非零表示异常终止
  • public static long currentTimeMillis()  返回当前时间(以毫秒为单位)
  • arraycopy(数据源数组, 起始索引, 目标数组, 起始索引, 拷贝个数) 数组复制

3. API——Object

所有类都直接或者间接的继承自Object,换句话说,Object所具备的方法,所有类都会有一份

构造方法:public Object(){}(所有的类都会默认调用父类无参构造,因为顶级父类Object只有无参构造)

println的原码:实际上是调用Object中的toString方法默认返回地址值。我们可以在自定义的类中重写toString方法(用自定义方式打印对象)

在Student类中重写Object的toString方法:

@Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", height=" + height +
                '}';
    }

Object中的equals方法:用于对象之间的比较,返回true和false的结果(默认比较二者的地址值),可以在Student类(自己写的类)中自动生成

equals方法常见面试题:

  • String中的equals虽然比较的是字符串内容是否相等,但是首先比较是否是字符串类型
  • StringBuilder类中没有重写equals方法,用的就是Object类中equals方法,比较地址值

4. API——Objects

构造方法:无构造方法,内部方法都为静态方法

Objects常用方法:

  • public static String toString(对象) :返回参数中对象的字符串表示形式(调用对象的toString方法)
  • public static String toString(对象, 默认字符串) :返回参数对象的字符串表示形式,若对象为空,返回默认字符串
  • public static Boolean isNull(对象):判断对象是否为空
  • public static Boolean nonNull(对象):判断对象是否不为空

5. API——BigDecimal

作用:用于精确计算(构造方法使用参数类型为字符串)

构造方法:BigDecimal(double val)和BigDecimal(String val)

BigDecimal常用方法:

  • public BigDecimal add(另一个BigDecimal对象) 加
  • public BigDecimal subtract (另一个BigDecimal对象) 减
  • public BigDecimal multiply (另一个BigDecimal对象) 乘
  • public BigDecimal divide (另一个BigDecimal对象) 除
  • public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式)

舍入模式(常量):

  • BigDecimal.ROUND_UP  进一法
  • BigDecimal.ROUND_FLOOR 去尾法
  • BigDecimal.ROUND_HALF_UP 四舍五入
public class Test01 {
    public static void main(String[] args) {
        BigDecimal b1 = new BigDecimal("10");
        BigDecimal b2 = new BigDecimal("3");
        BigDecimal result = b1.divide(b2,1,BigDecimal.ROUND_HALF_DOWN);
        System.out.println(result);//3.3
    }
}

6. 基本数据类型包装类

把基本数据类型包装为对象,将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据,常用的操作之一:用于基本数据类型与字符串之间的转换

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

Integer类构造方法:

  • public static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例
  • public static Integer valueOf(String s) 返回一个保存指定 String 值的 Integer 实例

自动装箱:把基本数据类型转换为对应的包装类类型

自动拆箱:把包装类类型转换为对应的基本数据类型

Integer i = 100;  // 自动装箱
i += 200;         // i = i + 200;  i + 200 自动拆箱;i = i + 200; 是自动装箱

int 类型转换为String类型:

  • 方式一:直接在数字后加一个空字符串
  • 方式二:通过String类静态方法valueOf()
public static void main(String[] args) {
        //int --- String
        int number = 100;
        //方式1
        String s1 = number + "";
        System.out.println(s1);
        //方式2
        //public static String valueOf(int i)
        String s2 = String.valueOf(number);
        System.out.println(s2);
    }

String 类型转换为int类型:

  • 方式一:先将字符串数字转成Integer,再调用valueOf()方法
  • 方式二:通过Integer静态方法parseInt()进行转

 

 

public static void main(String[] args) {
        String s = "100";
        //方式1:String --- Integer --- int
        Integer i = Integer.valueOf(s);
        //public int intValue()
        int x = i.intValue();
        System.out.println(x);
        //方式2
        //public static int parseInt(String s)
        int y = Integer.parseInt(s);
        System.out.println(y);
    }

案例需求:有一个字符串:“91 27 46 38 50”,把其中的每一个数存到int类型的数组中

String str = "91 27 46 38 50";
//1.需要将字符串中的数字拿出来,使用split进行切割,先拿到字符串数组
String[] strArr = str.split(" ");
//2.创建一个int类型的数组
int[] numArr = new int[strArr.length];
//3.遍历字符串数组,拿出里面的字符串,然后进行类型转换
for (int i = 0; i < strArr.length; i++) {
    //4.将String转换成int,使用parseInt。给int数组赋值
    numArr[i] = Integer.parseInt(strArr[i]);
}

 

如有错误欢迎留言评论,及时更正。 5月27日 羽露风

Copyright © 2002-2019 某某自媒体运营 版权所有