Thinking in java笔记之控制程序流

来源:互联网 发布:虎牙直播 知乎 编辑:程序博客网 时间:2024/05/18 02:41

控制程序流
1. 打印输出
 可用相应数据类型(基本类型)的打印语句打印字符串和数字
 如:
 int i = 10;
 float f = 10.9f;
 printInt("Integer:", i);
 printFloat("Float:", f);

 Random rand = new Random();
 int i;
 double d;
 long l;

 i = rand.NextInt();
 d = rand.NextDouble();
 l = rand.NextLong();

2. Regular expression
 正则表达式是作用通用术语来描述字符串的一各方法。
 要表达一个数可能有也可能性没有负号,可以在负号后面跟一个问号:
 -?

 要表示一个整数,你可以描述其具有一位或多位数字。在正则表达式中,一个数位用
 '/d'

 可用()将表达式分组。
 如:
 i > j is (true | false)
 这里边的"|"表示逻辑与。是说这个字符串不是true 就是false

 对于其他的字符,只要不是正则表达式专有的特殊字符,都要求精确匹配。

 但在Java中的字符串中,必须转义。
 如 j = -?/d+ 在Java中就是j = -?//d+
    j + k = -?/d 在Java中就是j /+ k = -?//d

3. 字符串比较必须用equals()方法

4. equals()方法比较的是引用。
   例如:
   clsaa Value {
       int i;
   }

   public class Test {
  public static void main(String[] args) {
   Value v1 = new Value();
   Value v2 = new Value();

   v1.i = v2.i = 100;

   System.out.println(v1.equals(v2));
  }
   }

   这时结果就是false。要想得到我们想要的比较方法,只能在新类中重载equals()方法.

5. 逻辑运算符只能用于布尔值。

6. 短路现象。
 如: if(a && b && c)只要有一个值是false则剩下的表达式不被判断。

7. 移位操作符只能处理整数类型。
 "<<"左移操作符:将操作符左边的运算对象向左移动操作符右侧指定的位数,在低位补0;
 ">>"有符号右移操作符:将操作符左边的运算对象向右移动操作符右侧指定的位数,若符号为正,则在高位插入0,否则插入1;
 ">>>"无符号右移操作符:无论正负,都在高位插入0。

8. 对char, byte, short进行移位处理时,在移位前会自动转换成int,结果也是int。
 右侧的操作数只能是其二进制中的低5位。这是为了防止移出int的范围。
 如果是long,则右侧操作数为其二进制中的低6位.

9. 在对byte, short进行无符号右移赋值运算时,可能得到的值不对。因为它是先转成int,再移位,再截断,最后转回自己的类型。
 这样得到的结果可能是-1。

10.可以把任何基本数据类型转换成别的基本类型,但布尔型除外。

11.对基本数据类型执行算术或按位运算时,只要比int波折都会转换成int。如要将其给小类型就要类型转换。

12.条件判断中的表达式只能是逻辑表达式。

13.标签和break, continue
 label1:
 outer-iteration {
  inner-iteration {
   break; //1

   continue; //2

   continue lable1; //3

   break label1; //4
  }
 }

 1: break中断内部循环,回到外部循环;
 2:移回内部循环;
 3:中断内部循环和外部循环,转到label1处,然后继续循环,只是是从外部循环重新开始;
 4:和3一样,只是不再执行循环。

 这样的组合应用可以用于退出整个循环而不退出方法。

14.switch(integral-selector)中的只能用int(short, byte)和char类型。

15.Math.random()中输出的范围是[0, 1)。

 


 

原创粉丝点击