类型转换
由于Java是强类型语言,所以要进行有些运算的时候需要用到类型转换
低--------------------高
byte
short
char
int
long
float
double
小 大
运算中不同类型的数据先转换为同一类型然后进行运算
- 强制转换 (类型) 变量名 高—低
- 自动转换 低----高
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换为低容量的时候,强制转换
- 转换的时候可能存在内存溢出或者精度问题!!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNbXHpRZ-1639206788226)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211135301197.png)]
int 转 byte 就是高转低 系统会提示报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mBvn5XZG-1639206788232)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211135352362.png)]
也是内存溢出
低到高就不会溢出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xzzOnM5y-1639206788233)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211135509796.png)]
int 转高 double 就不会溢出
注意点4
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m3lAJZVn-1639206788234)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211135628164.png)]
强制转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4auVR8E9-1639206788235)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211140053899.png)]
正常的 char 转int
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evASBoUQ-1639206788237)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211140122512.png)]
操作比较大的数要注意溢出问题
学习点: JPK7 新特性 大数之前可以用下划线分割
public class Demo5 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
//列
int money =10_0000_0000;
int years = 20;
int total = money*years;//-1474836480 计算溢出了 默认是int
//改为
long total2 =money*years; //转换之前就存在问题
long total3 =money*((long)years);//先把一个数转换为long
System.out.println(total3);
}
}
计算溢出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ApawYYNX-1639206788238)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211141630023.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hLZE6YpO-1639206788239)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211141723201.png)]
变量
设置变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z3nyMqxN-1639206788240)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211141829816.png)]
最好不要一行多个变量 程序可读性高
变量是什么:就是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java 变量是程序中最基础的存在单元,其要素包括变量名,变量类型和***作用域***
列如:
type varName [=value] [{
,varName[=value]}]
数据类型 变量名 =值 可以用逗号隔开来声明个同类型变量 但是不建议使用这种
注意事项:
- 每个变量都有类型,类型可以是基本型,也可以是引用型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明都必须以分号结束
变量作用域
- 类变量
- 实例变量
- 局部变量
局部变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ziAMFEAN-1639206788241)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211143655908.png)]
局部变量截图 也就是在main方法
在括号里写的程序 不能超出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKhotggH-1639206788242)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211143902914.png)]
实例变量
//实例变量:从属于对象; 如果不自行初始化,这个类型的默认值 0 0.0
//boolean(布尔值) 默认是false
//除了基本值类型,其余的默认都是null; 这句说的是String
String name;
int age;
//变量类型 变量名字 = new Demo7();
Demo7 demo7 = new Demo7();
System.out.println(demo7.age);
System.out.println(demo7.name);
类变量
public class Demo7 {
//类变量 staric 斯太迪克
static double salary = 2500;
外一点就是实例变量
最中间就是main方法
//类变量 static salary-塞瑞:工资的意思
System.out.println(salary);
}
}
常量
常量(constant)看死疼特
初始化后不能在改变值!不会改动的值
***一种特殊的变量,它的值被设定后不允许被改变
final (非闹) 常量值 = 值
final double PI(派) = 3.14;
常量名一般使用大写字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1pCBpbsR-1639206788243)(C:\Users\rex\AppData\Roaming\Typora\typora-user-images\image-20211211145311099.png)]
public class Demo8 {
//修饰符不存在先手顺序
// 修饰符 变量类型 变量名 = 变量值
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命令规范
- 所有变量,方法,类名:见名知意
- 类成员变量:首字母小写和驼峰原则:lastMame
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man GoodMan
- 方法名:首字母小写和驼峰原则:run() runRun()