java中数据类型
java中变量按照数据类型分类有两种:
(1)基本数据类型:(byte,short,int,long)整数类型,(float,double)浮点类型,char(字符型),boolean(布尔型)
(2)引用型数据类型:(class)类,其中字符串在类中,属于引用类型;interface(接口);数组[ ]类型
public void dataType() {
//定义各种类型基础数据类型
byte a = 90;
short b= 189;
int c = 123;
long h = 123L;
double d = 12.34;
float e = 123.44F;
char f= 'f';
char f1='\t';
char f2='中';
boolean g = true;
System.out.println(f2);
}
基本数据类型
数据类型 | 关键字 | 内存占用(大小) | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128至127 |
短整型 | short | 2字节 | -32768至32767 |
整型 | int | 4个字节 | -2^31至2^31-1 |
长整型 | long | 8个字节 | -2^63至2^63-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45 至 3.4028E+38 |
双精度浮点数 | double | 8个字节 | 4.9E-324 至 1.7977E+308 |
字符型 | char | 2个字节 | 0至2^16-1 |
布尔类型 | boolean | 一个字节 | true,false |
2.基本数据类型的转换
-
首先来看一个例子,一个int类型和一个byte类型的变量进行加法,结果是什么数据类型?
public class DateType01 { public static void main(String[] args) { byte i = 6; int j = 4; byte k = i+j;//报错,说明k的类型不是byte int z = i+j;//编译正常,说明返回结果是int类型 } }
java在进行数据运算的过程中是是会自动提升运算的数据类型的。
-
自动转换的规则:将取值范围小的类型自动提升为取值范围大的类型
-
-
转换规则
-
范围小的数据类型会自动向范围大的数据类型提升,byte,short,char运算时会直接提升为int类型
-
-
强制转换
-
将数据范围大的类型转换为数据小的类型
int s = 20; double d = 28.88; int result = s+ (int)d;//将d强制转换为int类型的数据
-
注意:
-
浮点转成整数,直接取消小数点,可能造成数据损失精度。
-
int
强制转成short
砍掉2个字节,可能造成数据丢失。
-
-
变量的概念
变量存储在内存中的一个区域,该区域有自己的名称(变量名)和类型(数据类型),并且在该区域内的数据可以在同一类型范围内不断变化。
在java中变量必须先声明,然后才能使用。
使用变量时应注意:变量的作用于在一个{ }之间有效,变量需要初始化值。
定义变量的格式: 数据类型 变量名 = 初始化值。 例如: int num = 10 ;
变量是通过变量名访问一块区域。
public class Variable {
public static void main(String[] args) {
//声明一个int 类型 的变量 num1 int num1 = 10 ;
//变量必须先声明再赋值。
int num1 = 10;
System.out.println("num1"+"="+num1);
}
public void test() {
//变量不能跨作用于使用
//System.out.println(num1);
}
}
java中变量按照位置来分分为成员变量和局部变量
变量声明在类内部,方法外部,称为成员变量
变量声明在方法内部,称为局部变量。
public class Variable {
//声明一个成员变量,成员变量可以不初始化。成员变量作用域在整个类中,局部变量作用域只有自己的代码中
int num ;
public static void main(String[] args) {
//局部变量 num1,局部变量必须初始化,且局部变量不能重复
int num1 = 10;
//int num1 =23;
System.out.println("num1"+"="+num1);
}
}