????demo??PassObject.java

package javabase.flowcontrol;

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("before:x.c = " + x.c);
  f(x);
  System.out.println("after:x.c = " + x.c);
 }
}
/*????????
before:x.c = a
after:x.c = z
*/

?????????????????????????????????Think In Java??????”????????”

????????????????????

????++??--????++/--??????????????????++/--?????????????

????==??equals??

???????2???????????????????equals????????????????==

????????????????????????/???????????????==

????demo??EqualsTest.java

package javabase.flowcontrol;

class ValueInt{
 int id;
}
class ValueString{
 String id;
 @Override
 public boolean equals(Object obj) {
  boolean instanceFlag;
  instanceFlag = obj instanceof ValueString;
  if(!instanceFlag)
   return super.equals(obj);
  else{
   ValueString vTemp = (ValueString)obj;
   if(vTemp.id.equals(this.id)){
    return true;
   }
  return false;
  }
 }
}
public class EqualsTest {
 /**
  * ==????????equals??????
  */
 public static void main(String[] args) {
  //????????????
  int i1 = 100;
  int i2 = 100;
  System.out.println("i1 == i2 : " + (i1 == i2));
  //????
  Integer n1 = new Integer(250);
  Integer n2 = new Integer(250);
  System.out.println("n1 == n2 : " + (n1 == n2));
  System.out.println("n1 equals n2 : " + n1.equals(n2));
  //????????
  ValueInt vInt1 = new ValueInt();
  ValueInt vInt2 = new ValueInt();
  vInt1.id = vInt2.id = 32;
  System.out.println("vInt1 == vInt2 : " + (vInt1 == vInt2));
  System.out.println("vInt1 equals vInt2 : " + vInt1.equals(vInt2));
  ValueString vString1 = new ValueString();
  ValueString vString2 = new ValueString();
  vString1.id = vString2.id = "?????";
  System.out.println("vString1 == vString2 : " + (vString1 == vString2));
  System.out.println("vString1 equals vString2 : " + vString1.equals(vString2));
  //String ?????????????????String????????????
 
 }
}
/*????????
i1 == i2 : true
n1 == n2 : false
n1 equals n2 : true
vInt1 == vInt2 : false
vInt1 equals vInt2 : false //???????equals??????????2???????????
vString1 == vString2 : false
vString1 equals vString2 : true //??д??????equals?????????
*/

???????????????&&??||??!

???????????????????????????????????????”??·”???

????test(1) && test(2) && test(3) //????ж????????????test????????ж??????????

????test(1) || test(2) || test(3)  //????ж????????????test????????ж??????????

??????λ????????λ??(&)??λ??(|)??λ??(~)??

?????з???λ????(<<):??λ??0

?????з???λ????(>>):???????????λ??0?????????????λ??1

?????????λ????(<<<):??????????λ?????0

?????????λ????(>>>):??????????λ?????0

?????????char??byte??short?????????????λ????????????λ????????????????int?????

?????????????????int?????????λ???????????е?5λ??????(int?????2??5?η?)