Java基础 3.13

1.字符型

  • char 存储2个字节 可以存放汉字 但存放数字时会输出对应的字符
  • 字符常量用单引号 ' ' 
  • 允许使用转义字符 如 \n \t
  • char本质是一个整数 输出时对应unicode对应的字符
  • 可以直接给char 赋一个整数 输出时会按照unicode字符输出
  • char类型可以进行运算 相当于一个整数

字符本质

'a' -> 码值 -> 二进制 -> 存储

  • ASCII表 每个字符一个字节 可表示256个字符 但只用了128个位置 起源美国 二十世纪六十年代 第一位规定为0
  • unicode表 固定大小的编码 字母和汉字都用两个字节表示 将世界上所有符号纳入 没有乱码问题 但会浪费空间 最多可编码2^16个字符 兼容ASCII码
  • utf-8码 大小可变的编码表 字母用一个字节 汉字用三个字节 对unicode的改进 互联网最广实现方式 是变长的编码方式 1-6个字节调整
  • gbk码 字母用一个字节 汉字用两个字节
  • big5码 表示繁体香港方面

tip:低精度 32位 双精度 64位

布尔类型

  • boolean ture or false 无null 不可用0或非0代替true or false 与c语言不同
  • boolean只占一个字节

2.基本数据类型转换

当Java程序在进行赋值或者运算的时候,精度小的类型会自动转换为精度大的数据类型,称自动类型转换

  • 数据类型按进度(容量)大小排序
  • char -> int -> long -> float -> double
  • byte -> short -> int -> long -> float -> double

自动类型转换注意和细节

  • 多种数据类型混合运算的时候 系统首先自动将所有数据转换成容量最大的那种数据类型 然后再进行计算
  • 当我们把精度大的数据类型赋值给精度小的数据类型时 会报错 反之就会进行自动类型转换
  • byte short 和 char之间不会相互自动转换
  • byte short char 之间可以计算 计算时首先转换为int类型
  • boolean 不参与转换
  • 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

强制类型转换

自动转换的逆过程 将容量大的数据类型转换为容量小的数据类型 使用时要加上强制转换符()但可能造成精度降低或溢出 格外注意

int i = (int)1.9;

System.out.println(i); 精度损失
int j = 100;

byte b1 = (byte)j;

System.out.println(b1); 数据溢出

强制转换细节说明

  • 当进行数据的大小从大到小 就需要使用到强制转换
  • 强转符号只针对最近的操作数有效 往往使用小括号提升优先级

int x = (int)(10 * 3.5 + 6 * 1.5)

char类型可以保存int的常量值 但不能保存int的变量值 需要强转

int m = 100;
char c3 = (char)m;
System.out.println(c3);

byte short char类型在进行运算时 当作int类型处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值