操作符
来源:互联网 发布:unity3d棋牌游戏教程 编辑:程序博客网 时间:2024/05/20 18:44
1.赋值问题
赋值使用的操作符为“=”,它的意思是“取右边的值”,把它复制给左边。如:a=4;
但是对为对象“赋值”的时候,我们真正操作的是对对象的引用,即“将一个对象赋值给另外一个对象”,实际上是将“引用”从一个对象复制给另外一个对象。
假如c=d;那么c和d都指向原本只有d指向的那个对象。例“:
public class test1 {public static void main(String[] args) {test t1 = new test();test t2 = new test();t1.num = 10;t2.num = 20;System.out.println("t1.num:"+t1.num+","+"t2.num:"+t2.num);//println:t1.num:10,t2.num:20t1.num = t2.num;System.out.println("t1.num:"+t1.num+","+"t2.num:"+t2.num);//println:t1.num:20,t2.num:20t1.num = 30;System.out.println("t1.num:"+t1.num+","+"t2.num:"+t2.num);//println:t1.num:30,t2.num:20t1 = t2; // t1和t2指向了相同的对象System.out.println("t1.num:"+t1.num+","+"t2.num:"+t2.num);//println:t1.num:20,t2.num:20t1.num = 40;System.out.println("t1.num:"+t1.num+","+"t2.num:"+t2.num);//println:t1.num:40,t2.num:40}}class test {int num;}
2.对象的等价问题
public class test {public static void main(String[] args) {String a = "abc";//a引用的对象在常量池中String b = "abc";String c = new String("abc");//c引用的对象在堆内存中String e = new String("abc");System.out.println(a==b);//true System.out.println(c==e);//falseSystem.out.println(a==c);//falseSystem.out.println(a.equals(b));//trueSystem.out.println(c.equals(e));//true}}1.String a = "abc";在内存中查找abc对象,不存在,创建abc对象
2.String b = "abc",在内存中查找abc对象,存在,则指向该对象,因此a,b指向同一个对象
3.String c = new String("abc");在堆内存中创建abc对象
4.String e = new String("abc");不管堆内存是否有该对象,都创建此对象,故c,e不指向同一个对象
阅读全文
0 0
- 操作符
- 操作符
- ,操作符
- 操作符
- @操作符
- 操作符
- ++、--操作符
- 操作符
- -->操作符
- 操作符
- 操作符
- 操作符
- 操作符: | 、&、||、&&
- ++操作符
- 操作符
- 操作符
- 操作符
- 操作符
- 文件操作与模板 编程题#2: 实数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- Java学习11 集合与映射
- windows下补丁手动下载和安装
- IOPS的计算
- 2017-11-08-UPDATE-BY-ZengWenFeng.sql
- 操作符
- 计算圆和长方形的面积
- HDOJ--1052Tian Ji -- The Horse Racing 贪心!!!
- Sublime Text 3 利用 Snippet 创建 Getter 和 Setter
- Oracle:PL*SQL 编程(一)
- const关键字
- 零起点学算法94——今年暑假不AC(贪心)
- 计算长方形和圆的面积
- BOOST多线程