拾 Java Number和Math类
来源:互联网 发布:角度弧度转换器软件 编辑:程序博客网 时间:2024/05/16 03:42
Java Number 类
一般的,在需要使用数字的时候,会使用内置数据类型:byte,short,int,long,double等。
但是,在实际开发中,经常遇到需要使用对象,而不是内置数据类型的情况。为此,Java为每一个内置数据类型提供了对应的包装类。
包装类:Integer、Long、Byte、Double、Float、Short(注意大小写),他们都是Number的子类。
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当做对象使用的时候,编译器会把内置类型装箱为包装类。
类似的,编译器也把一个对象拆箱为内置类型。Number类属于java.lang包。
eg.
public class Test{ public static void main(String args[]){ Integer x = 5; x = x + 10; System.out.println(x); }}
解析:当 x 被赋为整型值时,由于x是一个对象,所以编译器要对x进行装箱。然后,为了使x能进行加运算,所以要对x进行拆箱。
Math类
Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
以下是Number和Math类的一些常用方法:
注意 “==”与 “qeuals()”的区别
== 比较的是对象的地址。
equals()比较的是对象的内容。
eg.
... Integer a = 10; Integer b = 10; System.out.println(a == b); // true System.out.println(a.equals(b)); // true Integer a = 1000; Integer b = 1000; System.out.println(a == b); // false System.out.println(a.equals(b)); // true ...
但是,问题来了,根据 “==”比较的是对象的地址这一说,当Integer a = 10 和 Integer b = 10,来说,a 和 b 对象的地址不可能是一样的呀,然而结果却是 true 。
解析:简单的来说,就是Java会对-128-127的整数进行缓存。
Integer类中有个内部类:IntegerCache ,这个类中有一个缓存数组cache[],存放的内容是-128到127的整数。在声明Integer 变量的时候,若变量在-128-127间,就不会新建对象,而是取缓存的对象,让a和b指向缓存的对象,所以 a == b 返回 true;反之当 新建的Integer 对象 不在 -128 - 127 间时,才会新建对象,此时对象地址不会一样。
- 拾 Java Number和Math类
- java——Number 和 Math类
- Java Number & Math 类
- Java Number & Math 类
- Java Number & Math 类
- Java Number & Math 类
- Java Number & Math 类
- Java Number & Math类
- Java Number & Math 类
- JAVA Number & Math类
- Java Number & Math 类
- Java Number & Math 类
- Java Number&Math类
- Java Number & Math 类
- Java学习之Number & Math 类
- Java学习——Number & Math 类
- JavaScript Math和Number对象
- js使用Number和Math
- jQuery对象与js对象互相转换
- MySQL 使用 INTERVAL() 函数 实现数据按区间分组
- 递归:编写一段代码,完成1+2+3+4+...+100,并输出结果,在这段代码中不得出现for,while关键字
- 对话刘峻:市值5-10万亿美金的超级巨头将出现
- Spring MVC之跳转路径如何摆脱ViewResolver的束缚,跳转到不同的目录?
- 拾 Java Number和Math类
- PHP memcache扩展安装
- 总结1
- Yii框架查询Mongodb并页面显示问题
- 利用apache2+gitolite+gitweb搭建git服务器的详细步骤
- Android手写Handler框架
- XC7VX690T-2FFG1761_PCIe 系列之三
- Camera V4L2 架构分析
- Loading class `com.mysql.jdbc.Driver'. This is deprecated 警告异常