Java基础—基本类型包装类及System类和Math类

  1.基本类型包装类

      在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等

  基本数据类型对象包装类特点:用于在基本数据和字符串之间进行转换。

  将字符串转化成基本数据类型

  parseXXX(String s);其中XXX表示基本类型,参数为可以转成基本类型的字符串

 代码演示:

System.out.println(Integer.parseInt("123") + 2);

 

//打印结果为 125

 

 

 将基本数值转成字符串有3种方式:

 

 基本类型直接与””相连接即可;34+""

 

 调用String的valueOf方法;String.valueOf(34) 

 

 调用包装类中的toString方法;Integer.toString(34) 

 

 

基本数据类型和对象的转换

 使用int类型与Integer对象转换进行演示,其他基本类型转换方式相同。

 基本数值---->包装对象

Integer i = new Integer(4);//使用构造函数函数

Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串

Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法

 

Integer iiii = Integer.valueOf("4");//使用包装类中的valueOf方法

 

 

包装对象---->基本数值

 

int num = i.intValue();

 

 

自动装箱拆箱

 

在需要的情况下,基本类型与包装类型可以通用。有些时候我们必须使用引用数据类型时,可以传入基本数据类型。

 

比如:

 

基本类型可以使用运算符直接进行计算,但是引用类型不可以。而基本类型包装类作为引用类型的一种却可以计算,原因在于,Java”偷偷地自动地进行了对象向基本数据类型的转换。

 

相对应的,引用数据类型变量的值必须是new出来的内存空间地址值,而我们可以将一个基本类型的值赋值给一个基本类型包装类的引用。原因同样在于Java偷偷地自动地进行了基本数据类型向对象的转换。

 

自动拆箱:对象自动直接转成基本数值

 

自动装箱:基本数值自动直接转成对象

 

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);

 

i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 加法运算完成后,再次装箱,把基本数值转成对象。

 

 

 

自动装箱(byte常量池)细节的演示

 

当数值在byte范围之内时,进行自动装箱,不会新创建对象空间而是使用已有的空间。

 

Integer a = new Integer(3);

 

Integer b = new Integer(3);

 

System.out.println(a==b);//false

 

System.out.println(a.equals(b));//true

 

 

 

System.out.println("---------------------");

 

Integer x = 127;

 

Integer y = 127;

 

//jdk1.5自动装箱时,如果数值在byte范围之内,不会新创建对象空间而是使用原来已有的空间。

 

System.out.println(x==y); //true

 

System.out.println(x.equals(y)); //true

 

 

 

2.System类

APISystem类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。

 

System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。System类中的都是static方法,类名访问即可。在JDK中,有许多这样的类。

常用的方法:

 currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

 

 exit(int status) 用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态

gc() 用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。

 

 getProperty(String key) 用来获取指定(字符串名称)中所记录的系统属性信息

 

 

 arraycopy方法,用来实现将源数组部分元素复制到目标数组的指定位置

 

 

 

 

 

 

3Math类

Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。

 

类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。如System

 常用方法:

l abs方法,结果都为正数

 

double d1 = Math.abs(-5); // d1的值为5

 

double d2 = Math.abs(5); // d2的值为5

 

l ceil方法,结果为比参数值大的最小整数的double值

 

double d1 = Math.ceil(3.3); //d1的值为 4.0

 

double d2 = Math.ceil(-3.3); //d2的值为 -3.0

 

double d3 = Math.ceil(5.1); // d3的值为 6.0

 

l floor方法,结果为比参数值小的最大整数的double值

 

double d1 = Math.floor(3.3); //d1的值为3.0

 

double d2 = Math.floor(-3.3); //d2的值为-4.0

 

double d3 = Math.floor(5.1); //d3的值为 5.0

 

l max方法,返回两个参数值中较大的值

 

double d1 = Math.max(3.3, 5.5); //d1的值为5.5

 

double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3

 

l min方法,返回两个参数值中较小的值

 

double d1 = Math.min(3.3, 5.5); //d1的值为3.3

 

double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5

 

l pow方法,返回第一个参数的第二个参数次幂的值

 

double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0

 

double d2 = Math.pow(3.0, 3.0); //d2的值为27.0

 

l round方法,返回参数值四舍五入的结果

 

double d1 = Math.round(5.5); //d1的值为6.0

 

double d2 = Math.round(5.4); //d2的值为5.0

 

l random方法,产生一个大于等于0.0且小于1.0的double小数

 

double d1 = Math.random();

 

 

 

 

 

 

 

 

1.1 BigInteger

  javalong型为最大整数类型,对于超过long型的数据如何去表示呢.Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2019-09-10 14:24  小蜘zhu  阅读(214)  评论(0编辑  收藏  举报