Long类型变量赋值时数值常量不加L,编译的时候可能会出现一个错误,提示“过大的整数,Java代码中直接书写的数字是int类型的。
Float类型变量赋值时数值常量不加F,提示”不兼容的类型: 从double转换到float可能会有损失“。
String不是关键字,是一个类名。
最好完全避免浮点数进行比较
float :有限 离散 舍入误差 大约 接近但不等于
float a = 0.1f;
double b = 1.0/10;
System.out.println(a==b);//false
float a1 = 123123123123f;
float a2 = a1+1;
System.out.println(a1==a2);//true
所有字符本质还是数字
String s1 = new String("hello world");
String s2 = new String("hello world");
System.out.println(s1==s2);//false 现在还不懂
String s3 = "hello world";
String s4 = "hello world";
System.out.println(s3==s4);//true
强制转换 (类型)变量名 高–>低
自动转换 低–>高
注意:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.转换过程可能出现内存溢出,或精度问题
//操作比较大的数时,注意溢出问题
// 数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-1474836480,计算时溢出
long total1 = money*years; //默认int,转换之前已经出问题了
long total2 = money*((long)years);//先把一个数转换为long
局部变量 必须声明和初始化值
实例变量:从属于对象;如果不自行初始化,默认值为0 0.0
布尔值:默认是false
除了基本类型 其余的默认值都是null
类变量 static
学习地址:B站UP@遇见狂神说



