zoukankan      html  css  js  c++  java
  • Java查漏补缺-小细节

    1.类型转换问题

    public static void main(String args[]) {
            int num = 2147483647 ;
            num += 1L;//根据num的类型,先将1L转为int,然后再相加,故结果为-2147483648
            //long b = num + 1L;    // 根据b类型,将num升级为long类型,然后相加
    //        int b = Integer.MAX_VALUE;  2147483647
    //        int b = Integer.MIN_VALUE;  -2147483648
            System.out.println(num) ;
        }

     输出:-2147483648

    2.逻辑运算,与运算(前边失败的,后边不会执行),或运算(前边成功的,后边也不会执行)

    public static void main(String args[]) {
            boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;
            System.out.println(flag ? "mldn" : "yootk") ;
        }

     输出:yootk(10%2==1 为false,后边不会执行)

    public static void main(String args[]) {
            boolean flag = 10%2 == 1 || 10 / 3 == 0 || 1 / 0 == 0 ;
            System.out.println(flag ? "mldn" : "yootk") ;
        }

     输出:Exception in thread "main" java.lang.ArithmeticException: / by zero

    3.注解

    (1)@Override:结构注解,防止覆写父类方法出现错误,在编译期就能意识到;

    4.向下转型,需要用instanceof 判断实例是否为对应类的实例,防止隐患。

    5.自动装箱和拆箱,构造包装类时,不需要调构造方法,在1.9版本中构造方法置为已过期

    6.接口加强

      (1)接口主要包含静态变量和抽象方法

      (2)通常定义接口与实现类时,都需要先实现抽象类,然偶再实现具体实现类。以后接口增加新的公共方法,可以在抽象类中添加,不用每个实现类添加;

      (3)在1.8版本,对接口进行了加强,可以在接口中直接加普通方法,但需要用default修饰。该方法属于补救方法,最好使用(2)的设计

      (4)在1.8版本,还可以在接口中定义static方法,通过接口直接访问。

      (5)但注意,最好使用(2)中的方式定义。

  • 相关阅读:
    linux修改键盘按键
    linux添加一个已经存在用户到一个用户组
    centos-6更新yum源(163)
    Fedora 19安装以后的优化
    centos永久性修改系统时间显示格式
    smb.conf文件详解
    Centos上部署文件共享
    centos上mysql开启远程访问
    centos安装mysql后默认密码修改
    centos上mysql的一种安装方式
  • 原文地址:https://www.cnblogs.com/shuimuzhushui/p/12640010.html
Copyright © 2011-2022 走看看