美文网首页
努力搬砖第四天

努力搬砖第四天

作者: 老猪敲码 | 来源:发表于2020-10-17 08:15 被阅读0次

    1.NullPointerException即空指针异常,俗称NPE。如果一个对象为null,调用其方法或访问其字段就会产生NullPointerException,这个异常通常是由JVM抛出的,例如:

    public class Main {

        public static void main(String[] args) {

            String s = null;

            System.out.println(s.toLowerCase());

        }

    }

    2.语句assert x >= 0;即为断言,断言条件x >= 0预期为true。如果计算结果为false,则断言失败,抛出AssertionError。

    使用assert语句时,还可以添加一个可选的断言消息:

    assert x >= 0 : "x must >= 0";

    这样,断言失败的时候,AssertionError会带上消息x must >= 0,更加便于调试。

    Java断言的特点是:断言失败时会抛出AssertionError,导致程序结束退出。因此,断言不能用于可恢复的程序错误,只应该用于开发和测试阶段。

    3.注解

    Java的注解可以分为三类:

    第一类是由编译器使用的注解,例如:

    @Override:让编译器检查该方法是否正确地实现了覆写;

    @SuppressWarnings:告诉编译器忽略此处代码产生的警告。

    这类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了。

    第二类是由工具处理.class文件使用的注解,比如有些工具会在加载class的时候,对class做动态修改,实现一些特殊的功能。这类注解会被编译进入.class文件,但加载结束后并不会存在于内存中。这类注解只被一些底层库使用,一般我们不必自己处理。

    第三类是在程序运行期能够读取的注解,它们在加载后一直存在于JVM中,这也是最常用的注解。例如,一个配置了@PostConstruct的方法会在调用构造方法后自动被调用(这是Java代码读取该注解实现的功能,JVM并不会识别该注解)。

    4.Java的注解可以分为三类:

    第一类是由编译器使用的注解,例如:

    @Override:让编译器检查该方法是否正确地实现了覆写;

    @SuppressWarnings:告诉编译器忽略此处代码产生的警告。

    这类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了。

    第二类是由工具处理.class文件使用的注解,比如有些工具会在加载class的时候,对class做动态修改,实现一些特殊的功能。这类注解会被编译进入.class文件,但加载结束后并不会存在于内存中。这类注解只被一些底层库使用,一般我们不必自己处理。

    第三类是在程序运行期能够读取的注解,它们在加载后一直存在于JVM中,这也是最常用的注解。例如,一个配置了@PostConstruct的方法会在调用构造方法后自动被调用(这是Java代码读取该注解实现的功能,JVM并不会识别该注解)。

    5.java的java.util包主要提供了以下三种类型的集合:

    List:一种有序列表的集合,例如,按索引排列的Student的List;

    Set:一种保证没有重复元素的集合,例如,所有无重复名称的Student的Set;

    Map:一种通过键值(key-value)查找的映射表集合,例如,根据Student的name查找对应Student的Map。

    6.通过Iterator遍历List永远是最高效的方式

    7.List和Array转换

    给toArray(T[])传入一个类型相同的Array,List内部自动把元素复制到传入的Array中

    相关文章

      网友评论

          本文标题:努力搬砖第四天

          本文链接:https://www.haomeiwen.com/subject/penapktx.html