前言
我们从接触java第一天,就是到 = 是赋值的意思,把等号右边结果的值,赋给等号左边的变量,那具体是怎样赋值呢?你有了解过吗?
= 1.0版本
大家都知道,java中有 8大基本类型,对于基本类型来说 = 就是直接赋值的
byte a = 1;
System.out.println("byte a = 1:" + a);
= 2.0版本
除开8大基本类型,对象类型 的数据 = 直接赋值的是 地址。
/**
* @Author: ycf
* @description:
* @Date: 2020/11/11 9:22
*/
public class ycfTest {
public static void main(String[] args) throws Exception {
User user = new User(19,"木易唐唐");
System.out.println("用户信息为:"+user);
}
}
class User{
int age;
String name;
public User(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在我们没有重写toString()方法时,直接打印user,命令台输出的是一个地址。
在User类中重写toString()
@Override
public String toString() {
return "User{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
此时打印结果才是我们输入的用户信息
= 3.0版本
对于 +=、-= 、=、/= 一个意思,只是运算符号不相同。
int a = 1, b = 0;
b += a;// 相当于 b = b + a;
System.out.println("b = " + b);
b -= a;// 相当于 b = b - a;
b *= a;// 相当于 b = b * a;
b /= a;// 相当于 b = b / a;
= 4.0版本
第一次看到这个代码,我自己是蒙逼的,这个是咋回事?废话不多说,先跑一遍代码再说。
String msg = "222";
if((msg = null) == null){
System.out.println("(msg = null) 等于 null" );
} else {
System.out.println("(msg = null) 不等于 null");
}
输出结果如下:
现在改变条件,在 if 里面让 msg = “333”
String msg = "222";
if((msg = "333") == null){
System.out.println("(msg = null) 等于 null" );
} else {
System.out.println("(msg = null) 不等于 null");
}
输出结果如下:
此时msg不为null了,那msg的值是哪个呢?很容易也想得到msg的值是 333 吧,于是我们可以得出结论 (msg = xxx) 的结果,就是 xxx 赋予的值。
小扩展
(msg = null) == null 经过修改,我们会经常来做文件流的读取,当文件读取行 lineTxt 为 null 时,就代表文件流已经读取完毕。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtFile), "GBK"));
String lineTxt = null;
while ((lineTxt = br.readLine()) != null) {
......