-
-
第一类:逻辑型boolean boolean类型数据只允许取值true或false,不可以0或非0的整数代替true和false,这点与C语言不同
-
第二类:文本型char(占两个字节)
字符常量是用单引号括骑楼的单个字符,例如:char eChar = 'a'; char cChar = '中';
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:
char c1 = '\u0061';//Unicode是全球语言统一编码
Java语言中还允许使用转义符‘\’来将其后的字符转变为其它的含义,例如:
char c2 = '\n';//'\n'表示换行符
-
第三类:整数型(byte、short、int、long)
Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响以保证Java程序的可移植性
Java语言整型常量的三种表示形式,如下://十进制整数 int a = 10; int b = 0; int c = -100; //八进制整数,以0开头 int d = 010;//与a值不等 //十六进制整数,以0x开头或者0X开头 int e = 0x12; int f = 0X12; //short从-32768到32767共五位,超过范围报错 short s = 100; //int从-2147483648,到2147483647共10位,超过范围报错 int i = 11111; //long从-9223372036854775808到9223372036854775807共19位,定义时后面需加上'l'或'L' long l = 11111111111L; long ll = 111111111111l;
byte与char的区别:
(1)byte是字节数据类型,带符号,占一个字节,大小范围为-128~127
(2)char是字符数据类型,无符号,占两个字节(Unicode码),大小范围是0~65535,char是一个16位二进制 的Unicode字符,Java用char来表示一个字符char c = (char) -3; // char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别 System.out.println(c); byte d1 = 1; byte d2 = -1; byte d3 = 127; // 如果是byte d3 = 128;会报错 byte d4 = -128; // 如果是byte d4 = -129;会报错 System.out.println(d1); System.out.println(d2); System.out.println(d3); System.out.println(d4); char e1 = '中', e2 = '国'; byte f= (byte) '中'; //必须强制转换否则报错 System.out.println(e1); System.out.println(e2); System.out.println(f); //打印结果为: ? 1 -1 127 -128 中 国 45
-
第四类:浮点型(float、double)
与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响//Java浮点型常量默认为double型,保证小数点后15位为绝对精确 double d = 12345.5; //float必须后面添加f或F,保证小数点后6位为绝对精确 float f = 12.3F; float ff = 123.15f;
-
所占字节长度
类型 占用存储空间 位 boolean ? 1 byte 1字节 8 short 2字节 16 int 4字节 32 long 8字节 64 float 4字节 32 double 8字节 64 boolean类型没有给出精确的定义,《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。