读书笔记——基本数据类型

Java语言有八种基本数据类型

  • 逻辑类型:boolean
  • 整数类型:byte、short、int、long
  • 字符类型:char
  • 浮点类型:float、double

除逻辑类型外,按精度从”低“到”高“排序:byte、short、char、int、long、float、double

逻辑类型

    常量:true、false

    使用关键字boolean来声明逻辑类型,声明时也可以赋初值,例如:

    boolean x;

    boolean flag = true;

整数类型

  • byte型

    byte x = -12;

    byte y =  98;

    对于byte型变量,内存分配给一个字节,占8位。因此byte型变量的取值范围是-27~27-1。

    如果需要强调一个整数是byte型数据,可以使用强制转换运算的结果来表示:(byte)-12,(byte)98。

  • short型

    short x = 12;

    short y = 1234;

    对于short型变量,内存分配给两个字节,占16位。因此short型变量的取值范围是-215~215-1。

    如果需要强调一个整数是short型数据,可以使用强制转换运算的结果来表示:(short)12,(short)1234。

  • int型

    常量:3000(十进制)、077(八进制)、0x3ABC(十六进制)。

    变量:  int x = 888;

         int y = 9999;

    对于int型变量,内存分配给四个字节,占32位。因此short型变量的取值范围是-231~231-1。

    如果需要强调一个整数是int型数据,可以使用强制转换运算的结果来表示:(int)888,(int)9999。

  • long型

    常量:3000L(十进制)、077L(八进制)、0x3ABCL(十六进制)。

    需要注意的是:long型常量用后缀L来表示。

    变量:  long x = 888L;

         long y = 9999L;

    对于long型变量,内存分配给八个字节,占64位。因此long型变量的取值范围是-263~263-1。

    如果需要强调一个整数是long型数据,可以使用强制转换运算的结果来表示:(long)888,(long)9999。

字符类型

    常量:'A','?','9'等,即用单引号括起来的Unicode表中的一个字符。

    变量:    char c = 'c';

           char home = '家';

    对于char型变量,内存分配给两个字节,占16位,最高位不是符号位,没有负数的char。char型变量的取值范围是0~65535。

    对于以下的语句:char x='a';

    内存x中存储的是97,97是字符a在Unicode表中的排序位置。因此,可写成: char x = 97;

    需要注意的是,有些字符不能通过键盘输入到字符串或程序中,这时需要使用转义字符常量:

转义字符 \n \b \t \' \" \\
作用  换行  退格  水平制表  单引号  双引号  反斜线

    下面做一个小测试,显示一些字符在Unicode表中的位置,以及Unicode表中某些位置的字符:

 

浮点类型 

  • float型

    常量:453.5439f、213.3f(小数表示法)、2e44f(2×1044,指数表示法)。

    需要注意的是,常量后面必须有后缀 f 或 F 。

    变量:    float x = 22.76f;

           float y = 123.55f;

    对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围是10-38~1038和-1038~10-38

  • double型

    常量:2389.435d、29583.865、0.05(小数表示法)、1e-90(1×10-90,指数表示法)。

    对于double常量,可以有后缀 d 或 D,也可以省略该后缀。

    变量:    double x = 23.235;

           double y = 35.53D;

    对于double型变量,内存分配给8个字节,占64位,double型变量的取值范围是10-308~10308和-10-308~10308

 

PS:①:当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算(将导致精度的损失)。

②:当把一个double型常量赋值给一个float型变量时,没有进行强制转换运算,讲导致语法错误。

 

 本人对于float型和double型的取值范围和有效数字没有十分清楚,网上的说法也各有不同,如有错,望指正。

  以后有新的理解,必来重写本篇。

 

posted @ 2018-06-01 02:00  留住思绪  阅读(556)  评论(0编辑  收藏  举报