Thinking in java-15 传值机制&&关系问题
来源:互联网 发布:python 模仿浏览器 编辑:程序博客网 时间:2024/06/18 05:06
1.Passs by value–值传递
package fqy.iss.thinking.operator;public class PassObject{ static void f(Letter l) { l.c = 'z'; } public static void main(String[] args) { Letter l1 = new Letter(); l1.c = 'a'; System.out.println(l1.c); f(l1); System.out.println(l1.c); }}class Letter{ char c;}//resultaz
Java中,函数传值方式是Pass-by-value 的方式进行的。传递给方法形参的只是变量的一份复制。上述例子中传递了一份对象的引用,函数作用域引用的值,所以结果是改变了引用对象的值(和C中的指针机制很像)。
2.== 与 equal()方法
这里有相关问题的Q&A.
举例:
public final class MyEqualityTest{ public static void main( String args[] ) { String s1 = new String( "Test" ); String s2 = new String( "Test" ); System.out.println( "\n1 - PRIMITIVES "); System.out.println( s1 == s2 ); // false System.out.println( s1.equals( s2 )); // true A a1 = new A(); A a2 = new A(); System.out.println( "\n2 - OBJECT TYPES / STATIC VARIABLE" ); System.out.println( a1 == a2 ); // false System.out.println( a1.s == a2.s ); // true System.out.println( a1.s.equals( a2.s ) ); // true B b1 = new B(); B b2 = new B(); System.out.println( "\n3 - OBJECT TYPES / NON-STATIC VARIABLE" ); System.out.println( b1 == b2 ); // false System.out.println( b1.getS() == b2.getS() ); // false System.out.println( b1.getS().equals( b2.getS() ) ); // true }}final class A{ // static public static String s; A() { this.s = new String( "aTest" ); }}final class B{ private String s; B() { this.s = new String( "aTest" ); } public String getS() { return s; }}
- ==,将产生的是boolean类型的比较结果;
- equal()是所有对象都存在的方法。
一般可以认为:
‘==’是数据内存地址的比较;
而 equal()是对象内容的比较。
阅读全文
0 0
- Thinking in java-15 传值机制&&关系问题
- Thinking in Java RTTI和反射机制
- Thinking in Java---异常处理机制
- Thinking in java-28 Reflection 反射机制
- Thinking in java吸血鬼数字问题
- Thinking in java 哲学家进食问题
- (Thinking in Java学习笔记)对象、类关系
- Thinking in Java [Java编程机制] 学习笔记 -- final 关键字
- Thinking in Java [Java编程机制] 学习笔记 -- List / ArrayList
- Thinking in Java [Java编程机制] 学习笔记 -- Priority Queue
- Thinking in JAVA之垃圾回收机制浅析
- Thinking in JAVA之垃圾回收机制浅析
- 《Thinking in Java》——垃圾回收机制
- [Java]Thinking in Java
- thinking in java笔记 15 泛型
- Thinking in Java笔记
- 《Thinking in Java》读书笔记
- Thinking in java(1)
- Linux Boot出现 an error occurred during the file system
- AV Foundation学习之(二)
- xib输入框输入汉字下移问题,亲测已解决
- (转)纵观国内外证券公司IT发展史
- git框架学习(keep update)
- Thinking in java-15 传值机制&&关系问题
- eclipse 查找接口实现类快捷键
- 3.Go语言数据类型
- Servlet
- (转)深度学习是经验主义新高峰,不是理性主义终结
- Alice and Bob
- (转)券商IT研发现状:一年最多花5亿 中小公司靠外包
- Python中 sys.argv[]的用法简明解释
- SDUT-1170 C语言实验——最值