Java中的数据类型

Java编程语言是一种强类型语言,Java中的每一个变量必须声明类型。在Java编程语言中,数据类型分为基本数据类型引用数据类型

一、基本数据类型

在Java中,有8种基本数据类型用来存储数值、字符和布尔值。

1、整数类型:
整数类型用来存储整数数值,可以是正数也可以是负数。并且整型数据在Java中有三种表示形式,分别是十进制、八进制和十六进制。

十进制:十进制是我们平时生活中使用最广泛的数值表现形式,如127、0、-127等。注意十进制不能以0开头(数值0除外)。

八进制:以0开头,如0123(转换十进制为83)。

注意:int m = 0678;//编译错误,八进制只能有0~7的数字

十六进制:以0x或0X开头,如0x25(转换为十进制数为37)。

整型数据中根据所占的内存大小不同,可以分为byte、short、int和long四种类型,它们有着不同的取值范围。
这里写图片描述

在Java中,整型数据的范围是固定的,与机器无关,这也就体现了Java程序的可移植性。

其中长整型(long)在声明时需要在数值后面加上L,例如:long num = 214748364752L。

注意
1、Java中没有任何无符号类型。
2、byte、short和char参与运算时,会自动转换为int,再进行运算。
例如下面截图中的代码,b6 = b1 + b2;报错是因为b1 + b2会先转换成int再进行计算,所以如果将b6的类型改为int就不会报错了。b5 = b3 + b4;不报错是因为b3和b4是final修饰的,被fianl修饰的变量不会改变,会被JVM优化,当2个final修饰相加时候会根据左边变量的类型而转化,作为这2个final变量的最终类型。
在这里插入图片描述

2、浮点型
浮点类型表示有小数部分的数值,Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们也具有不同的取值范围。
这里写图片描述
其中,double数据类型精度是float数据类型的两倍,在使用float类型声明时;需要在数值后面加上F或f,double类型可以加D或d也可以不加,不会出错,但是float类型必须加上F或f。

3、char类型

字符类型(char)用于存储单个字符,占两个字节的内存空间,在定义一个字符类型变量时,需要以单引号表示,如’a’表示一个字符,而”a”则表示一个字符串。

在Java中可以把字符作为整数对待,注意比较下列代码的区别:

char c1 = 1 + '1';//c1 = 2,字符'1'在Unicode表中的位置是49,49+1的位置是字符'2'
char c2 = 1 + 'a';//c2 = 'b',字符'a'的下一个字符是字符'b'
char c3 = 97; //c3 = 'a',字符a在Unicode表中的位置是97  
char c4 = 'A' + '1';//c4 = 'r'
int c5 = 'A';//c5 = 65,字符A在Unicode表中的位置是65
int c6 = 'r';//c6 = 114,字符r在Unicode表中的位置是114
int c7 = '1';// c7 = 49,字符1在Unicode表中的位置是49 

在Java中,字符类型采用Unicode编码方式,可以存储65536个字符(0x0000~0xffff)。

注意:在Java中,字符只有一种形式存在,那就数Unicode编码方式。我们需要将JVM内部和OS文件系统区分开来,在Java中字符只有Unicode编码方式,而在OS文件系统中则可以存储为不同的编码形式。

4、布尔类型

布尔类型又称为逻辑类型,通过关键字boolean来定义布尔类型变量。布尔类型变量只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。

注意:布尔类型不能与数字类型进行转换。但是我们可以借助三元运算符显示的将布尔类型转换为数字类型,例如:boolean b ? 0:1;

二、引用数据类型

Java中引用数据类型有数组类型、类类型、接口类型。

三、数据类型转换

类型转换是指将一种类型更改为另一种类型的过程。

注意:如果从低精度类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度的数据类型向低精度的数据类型准换则必然会有信息丢失,有可能失败。

数据类型转换有两种方式:隐式转换显示转换

1、隐式类型转换

从低级类型向高级类型的转换,系统自动进行转换的类型叫隐式转换。除布尔类型和字符类型以外的基本数据类型会涉及到隐式数据类型转换,这些类型按精度从低到高的顺序为:byte short int long float double。

当一个算数表达式中包含多个基本类型的值时,整个算数表达式的数据类型将自动提升到最高操作数的类型。

2、显示类型转换

当把高精度的值赋给低精度的变量时,必须使用显示类型转换(又叫强制类型转换)。

例如:

int n = (int)45.23;//n = 45

注意:当执行显示类型转换时可能会导致精度损失。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值