1.1 Java为什么需要保留基本数据类型
基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/服务器模式,后端有数据库。但是,基本数据类型对以数值计算为主的应用程序来说是必不可少的。
自从1996年Java发布以来,基本数据类型就是Java语言的一部分,因此Java是双类型的系统,即具有基本数据类型和对象类型,简称基本类型和对象。Java中有8个预定义的基本类型,每一个基本类型都有一个对应的对象包装类。基本类型基于值,对象类型基于引用。
1.2 Java的基本数据类型(primitive)
Java提供了八种基本类型,其中包括六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。
整型:short, int, long, byte;
浮点型:float, double;
字符型:char;
布尔型:boolean.
Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或操作系统的改变而改变。对于数值类型的基本类型的取值范围,无需强制去记忆,它们的值都已经以常理的形式定义在对应的包装类中了。
基本类型 大小 对应的包装类 最小值 最大值
byte 8-bit Java.lang.Byte -128 +127
short 2Byte=
16bit Java.lang.Short -32768 +32767
int 4Byte=
32bit Java.lang.Integer -2^31 +2^31-1
long 8Byte=
64bit Java.lang.Long -2^63 +2^63-1
float 4Byte=
32bit Java.lang.Float 1.4e-45 3.40e38
double 8Byte=
64bit Java.lang.Double 4.9e-324 1.79e308
char 2Byte=16bit Java.lang.Character 0 65535
boolean —— Java.lang.Boolean
void Java.lang.Void
关于Java基本类型的更多介绍,请见
1.3 Java基本数据类型转换
Java语言是一种强类型的语言。强类型的语言有以下几个要求:
(1)变量或常量必须有类型,而且只能在声明以后才能使用;
(2)赋值时类型必须一致,值的类型必须和变量或常量的类型完全一致;
(3)运算时类型必须一致,参与运算的数据类型必须一致才能运算。
但在实际应用中,经常需要在不同类型的值之间进行操作,这时就需要进行数据类型的转换。
数据类型转换有两种:
(1)自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码;
规则:从存储范围小的类型到存储范围大的类型。
具体规则:byte→short(char)→int→long→float→double.
(2)强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。该类型转换很可能存在精度的损失。
规则:从存储范围大的类型到存储范围小的类型。
具体规则:double→float→long→int→short(char)→byte.
1.4基本数据类型和包装类之间的转换:
通过向对应的包装器传入参数来完成基本变量包装成包装类对象;利用包装类提供的xxxValue()方法将包装类对象转化成基本类型变量。
如int和Integer之间的转换:
Int转Integer:Integer integer = new Integer(int);
Integer转int:int i = integer.intValue();
此外还有如:
Double转double: double b = Double.doubleValue();
Float转float:float c = Float.floatValue();
……
包装类可以实现基本类型变量和字符串之间的转换:
除Character外,所有的包装类提供parseXXX()方法将特定的字符串转换成基本类型变量,String类提供了valueOf()方法将基本类型转换成字符串。
如:
String iStr = “123”;
int i = Interger.parseInt(iStr); //将字符串转”123”化为int类型的123.
String nStr = String.valueOf(100.234); //将double型的基本类型值100.234转化为String型的“100.234”. String str = String.valueOf(boolean/char/char[]/int/double/float /long/Object); //String.valueOf()的多种参数形式.