2. 快速理解Java的数据类型与变量

【目录】

目录

【本节重点】
  1. 字面常量
  2. 数据类型
  3. 变量

1. 字面常量

1.1 概念

100、3.14、‘A’、true/false都是字面常量

1.2 分类
  1. 字符串常量:如“hello”
  2. 整型常量:1,22
  3. 浮点数常量:1.24
  4. 布尔常量:ture/false
  5. 字符常量:‘a’
  6. 空常量:null

2. 数据类型

【注】:

  1. java中没有无符号数,所有数均为有符号数
  2. 与C语言不同,无论是32位还是64位系统,数据类型所占字节不变(这源于Jdk中包含了Jvm)
  3. 整型默认是int,浮点型默认是double
  4. String是引用类型
  5. Java用Unicode表示字符,C语言则用ASCII
2.1 分类

Java的数据类型分为基本数据类型和引用数据类型,基本数据类型有8种,不包括String

2.2 基本数据类型
1.字节类型

【演示】占1字节

byte i = -128; 
System.out.println(Byte.MAX_VALUE);//byte所能存的最大值 127
System.out.println(Byte.MIN_VALUE);//打印byte所能存的最小值  -128

【包装类】Byte

2. 短整型

【演示】占2字节

short s = 254;  
System.out.println(Short.MIN_VALUE);  
System.out.println(Short.MAX_VALUE);

【包装类】Short

3. 整型

【演示】占4字节

int a = 2;  
System.out.println(Integer.MAX_VALUE); //int所能存的最大值  2^31-1
System.out.println(Integer.MIN_VALUE); //int所能存的最小值  -2^31

【包装类】Integer

4. 长整型

【演示】占8字节

long L = 1234;  
System.out.println(Long.MAX_VALUE);  
System.out.println(Long.MIN_VALUE);

【包装类】Long

5. 单精度浮点型

【演示】占4字节

float f = 1.2f;  
System.out.println(Float.MIN_VALUE);  
System.out.println(Float.MAX_VALUE);

【包装类】Float

6. 双精度浮点型

【演示】占8字节

double d = 1.23d;  
System.out.println(Double.MIN_VALUE);  
System.out.println(Double.MAX_VALUE);

【包装类】Double

7. 字符类型

【演示】占2字节

char c = '1';  
System.out.println(Character.MIN_VALUE);  
System.out.println(Character.MAX_VALUE);

【包装类】Character

8.布尔类型

【演示】没有具体表明占几个字节

boolean b = true;  
System.out.println(Boolean.MIN_VALUE); //报错

【包装类】Boolean

【注】:布尔类型只有true和false,没有明确的大小,不可用1代替true

2.3 引用数据类型
字符串类型
  1. int——>String
int i = 17;  
String str1 = i+" "; 
  1. String——>int
String s = "12";  
int h = Integer.parseInt(s);

3. 变量

3.1 基本数据变量

上面已经演示过基本数据变量的用法

3.2 引用数据变量

String类型

4. 类型转换

【发生条件】不同类型的变量之间相互赋值时

4.1 自动类型转换(隐式)

【演示】

int a = 10;  
long L = a; //通过编译  
byte b = a; //编译报错

【适用于】数据类型由小转大 / 数据没有超过该数据类型的取值范围

4.2 强制类型转换(显式)

【演示】

int a = 10;  
long L = a; //编译通过  
byte b = (byte) L; //编译通过

【适用于】数据类型由大转小/数据超过该数据类型的取值范围

【注】:

  1. 强转会导致精度丢失
  2. 强转不一定会成功,不相干的类型不能强转

5. 类型提升

【发生条件】不同类型的变量之间相互运算时

5.1 4字节以下

【原理】计算机中CPU每次取指令都是以4字节为单位从内存中读写数据,所以为了方便硬件实现,4个字节以下的类型在进行运算时会提升为int类型
【演示】byte/char/short——>int

byte b1 = 10;  
byte b2 = 23;  
byte sum = b1+b2;// 编译报错  
//改
byte sum1 = (byte)(b1+b2);
5.2 4字节以上

【演示】范围小的会提升为范围大的

int i = 17;  
long e = 23;  
int sum = i+e; //编译错误  
long inter = i+e; //i提升为long类型,i+e结果也是long类型

总结

  1. 认识字面常量
  2. 熟练8种基本数据类型所占字节,对应的包装类,取值范围
  3. 浮点数变量的书写规则:为了方便记忆,数据都加后缀(f/d)
  4. 不同类型之间的变量相互赋值时——>类型转换
  5. 不同类型之间的变量相互运算时——>类型提升
  6. 类型转换:数据类型范围由大转小,需强转
  7. 类型提升:数据类型范围低于4字节,运算时无论什么类型都会被当成int;数据类型范围高于4字节,运算时无论什么类型都会被当成范围大的类型
  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值