String是引用类型,所以用==的话比较的是String的内存引用地址,并不是比较的值,而equals方法比较的是值,所以判断一个字符串是否相等要用equals方法,而判断是否为null的话,null是值内存为空,所以要用==。
关于null和“”的区别,null为内存为空,“”为内容为空。
值传递:
方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。
引用传递:
也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;
在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。