西洲的雪

导航

java学习笔记——java基础02.数据类型与类型转换

数据类型与类型转换

一、八大基本数据类型

1. 整数

  • byte

  • short

  • int

  • long

long型数据后面要加L

2. 小数

  • double

  • float

float数据后面要加F

为什么Java中long后面要加L?float后面加F?-CSDN博客

3. 字符

  • char 只能表示一个字符
  • String 字符串,不是关键字,是引用类

4. 布尔值

  • boolean

类型名称 关键字 占用内存 取值范围
字节型 byte 1 字节 -128~127
短整型 short 2 字节 -32768~32767
整型 int 4 字节 -2147483648~2147483647
长整型 long 8 字节 -9223372036854775808L~9223372036854775807L
单精度浮点型 float 4 字节 +/-3.4E+38F(6~7 个有效位)
双精度浮点型 double 8 字节 +/-1.8E+308 (15 个有效位)
字符型 char 2 字节 ISO 单一字符集
布尔型 boolean 1 字节 true 或 false

二、数据类型扩展

1. 进制:

  • 十进制 10
  • 二进制 0b10
  • 八进制 010
  • 十六进制 0x10

2. 浮点数扩展:

float的精度问题

最好完全避免使用浮点数进行比较

需要时使用BigDecimal 数学工具类表示

3. 字符拓展:

所有的字符本质还是数字

char c1 = 'a';
System.out.println((int)c1);	//强制转换

image-20210805000504422

char c1 = '\u0061';
System.out.println(c1);

image-20210805000857987

编码 Unicode 2字节 0-65536

转义字符\u0061....(十六进制)

4. 布尔值扩展:

boolean flag = true;
if(flag==true){
    System.out.println("ok");
}
if(flag){
    System.out.println("ok");
}

image-20210805000839834

三、类型转换

容量低->高:

byte,short,char->int->long->float->double

1. 强制转换(高->低)

(类型)变量名,如:

int i = 10;
byte a = (byte)i;	//强制转化int到byte

需要注意的是内存溢出的问题

int i = 128;
byte b = (byte)i;	//byte只能表示-128~127范围内的数,此处内存溢出

2. 自动转换(低->高)

char c1 = 'a';
int a1 = 1;
System.out.println(c1+a1);	//'a'自动转换为int(编码97)

image-20210805091121413

注意:

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量的时候是强制转换

  4. 转换的时候可能存在的内存溢出,或者精度问题

  5. 操作比较大的数的时候,注意溢出问题

  6. JDK7新特性,数字之间可以用下划线分割,下划线不会被输出

    int money = 10_0000_0000;
    System.out.println(money);
    

    image-20210805091804677

posted on 2021-08-05 09:21  西洲的雪  阅读(39)  评论(0编辑  收藏  举报