从零学Java-02 数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量都必须限定以后才能使用

弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)

    1. byte 占1字节范围: -128 - 127
    2. short 占2个字节范围: -32768 - 32767
    3. int 占4个字节范围: …
    4. long 占8个字节范围: …
    5. float 占4个字节
    6. double 占8个字节
    7. char 占2个字节
    8. boolean 占1个位 只有 true和false
  • 引用类型(reference type)

    1. 接口
    2. 数组

数据类型扩展

  • 整数拓展
    进制 二进制(0b) 八进制(0) 十六进制(0x)
  • 浮点数拓展
    银行业务表示:
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); // false
float d1 = 32320432492f;
float d2 = d1+1;
System.out.println(d1==d2); // true

float 有限 离散 舍入误差 大约 接近但不等于
最好完全使用避免使用浮点数进行比较(数学工具类BigDecimal)

  • 字符拓展
    字符的本质还是数字 表示成 Unicode

类型转换

  • 由于Java是强类型的语言,所以要进行有些运算的时候,需要用到类型转换
    由低到高: byte, short, char -> int -> long -> float -> double
  • 运算中,不同类型的数据优先转化为同一类型,再进行运算
  • 强制类型转换(高->低)
int i = 100;
byte b = (byte)i;
  • 自动类型转换(低->高)
int i = 100;
double b = i;
注意点
  • 不能对布尔值进行转换
  • 不能把对象类型转换为不相干的类型
  • 在把高容量转换到低容量的时候,强制转换
  • 转换的时候可能存在内存溢出,或精度问题
// 操作比较大的数的时候注意溢出问题(解决:先把一个数转换为long)
// jdk7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
long total = money*((long)years);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值