Java 里的数据类型基本知识

1. Java数据类型体系总概

​ Java的数据类型可分为两种。一种被称为基本数据类型,另外一种叫做引用类型。

​ 其中基本数据类型跟其他语言中的数据类型一样,而引用类型则为Java特定类型,有了它Java可以实现强大的功能。

2. Java的基本数据类型

2.1 Java的基本数据类型基本知识
  • 基本数据类型

    Java中的基本数据类型有8种,它们分别是:

    ​ 整数类型 byte short int long;

    ​ 浮点型 float double;

    ​ 布尔型 boolean;

    ​ 字符型 char;

  • 基本数据类型的取值范围:

数据类型位数取值范围
boolean1true|false
byte8-128~127
short16-32768~32767
int32-2e31~2e31-1
long64-2e63~2e63-1
float32
double64
char160-65535 ‘\u0000’~‘\uFFFF’
2.2 Java中基本类型的使用

​ 用于修饰参数、变量的类型,根据使用的场景不同对其定义为不同的数据类型。在选择数据的类型时,需注意数据的可能取值范围是否合适,不能超过选择的类型的取值范围。

  • byte、short、int、long是用于定义整数型的参数的;

  • float、double则是用于定义浮点型的参数(即带小数点);

  • boolean是用于定义判断性质的参数;
  • char则是用于定义单个字符的参数;

在数据的调用和运算过程中,难免会有不同类型的数据进行运算的情况,比如:

​ int a=100; long b = 2e62;

此时若上述两种类型的数据进行数学运算的时候,就必须将数据的类型进行转换。可见我们就有数据类型转换的需求。

2.2.1 基本数据类型转换

​ 基本数据类型的转换分为 显式转换隐式转换 两种。

  • 隐式转换

在参数的运算赋值过程中,不需要额外的操作即可。

例如:

    int a=100; 
    long b = 2e62;
    long c;
    c=a;
    c = a +b;

​ 在上述例子中 ,b的类型为long,而a为int型,c的类型为long,而long型的取值范围是大于int型的。就像大桶能装小桶一样,int型的数据是可以转换为取值范围较大的long型数据的。

​ 隐式转换的原则是取值范围小的数据类型可以转为取值范围大的类型的数据的。反之,取值范围大的数据是不能隐式转换的。

规则是:

​ - 类型兼容

​ - 目标类型大于源类型 byte < short < int < long

public class Demo {
    public static void main(String[] args){
        int x;
        double y;
        x = (int)34.56 + (int)11.2;  // 丢失精度
        y = (double)x + (double)10 + 1;  // 提高精度
        System.out.println("x=" + x);
        System.out.println("y=" + y);
    }
}

运行结果:
x=45
y=56.0

​ 仔细分析上面程序段:由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的结果就是 45。在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成 double 类型,所以也变成 10.0,所以最后 y 的值变为 56。

3. Java的引用类型

​ Java的引用类型是指除开前面提到的基本数据类型以外的数据类型。只要一个数据它不是基本数据类型那么它就是引用类型。常见的引用类型有:String类型、Number类型、Math类型等。

​ 一切的引用类型都可以用class关键字来进行搭建,对引用类型赋值是通过new这个关键字构造方法来创建个实例化对象实现的。例如:

​ 先用class构建个类型Cat,然后在Dog类中声明引用类型为Cat的属性。

public class Cat{   //通过class建立了个Cat类型
}
public class Dog{
  private Cat cat = new Cat();//在其他class中声明该类型并赋初值
} 

注意:String这个引用类型,是可以直接用的,可以直接赋值。例如:

public class Dog{
    private String name = 'peter'; //可以直接赋值,没必要使用new关键字
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值