总结
数据类型转换
-
概念:数据从一种数据类型转换为另外一种类型
-
为什么需要数据类型转换?
-
节约内存空间
-
业务需要
-
-
java中的数据类型转换分类
-
向上转型:从小范围的数据转换为大范围的数据类型,自动发生
byte b = 10; // 局部变量 short s = b; // 发生数据类型转换,向上转型 1、将b的值10由byte类型转换short类型 2、再将转换后short类型的10赋值变量s int n = s; long l = n;
float f = l;
double d = f; -
- 向下转型:从大范围的数据类型转换为小范围的数据类型,强制执行
* 向下转型会降低精度
* 也会发生数据溢出
```java
double d = 3.14;
int a = (int)d; // 发生向下转换,把d的数据3.14由double转换为int
System.out.println(a);
```java
int num = -120;
byte b = (byte)num; // 发生数据溢出
System.out.println(b);
```
将一个变量的值赋值另一个变量
等号左边只能一个变量名,等号的右边可以是常量,也可以是变量
int ggAge; // 声明一个哥哥的年龄变量
ggAge = 20; // 将20这个常量赋值变量ggAge
int mmAge; // 声明一个妹妹的年龄变量
mmAge = ggAge; // 将ggAge变量里面值赋值,mmAge变量
变量的使用
-
直接使用变量名,其实就是使用变量里面数据
int age; // 为age赋值 age = 18; // 使用变量age,打印 System.out.println(age); // 使用age变量,其实是使用age里面值(18)
-
拼接字符串:+
+:两边只要字符串(常量、变量),那么+就是拼接符
3 + "5":+就是拼接符,拼接后的结果是String,35-
"3" + 5:35
3 + 5:8 -
String a = "5";
-
3 + a:35
-
int age = 18;
// 使用字符串的拼接
System.out.println("年龄:" + age);
变量其他知识点
int age = 18; // 声明和赋值可以连写
String color = "红色"; // 第一次赋值也叫初始化
// 声明同种类型的多个变量
int a = 10, b = 20, c = 30, d;
int f;
System.out.println(f); // 报错,变量没有赋值,所有变量必须要赋值以后才可以使用
数据类型
- 基本数据类型:整型,默认值0,浮点型,默认值 0.0,字符类型,默认值 ' ':空字符,布尔类型,默认值 false
- 引用类型:默认值 null,String的默认null
变量的分类
-
局部变量:在方法里面声明变量就是局部变量
使用范围(作用域):方法{}范围内,在哪个方法中声明,就只能在这个方法中使 用
局部变量是没有默认值的
局部变量存在栈内存中 -
成员变量:在方法外面声明的变量
使用范围:在这个类所有的方法里面都可以用
成员变量都有默认值,跟数据类型有关
成员变量保存堆内存中 -
程序使用变量的顺序是:就近原则
先局部,后成员。
public class VariableDemo6 {
static int age = 20; // 成员变量
public static void main(String[] args) {
int age = 18; // 这个age就是局部变量
// 程序使用变量的顺序是:就近原则
System.out.println(age);
}
}
表达式
-
概念:java中的一个算术式
eg:1 + 2
-
表达式的运算规律
- 在一个表达式中数据类型范围小于int,会发生向上转型,转到int
- 在一个表达式中如果高于int数据类型,小范围会向上转型为大范围
- 高于int类型的范围如果类型一样,也不会发生类型转换
byte a = 1;
byte b = 2;
// byte sum = a + b; 报错:a,b会向上转型为int,所以结果是int类型,用byte来接受会报错
---------------------------------------
int sum = a + b;//正确应该要用int类型来接收
short s = 1;
// s = s + 1; 报错:s会向上转型为int,所以结果是int类型,用short来接受会报错
---------------------------------------
int a = 1;
long l = 2L;
long sum = a + l; // l是高于int的范围,所以a会发生数据类型向上转型
---------------------------------------
byte a = 2;
//char b = a; 报错:char类型范围为0~xxx,byte类型范围为-128~127,char类型范围并未完全包括byte类型范围,所以不会自动向上转型,用short来接受会报错
标签:类型转换,变量,int,age,数据类型,byte,表达式
From: https://www.cnblogs.com/JunYuanStudy/p/17933518.html