Java学习05-基本数据类型

 8种基本数据类型

整数类型:byte  short int long

浮点类型:float  double

字符型:char

布尔类型:boolean

8种基本数据类型在内存中占用的空间大小

byte  1字节 – 8位   -2^7-2^7-1  范围:-128-127

short 2字节 – 16位  -2^15-2^15-1   范围:-2147483648 – 2147483647

int   4字节 – 32位  -2^31-2^31-1

long  8字节 – 64位  -2^63-2^63-1

 

补充说明:在java中,如果直接给出一个整数,那这个整数默认是int类型

int直接量可以是十进制,八进制,十六进

二进制,十进制,八进制,十六进制

八进制:0-7  写法:057

十六进制:0-9 a b c d e f  写法:0xa9

十六进制:对二进制数进行缩写

十六进制的本质就是二进制

进制间的转换:

二进制转十进制:

Eg:1000 0101

1*2^0+1*2^2+1*2^7

方法:每一位上的值*权重之和

十进制转二进制:

方法:除2取余,余数倒置  14

二进制转16进制:4位表示一位16进制

0101  1010 - 0x5a  

16进制转二进制:

0x78 - 0111  1000

long:长整型

如果要定义一个long类型的变量并赋值,要在直接量后面加L/l

如:long l = 23L;

       给变量赋值时需要注意数据溢出。

 

浮点类型:

    Java中如果给出一个小数,默认是double类型

    float:单精度浮点数

       定义: float f = 3.2F/f;

    double:双精度浮点数

 

··   Float和double类型精度问题:

Double和Float在计算机中都是以科学计数法保存数据的。

    eg:3.134457777   是以3.13445E1  即3.13445*10^1的形式保存的

float:4个字节,32位, 在这 32 bit 中, 

- 1个bit表示符号位,  - 8个bit表示指数位, - 剩下的23个bit是有效数字位。

-  2的23次方是8388608,即7位十进制有效数字。 按照这个表示方法转化成10进制之后,它能表示的最高精度是7位有效数字。 

float :1位符号位, 8位指数位,23位尾数位

double:1位符号位,11位指数位,52位尾数位 

float尾数位23位,2^23=8.3E6,7位,不同的编译器规定不同,有些是7位,有些8位 

double尾数52位,2^52=4.5E15,16位,所以double的有效位数是16位 ,编译器不同,有些是15位,有些是16位

赋值举例精度保存:

double d = 3.123456678987657899;

                  System.out.println(f);

double类型数据进行运算会出现精确问题:

    double d1 = 3.0;

    double d2 = 2.9;

    double d3 = d1-d2;

    d3的结果是不精确的。

计算机底层是二进制,二进制中无法精确的表示1/10,就好比十进制中无法精确的表示1/3

二进制中其实没办法保证所有的计算结果都是精确的

因为double类型的数据在进行运算的时候可能会出现不精确的结果,所有java中通常double类型不用于做精确计算。 -

在java中精确表示,需要使用类BigDecimal

字符类型:char

定义:char c = ‘a’;

Char类型字符保存到内存中的是Unicode编码

Unicode编码:国际编码   10万+

保存的是16位无符号整数

Char字符集,每一个字符都和Uncode编码中的一个数字对应

Char字符集  0-65535

Char字符本质是一个16位的无符号整数

了解几个字符对应的Unicode编码:

    a:97  b:98

    A:65  B:66

    中:\u4e2d

    中文:\u4e00-\u9af5

每一个字符都对应Unicode编码的一个数字

给char类型的变量赋直接量:

    1.‘a’

    2. 整数值

    3. Unicode编码  \u16进制

 

boolean:true,false

 boolean flag = 5<3;

 

猜你喜欢

转载自blog.csdn.net/zhuangxingzan/article/details/84962606
今日推荐