Java中的数据类型和类型转换

primitive type 基本数据类型(4类8个)

整数类型字节(Byte)数(1个字节8位)范围
byte1个字节-128 ~ 127
short2个字节-216 ~ 216 -1
int4个字节-232 ~ 232 -1
long8个字节-264 ~ 264 -1
浮点数类字节(Byte)个数范围
float4个字节
double4个字节
字符型字节个数范围
char2个字节unicode 编码一般占两个字节
布尔型位数取值
boolean1位true / false

reference type 引用数据类型

接口数组

扩展小知识

字节Byte 一般用大写的 B 表示; 位 bit 一般用小写b表示;

1B = 8b
1024B = 1KB
1024KB = 1M
1024M = 1G
1024G = 1T

进制表示
二进制 ---------->> 0b
八进制 ---------->> 0
十六进制 ------->> 0x

银行等金融业务不得使用 float double, 使用BigDecimal 数学工具类
float 和 double在计算机中都是近似表示的,因此要完全避免使用浮点数进行是否相等的比较;

字符的本质还是数字,是由字符集对应的字符编码表将对应的数字代表的字符编码映射成字符
如 unicode字符集 u0000 ~ uFFFF 之间; ‘\u0061’ 表示字符 ‘a’ 而十六进制的0061 正是十进制的 97
所以 System.out.println((int)‘a’); 打印的结果是97;

转义字符

转义字符意思
\t制表符
\n换行符

类型转换

基础类型的转换

运算中,不同类型的数据先转换成相同的数据类型才能进行运算;

低-------------------------------------------------> 高
byte,short,char < int < long < float < double

自动转换 —— 从低精度到高精度自动发生
强制转换 —— 从高精度到低精度会丢失精度 >> ( 如:浮点数转到整数会只保留整数部分)

强制转换时程序员要自行承担

long l = 56;  // java中默认的整数类型是int 这里发生了自动转换 int->long
int a = (int)l; // 这里把上面的l强转为int类型  long->int
View view = new TextView();  // View 是 TextView的父类 这里会自动转换
引用类型的类型转换

父类 < 子类
接口/抽象类 < 实现类

自动转换 —— 子类/实现类 自动转换为 父类/接口/抽象
强制转换 —— 父类转换为具体的子类 >> 开发者对结果负责
View view = new TextView();  // View 是 TextView的父类 这里会自动转换
View view2 = new View();
TextView textView = (TextView)view; // 开发者自己知道这个view对象是一个TextView对象,强转成TextView没问题
TextView textView2 = (TextView)view2; // 这里view2不是一个TextView对象,开发者任然将其强转成TextView,会导致程序报错。开发者自行负责
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值