手机版
你好,游客 登录 注册
背景:
阅读新闻

Java数据类型

[日期:2016-03-23] 来源:Linux社区  作者:Carolinee [字体: ]

 

(一)基本数据类型

1.整数型

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

整型

字节

最大存储数据

存放的数据范围

Byte

18bit

28-1

-27~27-1

Short

216bit

216-1

-215~215-1

Int

432bit

232-1

-231~231-1

long

864bit

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-单精度

432bit

3.4e-45 ~ 1.4e38

(-2128~2128

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

Double-双精度

864bit

4.9e-324 ~ 1.8e308

(-21024 ~21024 

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

 

符号位

指数位e

尾数位m 0<m<=1

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);

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-03/129407.htm

linux
相关资讯       Java数据类型 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款