Java:基本数据类型值的范围

(图片来源:《Java核心技术卷1》)

Java为强类型语言,即必须为每一个变量声明一种类型

8种基本类型

  • 4种整型:byte, short, int, long(1,2,4,8字节)(1字节=8bit)
    在这里插入图片描述
    – eg:
    byte 取值范围的详细推导:
    计算机规定了0000 0000 代表0;
    1000 0000代表的-0没有意义,必须找个 -127~127 之外的数和它对应,则人为规定-0就是-128,而且这么做完美适合计算机做减法运算。

所有的整型都是有符号的
长整型数值有一个后缀L 或1 (如4000000000L)
十六进制数值有一个前缀0x 或0X (如0xCAFEL)
二进制数值有一个前缀0b 或0B
可以为数字字面量加下划线, 如用1_000_000 表示一百万

  • 2种浮点型:float, double(4,8)
    在这里插入图片描述
    float 单精度;double 双精度
    很多情况下 float 类型的精度很难满足需求;绝大部分时候都采用double
    float 类型的数值有一个后缀F 或f,没有就默认为double 类型;也可以在浮点数值后面添加后缀D 或d
    ???
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 1 种用于表示Unicode 编码的字符单元的字符类型:char
    在这里插入图片描述
    'A’为字符字面量,"A"为包含字符A的字符串

Unicode 编码机制:打破了传统字符编码机制的限制

  • 1 种用于表示真值的类型:boolean
    整型值和布尔值之间不能进行相互转换。

字符总结

  1. ASCII 美国标准信息交换码
    标准的单字节字符编码方案,规定了字符如何在计算机中用二进制数字进行表示,用于基于文本的数据。
    现状只占用了一个字节的后面7位,最前面的一位统一规定为0
    GBK 汉字内码扩展规范
    双字节编码方案;对应汉字的编号方式,不能国际通用

  2. Unicode 通用字符集
    多字节:码点值最初用两个字节的十六进制数字表示,后来不断增补扩大为用三个字节或以上的十六进制数字表示
    缺点:不能区别 Unicode 字符 和 ASCII 字符的编码(计算机不知道三个字节应该表示一个字符,还是分别表示三个字符);Unicode 统一硬性规定,每个字符都用多个字节编码,那么英文字母编码前都必然有0位,这对于存储和传输都是极大的浪费
    UTF编码应运而生,旨在解决过长编码问题,使通讯更国际化

  3. UTF编码
    针对 Unicode 的可变长度字符编码
    编码规则:
    1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。
    2)对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。
    3)解读 UTF-8 编码非常简单:如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值