第二天 —— 数据类型

取值范围
类型描述关键字字节数默认值
字节数byte10
短整型short30
整型int40
长整型long80
单精度浮点型float40.0f
双精度浮点型double80.0d
字符型char2‘\u0000’
布尔型boolean1false
【注】
  • short和char所表示的种类数是一样的,只不过char可以表示更大的正整数,因为char没有负。short 类型取值范围是[-32768~32767],而 char 类型取值范围是 [0~65535],它们可表示的种类数量都是 65536 种,只不过 char 可以取到最大值为 65535。
char型
定义

表示16位、在Unicode编码表中的字符。使用单引号来表示字符常量

【注】
  • 因为一个中文字节占用2个字节,char类型也正好是两个字节,所以在java中使用char类型来存储中文字符,且每次就只能存储一个中文字符而不是代表char类型就是专门服务于中文
  • 字符串不能使用使用单引号
char k = "a";
  • “a” 是字符串类型,而k是char类型,不能赋值
  • 那么用什么数据类型来存储中文的字符串呢? —— String类型
转义字符

转义字符: \

  • 反斜杠在Java中具有转义功能,反斜杠可以将跟在其后面的符号等转义成不具备特殊含义的普通
  • 例如:\\
    • 第一个反斜杠具有转义功能,将后面的反斜杠转义成普通的反斜杠字符,所以在java中,两个反斜杠表示一个普通的反斜杠
整数型
种类
  1. byte
  2. int
  3. short
  4. long
【注】
  • Java中“整数型字面值”均默认当做int类型来处理
  • 如果需要让“整数型字面值”被当做 long类型 来处理的话,需要在整数型字面值后面加 l或L ,建议使用大写
  • java中整数型字面值有3种表示方式
    • 十进制 —— 一种缺省默认的方式
    • 八进制 —— 在编写八进制整数型字面值的时候需要以0开头
    • 十六进制 —— 在编写十六进制整数类型字面值的时候需要以0x开头
自动转换机制

小容量的数据转换成大容量的时候,可以自动转换

long x = 123345

x 是long类型,123345是int类型,是两种不同的类型,讲道理应该会出现“不兼容的类型”报错,但是因为 “自动转换机制”,所以将int类型的123345转换成long类型的了

强制类型转换

大容量数据 转换成 小容量数据的时候,会报错“不兼容的类型”,所以需要加上“强制类型转换符”,但是运行阶段可能会出现精度损失,所以需要谨慎使用

short a = (short)('a' + 1);
System.out.println();     //98

//        损失精度严重
int e = (int)(123345567899L);
System.out.println(e);      //-1208483685
【注】
  • 在java中,当一个整数字面值没有超出byte取值类型范围的时候,该字面值能直接赋值给byte类型的变量
byte a = 50;  //可以
byte b = 128;  //不可以
浮点型
种类
关键字精度类型字节数
float单精度4
double双精度8
【拓】

double 在做财务软件的时候,精度就太低,所以SUN准备了一种精度更高的类型 —— java.math.BigDecimal —— 不过这是一种引用数据类型,而不是基本数据类型

【注】
  • Java中所有的浮点型字面值,默认都是当做double的
  • 如果需要将字面值作为float类型处理,则需要在字面值后面加 F/f,或者前面加(float),即强制类型转换
  • double和float在计算机内部二进制存储的时候都是近似值
布尔型
  • Java中,布尔类型只有两个值:true、false
  • 在底层存储的时候,布尔型占用一个字节,在实际存储的时候,false底层为0,true底层是1
  • 在实际开发中经常使用,经常用于逻辑运算和条件控制语句中
混合运算
  • byte、short、char做混合运算的时候,各自先转换成int类型再做运算
  • 多种数据在做混合运算的时候,最终结果的数据类型是最大容量对应的数据类型
    • byte、short、char除外,原因为上一条
类型转换
  • 八种基本数据类型中,除了 Boolean 类型不能转换,剩下的七种类型之间都可以进行转换
  • 如果整数型字面量没有超出 byte、short、char 的取值范围,可以直接将其赋值给此三种类型的变量
  • 小容量向大容量转换称为:自动类型转换
  • 大容量向小容量转换称为:强制类型转换 —— 编写时必须添加”强制类型转换符“,但是可能出现精度损失,谨慎使用
  • byte、short、char类型混合运算的时候,先各自转换为 int 类型再做运算
  • 多种数据类型混合运算,各自先转换成容量最大的那一种进行运算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值