java中的基本数据类型
2012-07-25 11:47
232 查看
Java语言提供了八种基本类型。六种数字类型(四个整型,两个浮点型),一种字符类型,还有一种布尔型。
1、整数:
定义:没有小数部分的数字,负数是允许的。
种类:Java提供四种整数类型:
byte 1个字节 -128到127
short 2个字节 -32,768到32,767
int 4个字节 -2,147,483,648到2,147,483,647
long 8个字节 -9,223,372,036,854,775,808L到9,223,372,036,854,775,807L
2、浮点数:
定义:含有小数部分的数字。
分类:Java提供两种浮点数:
float 4个字节 约+-3.40282347E+38F(6~7个有效的十进制数位) 绝对值:1.4E-45~3.4E38
double 8个字节 约+-1.79769313486231570E+308(15个有效数位) 绝对值:4.9E-324~1.8E308
说明:
1)float类型的数值有个后缀:f/F,如果没有后缀f/F,那么默认为double。double类型的数值也可以使用后缀d/D。
2)当这些数字遇到取值范围错误时,会发生(上溢Overflow);而在遇到像被零除时,会发生下溢(Underflow)。
举例:
float f = 1.23456712f;
float ff = 1.23456789f;
double d = 1.23456789123456123d;//默认为double类型,可以不带d
double dd = 1.23456789123456789d;
System.out.println("f ="+f);
System.out.println("ff ="+ff);
System.out.println("d ="+d);
System.out.println("dd ="+dd);
输出:
f = 1.2345672
ff = 1.2345679
d = 1.2345678912345612 //15位精度
dd = 1.234567891234568 //15位精度
3、字符类型:
定义:单引号用来表示char常量,是容纳单字符的一种基本数据类型,占1byte。
说明:
双引号则表示一个字串,他是Java的一个对象,并不是数据类型。
4、布尔类型:
boolean类型只有两个值:false和true。 boolean 类型的数值不能直接转换成其它类型。占1个字节。
看一下代码:
public class TestString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE=" + (int)Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE=" + (int)Character.MAX_VALUE);
}
}
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。
根据以上规则,请看:
short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
我们来写个例子试试,Java代码
publicclass PrimitiveTypeTest {
publicstaticvoid
main(String[] args) {
short s1 =
1;
// 这一行代码会报编译错误
// s1 = s1 + 1;
// 这一行代码没有报错
s1 = 1 +
1;
// 这一行代码也没有报错
s1 += 1;
}
}
当使用“==”运算符在基本类型和其包装类对象之间比较时,遵循如下规则:
只要两个操作数中有一个是基本类型,就是比较它们的数值是否相等。否则,就是判断这两个对象的内存地址是否相等,即是否是同一个对象。
1、整数:
定义:没有小数部分的数字,负数是允许的。
种类:Java提供四种整数类型:
byte 1个字节 -128到127
short 2个字节 -32,768到32,767
int 4个字节 -2,147,483,648到2,147,483,647
long 8个字节 -9,223,372,036,854,775,808L到9,223,372,036,854,775,807L
2、浮点数:
定义:含有小数部分的数字。
分类:Java提供两种浮点数:
float 4个字节 约+-3.40282347E+38F(6~7个有效的十进制数位) 绝对值:1.4E-45~3.4E38
double 8个字节 约+-1.79769313486231570E+308(15个有效数位) 绝对值:4.9E-324~1.8E308
说明:
1)float类型的数值有个后缀:f/F,如果没有后缀f/F,那么默认为double。double类型的数值也可以使用后缀d/D。
2)当这些数字遇到取值范围错误时,会发生(上溢Overflow);而在遇到像被零除时,会发生下溢(Underflow)。
举例:
float f = 1.23456712f;
float ff = 1.23456789f;
double d = 1.23456789123456123d;//默认为double类型,可以不带d
double dd = 1.23456789123456789d;
System.out.println("f ="+f);
System.out.println("ff ="+ff);
System.out.println("d ="+d);
System.out.println("dd ="+dd);
输出:
f = 1.2345672
ff = 1.2345679
d = 1.2345678912345612 //15位精度
dd = 1.234567891234568 //15位精度
3、字符类型:
定义:单引号用来表示char常量,是容纳单字符的一种基本数据类型,占1byte。
说明:
双引号则表示一个字串,他是Java的一个对象,并不是数据类型。
4、布尔类型:
boolean类型只有两个值:false和true。 boolean 类型的数值不能直接转换成其它类型。占1个字节。
看一下代码:
public class TestString {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE=" + (int)Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE=" + (int)Character.MAX_VALUE);
}
}
运算符对基本类型的影响
当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型;否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;否则,只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;否则,两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。
当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:
运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。
根据以上规则,请看:
short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
我们来写个例子试试,Java代码
publicclass PrimitiveTypeTest {
publicstaticvoid
main(String[] args) {
short s1 =
1;
// 这一行代码会报编译错误
// s1 = s1 + 1;
// 这一行代码没有报错
s1 = 1 +
1;
// 这一行代码也没有报错
s1 += 1;
}
}
当使用“==”运算符在基本类型和其包装类对象之间比较时,遵循如下规则:
只要两个操作数中有一个是基本类型,就是比较它们的数值是否相等。否则,就是判断这两个对象的内存地址是否相等,即是否是同一个对象。
相关文章推荐
- Java四类八种基本数据类型
- JAVA四类八种基本数据类型
- 3.6 java基础总结①包装类,基本数据类型,String相互间转换
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
- java中基本数据类型之间的转换 int double byte short
- java的基本数据类型
- 黑马程序员-JAVA学习笔记-基本数据类型及其转换
- Java基本数据类型
- Java中基本数据类型的自动拆箱和装箱
- 黑马程序员_java基础——基本数据类型包装类
- JAVA 基本数据类型对象包装类新特性
- Java基本数据类型之间的转换
- JAVA入门基础笔记-基本数据类型
- Java基本数据类型
- JAVA 基本数据类型长度
- Java千百问_06数据结构(006)_java基本数据类型如何转换
- (三)Java八种基本数据类型所占的byte详解
- 黑马程序员 Java自学总结十二 String类和基本数据类型包装类
- (三)Java八种基本数据类型所占的byte详解
- Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?