Java基本数据类型
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定。由于是statical typed,导致Java语言也是强类型(Strong typed)的。强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以hold哪些值,表达式最终产生什么值。同时限制了这些值可以进行的操作类型以及操作的具体方式。所有的赋值操作,无论是显式的还是在方法调用中通过参数传递,都要进行类型兼容性检查。
在java源代码中,每个变量都必须声明一种类型(type)。有两种类型:primitive type和reference type。引用类型引用对象(reference to object),而基本类型直接包含值(directly containvalue)。因此,Java数据(type)可以分为两大类:基本类型(primitive types)和引用类(reference types)。primitive types 包括boolean类型以及数值类型(numeric types)。numerictypes又分为整型(integer types)和浮点型(floating-point type)。整型有5种:byte short int long char(char本质上是一种特殊的int)。浮点类型有float和double。关系整理一下如下图:
Java八大数据类型
Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类
java.lang.Void,不过我们无法直接对它们进行操作。8 中类型表示范围如下:
-
byte:1字节8位,最大存储数据量是255,存放的数据范围是-128~127之间。
-
short:2字节16位,最大数据存储量是65536,数据范围是-32768~32767之间。
-
int:4字节32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
-
long:8字节64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
-
float:4字节32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
-
double:8字节64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
-
boolean:只有true和false两个取值。
-
char:2字节16位,存储Unicode码,用单引号赋值。
数据类型转换
自动转换时发生扩宽(widening
conversion)。因为较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。如果将字面值保存到byte、short、char、long的时候,也会自动进行类型转换。注意区别,此时从int(没有带L的整型字面值为int)到byte/short/char也是自动完成的,虽然它们都比int小。在自动类型转化中,除了以下几种情况可能会导致精度损失以外,其他的转换都不能出现精度损失。》int–> float
》long–> float
》long–> double
》float -->double without strictfp
除了可能的精度损失外,自动转换不会出现任何运行时(run-time)异常。
小知识:
1.bit就是位,也叫比特位,是计算机表示数据最小的单位
2.byte就是字节
3.1byte=8bit ,0001 1100,一般用两个16进制来显示,所以我们经常看到1个字节显示为 1c
4.1byte就是1B
Java中的常量
-
十六进制整型常量:以十六进制表示时,需以0x或0X开头,如0xff,0X9A。
-
八进制整型常量:八进制必须以0开头,如0123,034。
-
长整型:长整型必须以L作结尾,如9L,342L。
-
浮点数常量:由于小数常量的默认类型是double型,所以float类型的后面一定要加f(F)。同样带小数的变量默认为double类型。
如:float f;
f=1.3f;//必须声明f。
- 字符常量:字符型常量需用两个单引号括起来(注意字符串常量是用两个双引号括起来)。Java中的字符占两个字节。一些常用的转义字符:
①\r表示接受键盘输入,相当于按下了回车键;
②\n表示换行;
③\t表示制表符,相当于Table键;
④\b表示退格键,相当于Back Space键;
⑤’表示单引号;
⑥’'表示双引号;
⑦\表示一个斜杠\。