java的基本数据类型

  • 四类八种

四类

  1.     ×××     byte short int long

  2.     浮点型 double float

  3.     字符型 char

  4.     布尔型 boolean

八种

类型 位数 取值范围
byte 字节型 1byte=8bit -128~127 大概120
short 短××× 2byte=16bit -32768-32767 大概3万2千
int 整数型 4byte=32bit -2147483648~2147483647 正好超过20亿 基本满足日常需求
long 长××× 8byte=64bit -9223372036854774808~9223372036854774807
float 单精度浮点型 4byte=32bit 有效数字6到七位 3.4e-45~1.4e38
double 双精度浮点型 8byte=64bit 有效数字35位 4.9e-324~1.8e308
char 字符型 2byte \u0000(即为0) \uffff(即为65,535)
boolean 布尔型 1byte false和true
  • 注意事项

×××:

通常情况下int类型更常见,而在表示一个很大的数的时候需要用的long byte和short在特定的情况下使用 java会把出现的××× 例如35 默认为int类型

因此我们在表示bye的数字后面加上B 在short的数字后面加上S int什么都不需要加 而且在long类型后面必须加L,否则当数字没有超过int类型是不会报错但是当超过int表示范围的时候就会报错 为什么呢 因为 不加L默认是int,int转为long是安全的,所以会自动转,能编译通过。

(后缀最好写成大写 因为小写l和1难以区分)

浮点型:

float和double的区别就在于精度不同 double的精度更高是flaot的两倍 所以叫双精度浮点型

float类型的数值后面应该加F 没有F的数据默认为double类型。 

浮点型的数据是不能完全精确的 所以不能用来表示货币

在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。 

这些位的构成如下: 

种类-------符号位-------------指数位----------------尾数位---- 

float---第31位(占1bit)---第30-23位(占8bit)----第22-0位(占23bit) 

double--第63位(占1bit)---第62-52位(占11bit)---第51-0位(占52bit) 

取值范围主要看指数部分: 

float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。 

double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。 

由于float的指数部分对应的指数范围为-128~128,所以取值范围为: -2^128到2^128,约等于-3.4E38 — +3.4E38 

精度(有效数字)主要看尾数位: float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位

字符型:

char通常用来表示单个的字符 通常同来表示字符常量  用utf-16编码描述一个代码单元

java采用Unicode编码 JAVA采用unicode编码来表示,每个字符占两个字节(一个字节有八位),因此可以用十六进制编码表示:比如:char a=‘\u0056’; 前128字节与ASCII兼容

建议不要在程序中使用char类型 

在定义字符时需要加‘’ 比如 '1'表示字符'1'而不是数值1,char c = ' 1 ';

char a='a';  //任意单个字符,加单引号。

        char a='中';//任意单个中文字,加单引号。

        char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

boolean:

布尔值只可以取true或false,不可以用0或者非0来替代,这点和C、C++等不同

部分说明

JAVA各×××类型有固定的表示范围和字段长度,其不受操作系统影响,以保证java的可移植性

java×××常量的表示方法 十六进制 以0x开头

                                       八进制    以0开头(一般不用容易混淆)

                                      二进制     在java7开始 加上0b可以表示(在java7后数字字面加量加下划线是数字更易读如1-000-000编译中会自动去除下划线)