JAVA-基本数据类型的封装类型,Math类,Character 类

Java 基本数据类型

变量:就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型

Java中绝大部分操作都是基于内存的,我们要存储“卢大宝”这个名字就必须在内存中开辟一块内存区域用于存储,例如:想存储姓名可以如下代码:

String name = "卢大宝";

如果我们舍弃String 直接声明 name = "卢大宝"  ,这样在逻辑上是行得通的,因为确实开辟了一块内存来存储数据。但是数类型是让我们合理的使用内存


封装类型对应如下

案例

byte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127

Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装

一般情况包装类用于泛型或提供静态方法,用于基本类型或字符串之间转换,建议尽量不要用包装类和基本类型之间运算,因为这样运算效率会很差的


传递方式不同

基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的

如果想传递一个int对象的引用,而不是值,那只能用封装类

 

封装类可以有方法和属性

封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等,具体参考Number类

JDK5.0开始可以自动封包了 ,也就是基本数据可以自动封装成封装类,基本数据类型的好处就是速度快(不涉及到对象的构造和回收),封装类的目的主要是更好的处理数据之间的转换,方法很多,用起来也方便

 

默认值不同

基本类型跟封装类型的默认值是不一样的。如int i,i的预设为0;Integer j,j的预设为null,因为封装类产生的是对象,对象默认值为null。

 

存储位置

基本类型在内存中是存储在栈中,引用类型的引用(值的地址)存储在栈中,而实际的对象(值)是存在堆中。

 

特定场合使用

某些场合,需要用到封装类,比如一个集合List,它只能往里面添加对象,也就是Object,那么直接存数字肯定是不行 的,则需要将数字封装成封装类型对象再存到该List中


Number类

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类

Java Math 类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

Number & Math 类常用方法
方法描述
 xxxValue()将 Number 对象转换为xxx数据类型的值并返回。
compareTo()将number对象与参数比较。

字符比较用compareTo()时,长度相同,从第一位开始比较,如果相同返回0,如果不同则返回这两个字符的ascii值的差值

Integer比较用compareTo()时,对比数字时相同,返回0,对比数字不同时,返回-1

equals()判断number对象是否与参数相等。
valueOf()返回一个 Number 对象指定的内置数据类型
toString()以字符串形式返回值。
parseInt()将字符串解析为int类型。
abs()返回参数的绝对值。
ceil()返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
floor()返回小于等于(<=)给定参数的最大整数 。
rint()返回与参数最接近的整数。返回类型为double。
round()它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。
min()返回两个参数中的最小值。
max()返回两个参数中的最大值。
sqrt()求参数的算术平方根。
random()

返回一个随机数。Math.random()默认产生大于等于0.0且小于1.0之间的随机double型随机数

 案例

    public static void main(String[] args) {
       int a = (int) (Math.random()*10+1);
       System.out.println(a);// 0~10之间随机数(整数)

       Integer b = 1;
       Integer c = 100;
       Integer d = b.compareTo(c);
       double e = b.doubleValue();
       System.out.println(e);//1.0
       System.out.println(d);//-1
    }

Character 类

Character 类用于对单个字符进行操作

Character 类常用方法
方法描述
isLetter()是否是一个字母
isDigit()是否是一个数字字符
isWhitespace()是否是一个空白字符
isUpperCase()是否是大写字母
isLowerCase()是否是小写字母
toUpperCase()指定字母的大写形式
toLowerCase()指定字母的小写形式
toString()返回字符的字符串形式,字符串的长度仅为1

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值