java数据类型单位_Java数据类型

60cff52476cadd84e8f736f424ceafa1.png

(一)基本数据类型

1.整数型

首位为符号位,后面是数字位,符号位为0表示正数,后面数字位直接二进制转化为10进制;符号位1为负,把后面所有的位数取反(即0,1互换),再转化为10进制后加1,就得到该负数的绝对值。

整型

字节

最大存储数据

存放的数据范围

Byte

1(8bit)

28-1

-27~27-1

Short

2(16bit)

216-1

-215~215-1

Int

4(32bit)

232-1

-231~231-1

long

8(64bit)

264-1

-263~263-1

整型中默认类型是int型,有以下表达方式:

十进制:   语法→0~9之间的数字,如int x=123;

8进制 : 语法→加前缀0,如int x=0123;

16进制:语法→加前缀0x或0X;如int x=0x123;

注:长整型数字需加后缀L或者l,如long x=9876543210L;

2.浮点型

首位为符号位,中间是指数位e,表示2的阶乘,后面是尾数位m(0<=m<1),指数位的首位是指数符号位,

数字表示:(1+m)*2e

浮点型

字节

数据范围

备注

Float-单精度

4(32bit)

3.4e-45 ~ 1.4e38

(-2128~2128)

直接赋值需在最后加f或者F

Double-双精度

8(64bit)

4.9e-324 ~ 1.8e308

(-21024~21024)

直接赋值可以在最后加d或者D,也可不加

符号位

指数位e

尾数位m(0

0/1

符号位(首位)

剩余位

2-1

2-2

2-3

……

Float

1位

7位

23

double

1位

10位

52

浮点型默认类型是double型。浮点型有2种写法:

小数型:如1.2

指数型:语法→数字A e(或E) 数字B,表示数字A乘以10的数字B次方,如2e3→2*103=2000;  -3e-2→-3*10-2=-0.03

注:强制表示单精度浮点型,在数字后面加后缀f或者F,强制表示双精度浮点型,在数字后加后缀d或者D。

3.字符型

char →单引号引用的单个Unicode码字符或者16bit非负整数;占两个字节,表示一个字符,写法有两种:

数字式:0~216-1之间的整数

字母式:单引号引用的1个字符,可以是任何字符,包括标点符号、数字、大小写英文字母、日文、汉字等,是Unicode编号

字母式写法中单引号引用的内容中,还有以下写法:

字符:如'a'

8进制: 语法→'\ddd',如'\123'

16进制:语法:‘\uhhhh', 如'\u9646'

部分特殊字符,'\字母',如'\t'表示缩进符,'\n' 表示换行符, '\r'表示回车符

4.布尔型(逻辑型)

boolean,只有两个值,true/false,或者逻辑表达式,不能用0,1表示,也不是“true”字符串

数据值域补充说明:

1.一个bit是计算机存储的最小数据单位,即1位,只可能是0或者1;

2.一个byte由8个bit组成,即8位,可以表示256个整数值,又由于byte在java中有符号之分(正负数),所以范围是-128~127;

3.一个char在java中有两个byte组成,用来表示一个字符,即unicode编码,是无符号类型;

4.int和float在java中由4个byte组成;

5.每个long或者double型变量占用8个byte的存储空间;

6.1T=1024G, 1G=1024M, 1M=1024K, 1K=1024B;

(二)引用数据类型

所有用class,interface,abstract 定义的类;

String也是java定义的一个类,其数据存储方式与基本数据类型一样,但是String不是基本数据类型;基本数据类型也不是类;

(三)数据类型的转换

源类型与目标类型要兼容,比如数字和字符串类型之间就不能转换。数据转换分为自动转换和强制转换:

自动转换:从小范围类型的字面量转为大范围类型,如byte,short→int→long,float→double;

强制转换:语法→(类型) 表达式,可以进行大范围类型的字面量,转为小范围类型。整数的强制转换时通过截取保留最后长度的方式进行,所以容易出现正数强制转换后变成负数的可能。(浮点型强制转整型,实际是先转为int型)

表达式类型提升规则:byte→short→int→long→float→double

例:

int x=10;

short y=(short)x;   // 强制转换

System.out.println(y)

short a=10;

int b=a;            //自动转换

System.out.println(b);

int c=400;

byte d=(byte)c;    //强制转换后正数转换为了负数,此处输出结果d=-112

System.out.println(d);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值