Java基本数据类型

基本数据类型

java是一种强类型语言,意味着必须为每一个变量声明一种类型,在java中共有8种基本类型,其中有4种整形(byte, short, int, long),两种浮点型(float(单精度浮点型),double(双精度浮点型)),一种表示单个字符的char型,一种表示真假的boolean型。
基本数据类型(来自蓝桥杯《硬核程序基础》课程)

整型

  • 十进制整数:常量
    eg:12,-314,0
  • 八进制整数:要求以0开头
    eg:012 容易混淆,最好不要使用
  • 十六进制整数:要求以0x0X开头
    eg:0x12 = 18( 1 × 1 6 1 + 2 × 1 6 0 1 \times 16^1 + 2 \times 16^0 1×161+2×160)
  • 整形常量默认为int型,long型常量加‘l’或‘L’表示
  • java7开始,加前缀0b就可以表示二进制数
    eg:0b1001 = 9 ( 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 9 1 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 +1 \times 2^0 = 9 1×23+0×22+0×21+1×20=9)
  • java7开始,数字可加下划线以方便阅读
    eg: 1_000_000 一百万
    注: Java中,所有的数字类型占据的字节数与平台无关!(是Java能够跨平台的原因之一)
    1字节 = 8bit
    整数类型占据字节数(来自蓝桥杯《硬核程序基础》课程)

关于byte的范围

eg:122在计算机中的表示:

数值:01111010
表示:正负26252423222120
  • 正数的范围:
    2 0 + 2 1 + . . . + 2 6 = 2 7 − 1 = 128 − 1 = 127 2^0 + 2^1 + ... + 2^6 = 2^7 -1 = 128 - 1 = 127 20+21+...+26=271=1281=127

  • 负数的范围:
    由于补码的原因,可以把符号和数值统一起来
    补码 = 反码(基于原码) + 1
    eg: - 128
    先求原码(绝对值)

    10000000

    再求反码

    01111111

    补码

    10000000

    关于-129:
    补码为:

    10000001

    转换为反码:

    01111110

    表示的值为127

关于short的范围

2 byte - 16位
-215 ~ 215 -1

关于int的范围

4 byte - 32位
-231 ~ 231 - 1

关于long型的范围

8 byte - 64位
-263 ~ 263 - 1

编码验证整数范围

存在错误的代码

public class TestPrimitiveType {
    public static void main(String[] args) {
       byte b = 129;//129无法赋给最大值为128的byte
       int i = 129;
       short s = 40000;//2^15 - 1 = 32767, 超出范围
       long l = 789;
    }
}

正常运行的代码

public class TestPrimitiveType {
    public static void main(String[] args) {
       byte b = 128;
       int i = 129;
       short s = 32767;
       long l = 789;
    }
 }

浮点型

  • 十进制计数形式
    eg:3.14 或者 314.0
  • 科学计数法的形式
    eg:3.14e2, 3.14E2, 100E-2
  • Java浮点值默认为double型,如需声明一个常量为float型,则需在数字后面fF
    eg: double d = 12345.6
    float f = 12.3f
    注意:在二进制中,无法准确表示某些数值
    如同在十进制中无法准确表示1/3是一致的
    所以在禁止舍入误差的金融运算中,它不得参与
public class TestPrimitiveType {
    public static void main(String[] args) {
       System.out.println(2.0 - 1.1)//结果为0.89999999...而非0.9
    }
 }

浮点类型占据字节数(来自蓝桥杯《硬核程序基础》课程)

字符型

表示方式

  • 单引号括起来的单个字符
  • 直接用‘\u四位16进制数’表示,四位16进制数占16位二进制空间,所以通常一个字符占用两个字节
  • 无符号的2byte可以表示215个字符,但是现在全世界的字符已经远超这个数值,所以在java中,一个字符可能占2个或者4个字节
  • 强烈建议不要在程序中使用char类型,除非确实需要对utf-16代码单元(2字节一个单元)进行操作,否则使用字符串进行处理

转义字符

如需要输出双引号时就需使用转义字符
错误示范:

 System.out.pritnln("Hell"o")//存在报错,O是非法的

正确方法:

System.out.pritnln("Hell\"o")

换行操作:

System.out.println("Hello")//使用println换行
System.out.print("Hello\n")//使用转义字符'\n'换行

转义字符(来自蓝桥杯《硬核程序基础》课程)

Bool类型

真 & 假
true & false

  • Boolean类型适用于逻辑运算
  • 只允许取值true或者false,不可以0或非0的整数替代true和false,与c语言相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值