学习记录(二)

学习记录(二)

Java的八种基本类型

byte:每个byte类型占8字节,取值范围是-128~127
short:每个short类型占16字节,取值范围是-2^15~ (2^15-1)
int:每个int类型占32字节,取值范围是-2^31~ (2^31-1)
long:每个long类型占64字节,取值范围是-2^63~ (2^63-1)

以上四种为整数类型

float:每个float类型占32字节,取值范围是-3.4*10^(-38)~3.4 *10^(38),有效位是7位
double:每个double类型占64字节,取值范围-1.7 *10^(-308)~1.7 *10^(308),有效位是15~16位

以上类型为数值类型,Java内均为有符号类型,都是有正有负

char:char类型根据编码决定,最少是8位,可以为16、32,偶尔会出现24位
char类型所占位数都是8的倍数,即2的指数级关系
boolean:boolean类型占32字节

  1. 所有其他类型,都是由八种基本类型组装起来的
  2. 可以用byte类型表示其他基本类型,比如:int类型可以用4个byte类型组合表示
  3. long、double类型有个线程不安全问题,CPU和内存交互时一次传输36~41位(和内存条相关),所以传输long和double类型时,需要分两次传输,故在传输时两次之间有被切换线程的危险造成并发不安全
  4. 当传输的数据过短时,运行高速缓存行时容易被其他线程锁定不能读取,和其他存在同一块内存的数据互相锁定,影响并行计算的能力
  5. 如果不想被互相锁定,就需要数据足够大可以独占一块内存,因此数据要达到适中的大小
  6. 故boolean类型虽然只用传递True或False,但为了避免互相锁定的问题,故填充了字符,也可以因此加快执行速度
  7. 高速缓存行也有基本单元,在读取时会整个锁定
  8. 八种基本类型都不是安全的,比如计算精度(缠超过精度的话+或*都有可能得到负数),所以计算调用时需要注意

补码

  1. 用1开头表示为负数 :如11000111
    用补码表示每个数,负数的补码:除了符号位外,其他位取反,然后再+1
    补码还原到原码:(1)-1,取反 (2)取反,然后+1
  2. 用0开头表示为正数 如:00010101
    正数的补码是他本身
  3. 处理器只有加法运算,加减负数的话只能先把它变成证书,故用到反码
  4. 为了不浪费,符号位不止表示符号,还可以表示数据

数据结构

数据结构基本内容: 数据结构基本内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值