学做的网站基础蛋糕,网站开发 网页上传 网页制作,个人免费展示网站,推广普通话的方针1.概述
佛说#xff0c;大千世界#xff0c;无奇不有。在这个世界里#xff0c;物种的多样性#xff0c;遍地开花#xff0c;同样#xff0c;在Java的世界里#xff0c;也有着异曲同工之妙#xff0c;Java秉承面向对象的特性#xff0c;必然少不了区分对象的类型大千世界无奇不有。在这个世界里物种的多样性遍地开花同样在Java的世界里也有着异曲同工之妙Java秉承面向对象的特性必然少不了区分对象的类型就像下图的“CuteCat”它描述着在现实世界中存在的事物同时也是今天我们要说的Java数据类型。 Java中的数据类型可划分为两种
1基本数据类型 基本数据类型是Java语言中数据操作的基础包括byte、short、int、long、float、double、char、boolean。 2引用数据类型 引用数据类型包括类class、接口interface、数组。 如果只看文字描述的话可能没有那么直观上图自己体会。 那么首先来看看基本数据类型不同的数据类型有着不同的默认值以及取值范围既然取值范围不同其所占用的内存空间也是不同的。来看下表
数据类型默认值取值范围内存占用byte0-128127-2^72^7-11字节8位short0-3276832767-2^152^15-12字节16位int0-2,147,483,6482,147,483,647-2^312^31-14字节32位long0L-263~263-18字节64位float单精度0.0f1.4E-45~3.4028235E384字节32位double双精度0.0d4.9E-324~1.7976931348623157E3088字节64位char‘\u0000’‘\u0000’十进制0~‘\uFFFF’十进制655352字节16位booleanfalsetrue、false1字节8位
2.基本数据类型
通过上面的介绍相信大家对基本数据类型已经有一个大致的了解接下来继续详细说明。
2.1 byte
byte类型属于整型最小值为-128最大值为127默认值为0内存占用为1字节。在编写程序时如果可以确定变量的取值范围为了节省空间可以使用byte来存储数据。代码示例
byte b1 -128
byte b2 127;2.2 short
short类型属于整型最小值为-32768最大值为32767默认值为0内存占用为2字节。代码示例
short s1 -32768;
short s2 32767;2.3 int
int类型属于整型最小值为-2,147,483,648最大值为2,147,483,647默认值为0内存占用为4字节。代码示例
int i1 -2,147,483,648
int i2 2,147,483,6472.4 long
long类型属于整型最小值为-9,223,372,036,854,775,808最大值为-9,223,372,036,854,775,807默认值为0内存占用为8字节。代码示例
long l1 -9,223,372,036,854,775,808;
long l2 9,223,372,036,854,775,807;2.5 float
float类型属于单精度浮点型小数点有效位数为7位最小值为1.4E-45最大值为3.4028235E38默认值为0.0f内存占用为4字节。示例代码
float f 1.1f2.6 double
double类型属于双精度浮点型小数点的有效位数为16位最小值为4.9E-324最大值为1.7976931348623157E308默认值为0.0内存占用为8字节。
double d 1.12.7 char
char类型可以表示一个16位的Unicode字符最大值为’\uFFFF’十进制65535最小值为’\u0000’十进制0内存占用为2字节。代码示例
char c A;**Tips**编码类型不同一个字符所在的内存空间也就不同。 ASCII编码一个英文字符占一个字节一个中文字符占两个字节。 Unicode编码一个英文字符和一个中文字符占都两个字节。 utf8编码一个英文字符占一个字节一个中文字符占三个字节。
2.8 boolean
boolean类型的值分别为true、false通常用于条件判断。代码示例
boolean flag true3.基本数据类型转换
3.1 为什么需要类型转换
类型转换为什么Java基本数据类型之间会涉及到类型转换呢
试想一下在现实世界中如果将一个苹果和一个梨拿来比较由于苹果和梨是两个不同的类型自然是无法进行比较的。同理Java是强类型语言所以要求在执行赋值运算和算术运算的时候参与运算的数据类型必须保持一致。
3.2 哪些基本数据类型可以相互转换
除了boolean类型其余的数据类型在内存中存储的都是数值因此除了Boolean类型其余的数据类型之间都可以相互转换。
3.3 类型转换方式
隐式类型转换
取值范围小的数据类型向取值范围大的数据类型转换时可以自动转换也叫隐式类型转换有种大鱼吃小鱼的感觉。示例代码
byte b 127;
short s b;
int i s;
long l i;
float f l;
double d f;如果是进行算数运算也会进行类型自定转换
1、如果其中一个数是double类型其余的数也会转换为double类型。
2、如果其中一个数是float类型其余的数也会转换为float类型。
3、如果其中一个数是long类型其余的数也会转换为long类型。 我们再来看看这几种基本类型之间的隐式转换关系实线表示无精度丢失虚线表示可能会出现精度丢失。比如1234567890是一个10位的int类型的整数它包含的位数比float类型所能够表达的位数多在进行转换时就会出现精度丢失。
强制类型转换
取值范围大的数据类型向取值范围小的数据类型转换时无法进行自动转换需要我们为其指定显式的类型转换。进行强制类型转换容易造成数据异常就像小鱼吃大鱼一样如果硬把大鱼塞给小鱼吃那必然是对小鱼的巨大破坏。代码示例
long l 9223372036854775807L;
int i (int) l;// i的值为-1。**Tips**整型之间的隐式转换不会出现精度的丢失整型和浮点型之间的类型转换可能会出现精度丢失。