Java基础数据类型详解

  • java关键字 - 基础数据类型

类型名含义范围范围详情数值位数bit(位)字节

boolean

布尔true -  falsetrue -  false /81

char

字符  0- 2^16-1 0~65535(放整数)5162

byte

字节  -2^8 - 2^7-1 -128~127381

short

短整数 -2^15- 2^15-1 -32768~327675162

int

整数-2^31- 2^31-1 -2,147,483,648‬~2,147,483,64710324

long

长整数-2^63- 2^63-1

 -9,223,372,036,854,775,808

‬‬~9,223,372,036,854,775,807

19648

float

单精度浮点数-2^128 ~ 2^128-3.40E+38 ~ 3.40E+3839324

double

双精度浮点数-2^1024~2^1024

 -1.79E+308 ~ 1.79E+308

309648

 

 

 

 

 

 

 

 

 

 

  • 简说:字节,字符,编码集

一般 1字符 = x字节  (1字符占用几个字节由编码集决定) 1字节=8bit

ASCII码:
  一个英文字母占一个字节,一个中文汉字占两个字节一个ASCII码就是一个字节
UTF-8编码
  一个英文字符等于一个字节,一个中文等于三个字节
Unicode编码:
  一个英文等于两个字节,一个中文等于两个字节
  符号英文标点占一个字节中文标点占两个字节

------------------------------------------------------------------------------------------

  • 布尔类型(boolean)

 就是true和false 占用一个字节,比较简单

------------------------------------------------------------------------------------------

  • 字符类型(char)

  • 赋值

char a='a'; (任意单个字符,加单引号)

char a='中'; (任意单个中文字,加单引号)

char a=123;  (整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符)

tips:只能放单个字符(比较特殊的字符,可以存放+整数)

  • char运算

char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值

在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待(度娘查询ASCII对照表

------------------------------------------------------------------------------------------

  • 整数类型(byte,short,int,long)

byte ~long - 数字类型赋值范围的规律 2^x  下个类型的x是2^x+1

整数类型都是首位(±)标记,其余位数都是用来存值

------------------------------------------------------------------------------------------

  • 浮点数类型float & double

① 范围是由指数位来确定的;

② 精度是由尾数位确定的;

存储结构

 float:    1bit(符号位)+ 8bits(指数位)    + 23bits(尾数位)
 double:1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)

浮点数(IEEE 754 标准)

float

范围 -2^128 ~ -2^ -127 ∪ 2^-127 ~ 2^ 128 (指数位是8bit-2^8- 范围是-127~128)

-3.4028235E38 ≈ -3.4E+38(39size) ~ -1.4E-45 (46size) ∪ 1.4E-45 (46size)~ 3.4028235E38 ≈ 3.4E+38 (39size) 

精度 2^23 = 8,388,608 - 7位 所以精度只能保证到6-7位

double

范围 -2^1024 ~ -2^ -1023 ∪ 2^-1023 ~ 2^ 1024 (指数位是11bit - 2^11- 范围是-1023~1024)

略………………

精度 2^52 = 4,503,599,627,370,496‬ - 16位 所以精度只能保证到15-16位

tips :IEEE 754 用科学记数法以底数为 2 的小数来表示浮点数。

精度损失:
当下面情况出现是则无法精确表示:
1.幂数不够表示了:这种情况往往出现在数字太大了,超过幂数所能承受的范围,那么这个数字就无法表示了。如幂数最大只能是10,但是这个数字用科学计数法表示时,幂数一定会超过10,就没办法了。
2.尾数不够表示了:这种情况往往出现在数字精度太长了,如1.3434343233332这样的数字,虽然很小,还不超过2,这种情况下幂数完全满足要求,但是尾数已经不能表示出来了这么长的精度。

3.运算精度损失:二进制不能完美的表达十进制,就像十进制中10/3,计算的时候会有进制之间的转换,1 - 0.99 本来结果是0.01,但是由于精度损失结果会是0.010000000000000009

------------------------------------------------------------------------------------------

  • 基础类型之间的转换

小转大:

随便转ex:byte->short->int->long

tips:float->double的时候会有精度损失

大转小:

可能会有精度损失 long->int->short->byte 

浮点数转整数:

会被直接抹除小数部分。保留整数部分(舍去,不是四舍五入)

整数转浮点数:

会在整数后追加.0  --- 333 -> 333.0

  • -.-

新手第一次写博客,有错的地方各位大佬包容下,提提意见和建议,我会好好反思并修复bug

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值