java的数据类型分为三大类,即布尔型、字符型、数值型,其中,数值型又分为整型和浮点型。相对于数据类型,Java的变量类型为布尔型boolean;字符型为char;整型byte、short、int、long;浮点型float、double。其中四中整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,编程时还经常用到两种类变量,即String和Date。
(1)数据类型转换的种类:
Java数据类型的转换一般分为三种,分别是:简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。
2)简单数据类型之间的转换:
在Java中,整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte、short、char)-int-long-float-double。
简单数据类型之间的转换又可以分为:低级到高级的自动类型转换、高级到低级的强制类型转换、包装类过度类型能够转换。
A.自动类型转换:
低级变量可以直接转换为高级变量,这叫自动类型转换。
B.强制类型转换:
将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。
C.包装类过度类型转换:
ava中的包装类就是可以直接将简单类型的变量表示为一个类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上可以看出它们分别对应于boolean、char、int、long、float和double。而String和Date本身就是类,不存在包装类的概念。
在进行简单数据类型之间的转换时,可以利用包装类进行中间过渡,一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。
(3)字符串型与其他数据类型的转换
几乎从Java.lang.Object类派生的所有类都提供了toString()方法,即将该类转换为字符串
(4)将字符型直接作为数值转换为其他数据类型
将字符型变量转换为数值型变量实际上有两种对应关系:一种是将其转换为对应的ASCII码;另一种是转换关系,例如,'1'就是指数值1,而不是ASCII码,对于这种转换,可以使用Character的getNumericValue(char ch)方法。
byte:
- byte数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是-128(-2^7);
- 最大值是127(2^7-1);
- 默认值是0;
- byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short数据类型是16位、有符号的以二进制补码表示的整数
- 最小值是-32768(-2^15);
- 最大值是32767(2^15 - 1);
- Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是0;
- 例子:short s = 1000,short r = -20000。
int:
- int数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是-2,147,483,648(-2^31);
- 最大值是2,147,483,647(2^31 - 1);
- 一般地整型变量默认为int类型;
- 默认值是0;
- 例子:int a = 100000, int b = -200000。
long:
- long数据类型是64位、有符号的以二进制补码表示的整数;
- 最小值是-9,223,372,036,854,775,808(-2^63);
- 最大值是9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是0L;
- 例子: long a = 100000L,Long b = -200000L。
float:
- float数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float在储存大型浮点数组的时候可节省内存空间;
- 默认值是0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double数据类型是双精度、64位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是0.0d;
- 例子:double d1 = 123.4。
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true和false;
- 这种类型只作为一种标志来记录true/false情况;
- 默认值是false;
- 例子:boolean one = true。
char:
- char类型是一个单一的16位Unicode字符;
- 最小值是’\u0000’(即为0);
- 最大值是’\uffff’(即为65,535);
- char数据类型可以储存任何字符;
- 例子:char letter = ‘A’。
- 分类
- 基本数据类型
- byte short int long
- float double
- boolean
- char
- 引用数据类型
- 除8种基本数据类型以外的都是引用数据类型
- 比如:String,File,Dog,Pig,LittleRocket
- 基本数据类型
| 数据类型 | 位数 | 取值范围 | | ------- | ---- | -------------------------- | | boolean | 1 | true\|false | | byte | 8 | -128~127 | | short | 16 | -32768~32767 | | int | 32 | -2e31~2e31-1 | | long | 64 | -2e63~2e63-1 | | float | 32 | ? | | double | 64 | ? | | char | 16 | 0-65535 ‘\u0000’~‘\uFFFF’ |
- 类型转换
- 隐式类型转换
- 规则:
- 类型兼容
- 目标类型大于源类型 byte < short < int < long <float < double [ char < int < long < float <double]
- 数值型表达式的转换
- 有double 则结果为duoble
- 有float 结果为float
- 有 long 结果为long
- 其他结果为int
- 强制类型转换 数值型的
- 大的类型转换成小的类型,需要使用
(类型名)
- 进行强制转换
- 强制转换可能会精度丢失
- char可以与整数型进行互转
- 引用数据类型
- 非基本数据类型
- 使用方式和基本数据类型完全一样
- 属性
- 参数
- 返回值
- 赋值
- 使用new关键字来赋值,例外(String和包装器类)
- 比较基本数据类型和引用数据类型
| | 基本数据类型 | 引用数据类型 | | ---- | ------ | ------------------------ | | 概念 | 单纯的值 | 对象 | | 存储位置 | 栈中 | 栈中存引用,堆中存对象本身 | | 赋值方式 | 直接赋值 | 使用new关键字,(String和包装器类除外) |