java编程思想学习易错点笔记一

<pre name="code" class="java"><pre name="code" class="java">class Number { int i;}
public class Assignment { 
public static void main(String[] args) { 
Number n1 = new Number(); 
Number n2 = new Number(); 
n1.i = 9;
 n2.i = 47;
 System.out.println("1: n1.i: " + n1.i + ", n2.i: " + n2.i);
 n1 = n2; 
System.out.println("2: n1.i: " + n1.i + ", n2.i: " + n2.i);
 n1.i = 27;
 System.out.println("3: n1.i: " + n1.i + ", n2.i: " + n2.i); }} ///:~

 


1、上述程序结果为:9,47   47,47     27,27  因为当n1 = n2时已经改变了n1的指向(指向n2),所以后续的赋值都是只针对同一个对象。

//: c03:PassObject.java
// Passing objects to methods may not be what
// you're used to.

class Letter {
  char c;
}

public class PassObject {
  static void f(Letter y) {
    y.c = 'z';
  }
  public static void main(String[] args) {
    Letter x = new Letter();
    x.c = 'a';
    System.out.println("1: x.c: " + x.c);
    f(x);
    System.out.println("2: x.c: " + x.c);
  }

2、上述结果为a  c  这是java的方法调用中的别名问题,参数传递的是一个句柄,所以能够修改到x.c的值。


3、使用equals()方法比较两个对象的值是否相等时,若创建的类没有实现equals()方法,将无法实现比较。


    l >>>= 10;
    System.out.println(l);
    short s = -1;
    s >>>= 10;
    System.out.println(s);
    byte b = -1;
    b >>>= 10;
    System.out.println(b);
  }
} ///:~
4、移位符的使用:>>>=无符号的进行右移,无需考虑负数首位为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值