每日知识点20191107

java

  • Exception#fillInStackTrace:将当前调用栈信息填入到原来异常对象,相当于更新最新的抛出点(catch异常后又抛出的点).

  • try-finally某些情况下会吃掉抛出的异常.


    try {
        throw new RuntimeException();
    } finally {
        return;
    }
  • 覆盖方法时,只能抛出在基类方法的异常说明里列出的那些异常或其子类或选择不抛出,但是此限制对构造器不起作用,派生类构造器可以抛出任何异常,只需要在异常说明中包含基类构造器的异常说明.

  • Collections.nCopies能添加新元素,Collections.fill只能替换元素,无法添加新元素.

  • 通配符代表着持有具有某种具体类型的同构集合.

  • 下面的代码摘抄自编程思想P550

    public class TestS {

        /**
         * 标准输入、输出和错误IO流进行重定向
         * 一开始只有in.out中有数据,而test.out中是空内容,执行完程序后,test.out中的数据和in.out是一致的
         */
        public static void main(String[] args) throws IOException {
            PrintStream console = System.out;
            BufferedInputStream in = new BufferedInputStream(new FileInputStream("in.out"));
            PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("test.out")));
            System.setIn(in);//默认是从控制台读取数据,但是这里进行了重定向,于是从in.out中读取数据
            System.setOut(out);//默认是将数据写入到控制台,但是这里进行了重定向,于是写入到test.out中
            System.setErr(out);//同上

            //默认情况下是从控制台读取数据,然而这里是读取in.out文件中的数据
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String s ;
            while((s = br.readLine()) != null) {
                System.out.println(s);
            }
            out.close();
            System.setOut(console);//切换到默认情况下
        }

    }

  • 容错:发生故障时,如何让系统继续运行.

  • 高可用:系统中断时,如何尽快恢复.

  • 灾备:系统毁灭时,如何抢救数据.

  • TestA.class.isAssignableFrom(TestB.class):TestA与TestB是同一个类类型或TestA是TestB的父类或TestA是TestB的父接口.

  • java中采用高位优先(大端模式)进行存储字节数据,也就是高位存储在低地址,低位存储在高地址上.

上一篇:CI框架自定义工具函数


下一篇:ansible常用模块知识汇总(一)