Java 数据类型及类型转换

一、基本数据类型

一、基本数据类型

java的数据类型可以分为两大类:基本类型和复合类型。

基本类型:整型(int,short,long,byte)、浮点型(float,double)、布尔型(boolean)、和字符型(char)

复合类型:数组,类,接口

1.整型

各种整型数据所占空间及数的范围
数据类型所占内存空间/位数的范围
byte8-128~127
short16-32768~32767
int32-2^31~2^31-1
long64-2^63~2^63-1

整型以补码的形式存放在内存中。

2.浮点型

浮点类型所占的位数及数值范围
数据类型所占内存空间/位有效数字数值范围
float327个十进制位约+-3.4x10^38
double6415~16个十进制位约+-1.8x10^308

 

3.字符型

     用char表示。2字节(16位)来存放一个字符,并且存放的不是ASCII码是Unicode码。

4.布尔型

      用boolean表示。只有两个取值true和false。

二、常量

常量包含整型常量,浮点型常量,字符型常量,字符串常量以及布尔常量,符号常量(用final来定义 eg final int MALE = 1;)

1.整型常量

    十进制(正数,负数,0),八进制(以0开头)和十六进制(以0x或0x开头)

2.浮点型常量

    浮点型常量有两种表示形式。

        普通的十进制数形式。由数字和小数组成。如0.123;123.0;0.0;.123;123.都是合法的

       指数形式。1.5E5表示1.5x10^5;2.9E-7表示2.9x10^-7。注意字母E(也可以是小写e)之前必须有数字,且E后面的指数必须是整数。如E3,2E1.7均不合法。

        java规定浮点数默认双精度,如果需要指定单精度,需要在末尾加上F或f.比如12.5F,2E5f。

三、变量

       java用来表示变量名、常量名、方法名、类名的有效字符序列都成为用户自定义标识符,简称标识符。eg:int a = 1;a就是一个标识符。

       变量包含整型变量,浮点型变量,字符变量,布尔型变量。

1.浮点型变量

      浮点数的采用二进制方式存储的,二进制浮点数往往不能精确表示一个十进制小数,即使这个小数是一个有限小数,比如1.3,它在内存中也是一个无限小数,即可能是1.299999,也可能是1.300001。所以尽量避免直接比较两个浮点数是否精确相等。通常的方法是比较两个两个浮点数的差值是否足够接近0。

2.字符变量

      将一个字符存放到字符变量中,实际上并不是把该字符本身存放到内存单元内,而是将该字符的Unicode码存放到内存单元中。比如字符‘A’的Unicode吗是0x0041,它会以二进制存储在内存中。

      它的存储类型和short很相似,其实Java确实将字符变量作为无符号的短整型数据来处理的,这就决定了Java中的字符数据和整型数据之间可以通用。用户对可以对字符型数据进行算数运算,此时相当于将它的Unicode码看成一个整数进行运算。

Java规定一个局部变量在使用之前必须要初始化,否则无法通过编译。局部变量指的是定义在方法里的变量,它只有在方法里有效,在方法外无法使用。

四、数据类型转换

       转换基本规则:范围小的转为范围大的,精度小的转为精度大的。按照数据转换时是否有会损失精度,Java中的转换分为扩展转换和缩减转换。

1.扩展转换

原类型目的类型
byteshort,int,long,float,double
shortint,long,float,double
charint,long,float,double
intlong,float,,double
longfloat,double
floatdouble

eg:byte+int —— int+int;int+double —— double+double

Java规定,如果两个数据类型没出现在同一行的两列,则两个数据都必须转换成同一类型,若这个目的类型有多个可以选择,则选精度,范围最小的那个。

eg: byte+char —— int+int。

扩展转换是系统自动进行的,又称自动类型转换,不会损失精度。

2.缩减转换

Java规定凡是符合下表的转换,称为缩减转换。这种转换会损失精度,系统不会自动进行,需要程序员显示地指定。

原类型目的类型
shortbyte
charbyte,short
intbyte,short,char
longbyte,short,char,int
floatbyte,short,char,int,long
doublebyte,short,char,int,long,float

要将第一列的数据转换成第二列的数据类型,必须使用强制类型转化。基本格式:(数据类型)数据

eg: int a —— (byte)a

强制类型转换也可用在扩展转换中,使阅读更清晰。

eg: long+int+byte —— long+(long)int+(long)byte

注意:无论扩展转换还是缩减转换,只是产生元数据的一个副本,转换结果对元数据没有影响。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值