Java基础:数据类型

    技术2022-05-19  20

    1.  分类

    基本数据类型

    4 类 8 种 --> 

    逻辑型 boolean  文本型 char  整数型 byte short int long  浮点型 float double

     

    引用数据类型

    3类      --> 

    类 class    接口 interface     数组

     

    2. 基本数据类型

     <1> 数据提升:运算之前,先转换为高一级的数据类型再运算,规则如下:

       byte  short  char ---> int ---> long ---> float ---> double     1       2        2             4           8             4              8  -->octets

       byte short char 之间不会相互提升,boolean不会转化为其他数据类型.

       byte 范围:-128 ~ 127

       byte short char 在参加运算时,会自动转化为 int,再运算。

       如:byte b1 = 1;          byte b2 = 2;          byte b3 = b1 + b2 ;报错          //byte b3 = (byte)b1+b2;  联想到 short char 也是如此

     <2> 数据声明

      整型量会默认为 int 类型,所以 long 类型后面要加 l 或者 L

      long a = 20L;                 long a = 20l; 

      再如:long l = 2000000000;//不加L或者l就会报错(过大的整数)

     

      因为编译器看到整型数就视为int但是int只有四个字节装不下2000000000就报错!      浮点数会默认为 double 类型,所以float类型后面要加 f 或者 F

      float f = 2.3F;               float f = 2.3f;      建议:声明 long 或者 float 数据类型时写上F 或者 L,不要使用小写的 f 或者 l。

    猜猜下面程序打印结果?

    public class OnLongDemo { // 年的微秒数 private static final long MICROS_PER_YEAR = 365 * 24 * 60 * 60 * 1000 * 1000; // 年的毫秒数 private static final long MILLIS_PER_YEAR = 365 * 24 * 60 * 60 * 1000; public static void main(String[] args) { System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR); } }

    那么,修改一下代码

    public class OnLongDemo { // 年的微秒数 private static final long MICROS_PER_YEAR = 365L * 24 * 60 * 60 * 1000 * 1000; // 年的毫秒数 private static final long MILLIS_PER_YEAR = 365L * 24 * 60 * 60 * 1000; public static void main(String[] args) { System.out.println(MICROS_PER_YEAR/MILLIS_PER_YEAR); } }

    再看一个小程序,就可以知道为什么要写大写字母 L, 而不写小写字母l

    public class OnLongDemo { public static void main(String[] args) { long x = 1234; long y = 432l; System.out.println("x+y= " + (x+y)); } } 很多人,一看打印结果是 x+y= 5555,但是你错了!!

    long y = 432l 后面不是数字 1,而是小写字母 l


    最新回复(0)