Java基本数据类型
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse 10 Java
作者:陈剑波
撰写时间:2019年04月019日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
基本数据类型
Java的两大数据类型:基本数据类型和引用类型。
八种基本数据类型:六种数字类型——四个整数型,两个浮点型。一种字符类型,还有一种布尔型。
byte数据类型:
- 占1个字节,8位、有符号的,以二进制补码表示的整数。
- 范围-2^7到2^7-1。
- 默认值是0。
short数据类型:
- 占2个字节,16位、有符号的,以二进制补码表示的整数。
- 范围-2^15到2^15-1。
- 默认值是0。
- Short 数据类型可以节省空间。一个short变量是int型变量所占空间的二分之一。
int数据类型:
- 占4个字节,32位、有符号的,以二进制补码表示的整数。
- 范围-2^31到2^31-1。
- 默认值是0。
- 一般的整型变量默认为 int 类型。
long数据类型:
- 占8个字节,64位、有符号的,以二进制补码表示的整数。
- 范围-2^63到2^63-1。
- 默认值是0L。
- 这种类型主要使用在需要比较大整数的系统上。
注意:"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所 以好大写。
float数据类型:
- 占4个字节,32位,后用小写f或大写F进行标识。
- float 在储存大型浮点数组的时候可节省内存空间。
- 默认值是0.0f。
- 浮点数不能用来表示精确的值。
double数据类型:
- 占8个字节,64位,double类型用小写d或大写D进行标识,但一般不加,小数默认的是double类型。
- 默认值是0.0f。
- double类型不能用来表示精确的值。
- 浮点数的默认类型为double类型。
double数据类型:
- 占1个字节,8位,boolean数据类型表示一位的信息。
- 只有两个取值:true和false。
- 默认值是false。
- 这种类型只作为一种标志来记录 true/false 情况。
char数据类型:
- 占2个字节,16位,char类型是一个单一的 16 位 Unicode 字符。
- 最大值为0。
- 最小值为65535。
- char 数据类型可以储存任何字符。
Java特殊转义字符: \n 换行 、\r 回车 、\f 换页符、\b 退格 、\0 空字符 、\s 字符串、\t 制表符、\" 双引号、\' 单引号、\\ 反斜杠、\ddd 八进制字符 (ddd)、\uxxxx 16进制Unicode字符
基本数据类型的包装类
Java每个基本数据类型在java.lang包中都有一个相应包装类。
包装类的作用:
- 提供一系列使用的方法。
- 集合不允许存放基本数据类型数据,存放数字时,要使用包装类。
基本数据类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
八种包装类所继承的父类不全相同:
包装类是object的子类,严格来说可分为两种:
Character、 Boolean属于Object子类。
Integer ,Byte,Float,Double,Short,Long都属于Number类的子类,Number继承了Object类,是一个抽象类。里面定义了六个抽象方法来返回以上六种基本数据类型的操作:byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubleValue()。
装箱和拆箱:
- 将基本数据类型转为包装类成为装箱。
- 将包装类的类型转为基本数据类型称为拆箱。
- 在JDK1.5之后,提供了自动装箱和自动拆箱功能。
示例代码及运行结果:
运行结果:
类型转换
自动类型转换(隐式类型转换)
从低位类型转到高位类型自动转换
整形、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换原则:
从低精度向高精度转换
byte 、short、int、long、float、double、char
即:
- byte型可以转换为short、int、、long、float和double;
- short可转换为int、long、float和double;
- char可转换为int、long、float和double;
- int可转换为long、float和double;
- long可转换为float和double;
- float可转换为double;
注意:
- 两个char型运算时,自动转换为int型;当char与别的类型运算时,也会先自动转换为int型的,再做其它类型的自动转换。
- 布尔型和其它基本数据类型之间不能相互转换。
- 低位数据类型自动转换为高位数据类型。
- 整数类型可以自动转化为浮点类型,可能会产生舍入误差。
强制类型转换(显式类型转换)
从高位类型转为低位类型需要强制类型转换
格式:(type)value type是要强制类型转换后的数据类型。
注意:
- 强制类型转换可能导致溢出或损失精度。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换 。
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
示例代码及运行结果:
运行结果: