【Java】基本数据类型
在Java中,有两大数据类型:内置数据类型 和 引用数据类型。
一、内置数据类型
1、基本数据类型
(1)数值型
-———-整型:byte、int、long、short;
-———-浮点型:float、double;
(2)字符型:插入;
(3)布尔型:boolean;
2.
数据类型 | 存储空间大小 | 默认值 |
---|---|---|
boolean | 一位 | false |
char | 2字节 | ‘u0000’ |
byte | 1字节 | 0 |
short | 2字节 | 0 |
int | 4字节 | 0 |
long | 8字节 | 0L |
float | 4字节 | 0.0f |
double | 8字节 | 0.0d |
注:
(1)float是单精度、32位、符合IEEE 754标准的浮点数;
double是双精度、64 位、符合IEEE 754标准的浮点数;
(2)浮点数的默认类型是double;
(3)浮点数不能用来表示精确的值;
(4)boolean只有两个取值:true和false;
(5)char类型里保存的不是一个ASCII编码,而是一个Unicode编码;
-———-字符编码标准:ASCII(2字节,7位表示) 和 Unicode(4字节,31位表示)
3.
对于基本数据类型的取值范围,我们无需去强行记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。
代码如下:
public class PrimitiveDataType{
public static void main(String[] args){
System.out.println("基本类型:char");
//以数值形式而不是字符形式输出
System.out.println("最大值:"+(int)Character.MAX_VALUE);
System.out.println("最小值:"+(int)Character.MIN_VALUE);
System.out.println();
System.out.println("基本类型:byte");
System.out.println("最大值:"+Byte.MAX_VALUE);
System.out.println("最小值:"+Byte.MIN_VALUE);
System.out.println();
System.out.println("基本类型:short");
System.out.println("最大值:"+Short.MAX_VALUE);
System.out.println("最小值:"+Short.MIN_VALUE);
System.out.println();
System.out.println("基本类型:int");
System.out.println("最大值:"+Integer.MAX_VALUE);
System.out.println("最小值:"+Integer.MIN_VALUE);
System.out.println();
System.out.println("基本类型:long");
System.out.println("最大值:"+Long.MAX_VALUE);
System.out.println("最小值:"+Long.MIN_VALUE);
System.out.println();
System.out.println("基本类型:float");
System.out.println("最大值:"+Float.MAX_VALUE);
System.out.println("最小值:"+Float.MIN_VALUE);
System.out.println();
System.out.println("基本类型:double");
System.out.println("最大值:"+Double.MAX_VALUE);
System.out.println("最小值:"+Double.MIN_VALUE);
}
}
运行结果:
二、引用数据类型
(1)引用类型指向一个对象,指向对象的变量叫做引用变量。这些变量在声明时被指定为一个特定的类型,变量一旦被声明之后类型不可更改;
(2)对象、数组都是引用数据类型;
(3)所有引用类型的默认值都是null;
(4)一个引用变量可以用来引用任何与之兼容的类型;
常量
(1)在程序运行时是不能被修改的;
(2)Java中,用关键字 final 来修饰常量,声明方法和变量类似,例:
final int A = 30;
(3)常量可以使用小写,但为了便于识别,通常用大写字母表示常量;
(4)字面量可以赋给任何内置类型的变量。例:
byte a = 68;
char a = 'B'
(4)byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。当使用常量的时候,前缀 0 表示 8 进制, 0x 代表 16 进制。
(5)Java中,字符串常量也是包含在两个引号之间的字符序列。例:"Hello World"
(6)字符串常量和字符常量都可以包含任何Unicode字符。例:
char a = '\u0001';
String a = "\u0001";
类型转换
在运算中,不同类型的数据之间进行运算时,先转换为同一类型,再进行运算。
(1)
转换是从低级到高级;
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
(2)
数据类型转换需满足以下规则:
a)将一个大范围的类型转换为小范围的类型时,需要强制类型转换;而将一个小范围的类型转换为大范围的类型,是自然且允许的;
通常情况下:
-———————-小范围数据类型 a = 大范围数; //不允许
-———————-大范围数据类型 b = 小范围数; //允许并且自然
b)不可以对boolean类型进行类型转换;
c)不能把对象类型转换成不相关类的对象;
d)转换过程中可能出现溢出或损失精度,例:
int a =88;
byte b = (byte)a;
e)浮点数到整数的转换是通过舍弃小数得到的,不是四舍五入。例:
(int)23.7 == 23;
(int)-45.89f == -45
自动类型转换
转换前的数据类型的位数要低于转换后的数据类型
强制类型转换
(1)将一个大范围的类型转换为小范围的类型时,需要用到强制类型转换;
(2)格式:(type)value; //type为转换后的类型
还没有评论,来说两句吧...