zoukankan      html  css  js  c++  java
  • 20145110 《Java程序设计》第八周学习总结

    20145110 《Java程序设计》第八周学习总结

    教材学习内容总结

    15.1日志

    15.1.1日志API简介

    • Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,,要取得Logger实例,必须使用Logger的静态方法getLogger()。
     import java.util.logging.*;
    
    public class LoggerDemo {
        public static void main(String[] args) {
            Logger logger = Logger.getLogger(LoggerDemo.class.getName());
            logger.log(Level.WARNING, "WARNING 讯息");
            logger.log(Level.INFO, "INFO 讯息");
            logger.log(Level.CONFIG, "CONFIG 讯息");
            logger.log(Level.FINE, "FINE 讯息");
        }
    }
    
    

    15.1.2指定日志层级

    • 在没有任何组态设定的情况下,默认取得的Logger实例,层级必须大于或等于Logger.GLOBAL_LOGGER_NAME名称空间Logger实例设定的Level.INFO,才可能输出信息。

    在java中负责日志输出的是Handler实例,Logger可以使用addHandler()新增handler实例,使用RomoveHandler移除实例,书中有一个程序范例,可以将目前Logger与新建的FileHandler层级设定Level.CONFIG,并使用addHandler()设定至Logger实例:

    import java.io.IOException;
            import java.util.logging.*;
    
    public class HandlerDemo {
        public static void main(String[] args) throws IOException {
        Logger logger = Logger.getLogger(HandlerDemo.class.getName());
        logger.setLevel(Level.CONFIG);
        FileHandler handler = new FileHandler("%h/config.log");
        handler.setLevel(Level.CONFIG);
        logger.addHandler(handler);
        logger.config("Logger 组装完成");
        }
    }
    
    import java.time.Instant;
            import java.util.logging.*;
    
    public class FormatterDemo {
        public static void main(String[] args) {
            Logger logger = Logger.getLogger(FormatterDemo.class.getName());
            logger.setLevel(Level.CONFIG);
            ConsoleHandler handler = new ConsoleHandler();
            handler.setLevel(Level.CONFIG);
            handler.setFormatter(new Formatter() {
                @Override
                public String format(LogRecord record) {
                    return "日志來自 " + record.getSourceClassName() + "."
                            + record.getSourceMethodName() + "
    "
                            + "	层级	: " + record.getLevel() + "
    "
                            + "	讯息	: " + record.getMessage() + "
    "
                            + "	时间	: "  + Instant.ofEpochMilli(record.getMillis())
                            + "
    ";
                }
            });
            logger.addHandler(handler);
            logger.config("自订 Formatter 讯息");
        }
    }
    

    15.1.5使用logging.Filter

    可以通过logging.properties来设定Logger组态,启动JVM时,指定java.util.logging.config.file系统属性为.propertiles名称。

    15.3规则表示式

    • 规则表达式简介:如果我想根据某个字符串或字符进行切割,可以使用String的split()方法,它会返回切割后各子字符串组成的String数组。就像下面的程序:
    import static java.lang.System.out;
    
    public class SplitDemo {
        public static void main(String[] args) {
            // 根据逗号切割
            for(String token : "Justin,Monica,Irene".split(",")) {
                out.println(token);
            }
            // 根据Orz切割
            for(String token : "JustinOrzMonicaOrzIrene".split("Orz")) {
                out.println(token);
            }
            // 根据Tab字元切割
            for(String token : "Justin	Monica	Irene".split("\t")) {
                out.println(token);
            }
        }
    } 
    

    JDK8API增强功能:
    1.如果我们有一组字符串,我们想要指定每个字符串之间以“,”进行分隔,现在,我们可以使用String新增的join()静态方法。
    2.对于数组操作,在JDK8中针对大型数组的平行化操作,在Arrays上新增了parallelPrefix(),ParallelSetall()与parallelSort()方法。

    本周代码托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/2 20/20
    第二周 300/500 1/3 18/38
    第三周 500/1000 1/4 22/60
    第四周 300/1300 1/5 30/90
    第五周 300/1600 1/6 30/160
    第六周 700/2300 2/7 30/190
    第七周 400/2700 2/9 30/220
    第八周 400/3100 2/11 30/250

    参考资料

  • 相关阅读:
    接口设计安全
    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解
    OpenSSL使用小结
    sql的三种去重
    关于if语句&&运算符先判断空异常
    关于数据库可为null的datetime 字段
    sql server去重
    asp.net updatepanel 局部更新后调用js
    级联 -- 逻辑
    关于滑动验证的思路构思
  • 原文地址:https://www.cnblogs.com/20145110tyc/p/5428237.html
Copyright © 2011-2022 走看看