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)中的方式定义。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16203.html