Java数据类型相关知识点-整型

数据类型在程序语言的构成要素里占有相当重要的地位。Java的数据类型可分为基本数据类型与引用数据类型两种,其中最基本的数据类型包括了最基本的byte、short、int、float、double、char、long、boolean等。而对于引用数据类型(类似于c/c++的指针),在操作时必须要进行内存的开辟。数据的类型划分如下所示:

 

注:基本数据类型不牵扯到内存的开辟问题,而引用数据类型牵扯到内存的开辟。

如果从开发角度来讲,以下的几种基本类型最为常用:

①    int型(-2147483648-2147483647):只要是看见了整数的定义,其类型都是整型,默认值为0;

②    double型(-1.7E308-1.7E308):只要看见了小数的定义,其类型基本都是double型,默认值为0.0;

③    byte型(-128-127):数据传输与IO和编码转换的时候使用此类型,默认值为0。

④    boolean型(true或false):用于程序的逻辑操作,默认值为false;

⑤    long型(-9223372036854775808-9223372036854775807):表示日期时间或文件长度的时候使用默认值为0。

小提示:Java中可以方便地去每一个数据类型的最大值和最小值:

     如int型和double型:

           最大值:Integer.MAX_VALUE;

Double.MAX_VALUE;

           最小值:Integer.MIN_VALUE;

                   Double.MIN_VALUE;

注:在int型中,①最大值+1=最小值;②最小值-1=最大值

  

运行结果:

以上出现的结果称为数据的溢出,而解决溢出的主要方法是可以通过扩大数据范围来完成,比int大的范围是long,所以可以用如下两种方式完成:数字或变量L、(long)数字或变量。

运行结果:

在Java中,各个基本数据类型的转型操作流程为:

    ①范围小和范围大的两种数据操作,范围小的数据类型自动转换为范围大的数据类型,如:int+long=long;

    ②如果要把表示范围大的数据变成范围小的数据,则必须强制类型转换,如:int型=(int)long型。

 当强制转换的数据类型的数据值大于接收类型时,依然会存在数据溢出。如以下byte的验证:

运行结果:

原因:因为int型变量x保存的内容是200,这个数值已经超过了byte的数据范围(-128~127),所以仍然发生了数据溢出。

注:对于byte的赋值操作Java有一个特殊支持。

如果现在用户要定义byte型变量,那么会存在两种情况:

①定义的数值在byte范围之内:

运行结果:

原因:按照之前讲解的知识,只要是一个整数其类型就默认为int型,所以按照道理来说,这个时候应该进行强制类型转换才可以将20转换为byte型,可是Java中对于这种直接复制的操作会自动帮助用户将int转换为byte型,但这也只是针对byte数据而言。

②定义的变量数值不在byte范围内:

运行结果错误提示:

 原因:由于此时200已经超过了byte的范围,所以程序在编译时就会明确地告诉用户,int型数据无法直接转换成byte型数据,用户需要自己执行强制处理

 

运行结果:

 

原文地址:https://www.cnblogs.com/qq1335210739/p/10265771.html