OnJava8学习笔记(二)

 

1. == 和 != 比较的是对象引用,equals()方法比较的是对象值。在自定义类中默认的equals()方法比较的是对象的引用,除非对equals()方法进行重写。

public class EqualsMethod {
   public static void main(String[] args) {
   Integer n1 = 47;
   Integer n2 = 47;
   System.out.println(n1.equals(n2)); //true
 }
}


class Value {
   int i;
}
public class EqualsMethod2 {
   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
 }
}

2.科学记数法 1.39e-43f  -> 1.39 × 10 -43 次方,Java中使用 doubleMath.E 表示自然对数。

3.Java没有运算符重载的特性,也没有 sizeof() 方法。

4.float double 转换为整数值时,小数位将被截断。 若你想对结果进行四舍五入,可以使用 java.lang.Math round() 方法。

5.在对charbyte short 类型的数值进行算术运算时,必须要进行显式的强制类型转换才能将结果重新赋值为原始类型。

6.在 Java 中,仅允许 for 循环在控制表达式中定义变量。

7.for-in 循环语法

    任何一个返回数组的方法都可以使用for-in循环语法来遍历元素。

public class ForInString {
 public static void main(String[] args) {
 for(char c: "An African Swallow".toCharArray())
 System.out.print(c + " ");
 }
}

  在 for-in 循环中使用 range() 方法:

import static onjava.Range.*;
public class ForInInt {
 public static void main(String[] args) {
     for(int i : range(10)) // 0..9
         System.out.print(i + " ");
     System.out.println();
     for(int i : range(5, 10)) // 5..9
         System.out.print(i + " ");
     System.out.println();
     for(int i : range(5, 20, 3)) // 5..20 step 3
         System.out.print(i + " ");
     System.out.println();
     for(int i : range(20, 5, -3)) // Count down
         System.out.print(i + " ");
     System.out.println();
 }
}

/*输出结果
    0 1 2 3 4 5 6 7 8 9
    5 6 7 8 9
    5 8 11 14 17
    20 17 14 11 8
*/

 range(start,stop,step)方法的取值范围是一个左闭右开区间,range(10)取值0~9,range(5,10)取值5~9,range(5,20,3)步长为3,取值为5 8 11 14 17,如果步长为负数则逆转方向。

8.带标签的breakcontinue

    标签是后面跟一个冒号的标识符,形如 lable1:

    对Java来说,唯一用到标签的地方是在循环语句之前。当 break 和 continue搭配标签一起使用时,它们会中断当前循环并跳转到标签所在的地方开始执行。

label1:
outer-iteration { 
 inner-iteration {
 // ...
 break; // [1] 
 // ...
 continue; // [2] 
 // ...
 continue label1; // [3] 
 // ...
 break label1; // [4] 
 } 
}

    [1] break 中断内部循环,并在外部循环直到结束;

    [2] continue 移回内部循环的起始处;

    [3] continue label1 同时中断外部和内部循环,然后继续从外部循环开始循环;

    [4] break label1 同时中断外部和内部循环,并且不重新进入循环。

    在Java中使用标签的唯一理由是有循环嵌套,而且想从多层嵌套中 break 或 continue。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值