thingking in java读书笔记3

来源:互联网 发布:怎样才能从网络装系统 编辑:程序博客网 时间:2024/05/13 18:13
控制流程
 1。给primitive赋值直接把内容从一个地方拷贝到另外一个地方,互不影响。而给object赋值,是拷贝object的reference,比如,
    两个对象c和d,c=d ,结果c和d都指向了原来只有d指向的对象,也就是说c和原来指向的对象脱离了。
 2. java不允许把数字当作boolean用,这和c不同。
 3.== 和!=比较的是两个对象的引用,即两个引用是否指向同一对象。equals()比较的是两个对象的实际内容是否相等。
   比如:Integer a = new Integer(9);
         Integer b = new Integer(9);
  a == b;  // false
  a != b;  //true
  a.equals(b); //true
   但是如果是自己定义的类:
         YourClass a = new YourClass();
  YourClass b = new YourClass();
  a.i == b.i == 9;
  a == b;  //false
  a != b;  //true
  a.equals(b);  //false
    因为equals()默认的行为是比较对象的reference,你必须重写(override)类的equsls()方法以比较内容。
    绝大多数java类库的类是实现了equals(),所以他们会比较对象的内容而不是引用。所以,自己定义的类最好
    也重写equsls()方法,以便得到正确的行为。
  4.break会忽略尚未执行的循环代码,并退出循环。continue会跳过尚未执行的代码,中断本次循环,进入下一次循环。
  5.在java里,唯一能放标签的地方就是循环语句的外面,而且必须直接放在循环语句的外面,他们之间不能有任何其他的东西。比如:
 label1:
 outer-iteration{
   inner-iteration{
     //....
     break; // 1
     //....
     continue; // 2
     //....
     break label1; //3
     //....
     continue label1; // 4
     //..........
      } 
    }
 上面的例子中,1退出内层循环,从外层循环开始继续下一个循环;2推出本次循环从内层循环开始执行下一次循环;3退出内层循环和外层循环,不会再次进入循环;
 4退到标签处,继续执行外层循环。
 6.switch语句会根据“整数表达式的值”,决定运行哪些代码。integral-seletor的值只能是int或char型的,字符串和浮点数等不能用switch.格式是:
 switch(integral-selector){
   case integral-value1 : statement; break;
   case integral-value2 : statement; break;
   ............
   default : statement;
 }
  7.将float和double转换成整数int时,它总是将后面的小数截掉。比如:int a = (int)0.7  //a = 0
  4.Math.random();的值域是[0,1).
原创粉丝点击