前言
我们从接触java第一天,就是到 = 是赋值的意思,把等号右边结果的值,赋给等号左边的变量,那具体是怎样赋值呢?你有了解过吗?
= 1.0版本
大家都知道,java中有 8大基本类型,对于基本类型来说 = 就是直接赋值的
byte a = 1;System.out.println("byte a = 1:" + a);
= 2.0版本
除开8大基本类型,对象类型 的数据 = 直接赋值的是 地址。
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()
@Overridepublic 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) {......