摘要:java 日志体系(四)log4j 源码分析 logback、log4j2、jul 都是在 log4j 的基础上扩展的,其实现的逻辑都差不多,下面以 log4j 为例剖析一下日志框架的基本组件。 一、总体架构 log4j 使用如下: log.info 时调用的时序图如下: 在 log4j 的配置文件
阅读全文
摘要:java 日志体系(三)log4j从入门到详解 一、 "Log4j" 简介 在应用程序中添加日志记录总的来说基于三个目的: 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作; 跟踪代码运行时轨迹,作为日后审计的依据; 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的
阅读全文
摘要:Java 日志体系(二)jcl 和 slf4j 1. 《java 日志体系(一)统一日志》: 2. 《Java 日志体系(二)jcl 和 slf4j》: 前面介绍了 jdk 自带的 logging、log4j1、log4j2、logback 等实际的日志框架。对于开发者而言,每种日志都有不同的写法。
阅读全文
摘要:Java 字符编码(二)Java 中的编解码 java.nio.charset 包中提供了一套处理字符编码的工具类,主要有 Charset、CharsetDecoder、CharsetEncoder、CoderResult、StandardCharsets 这几个类。 Java 中的字符使用 Uni
阅读全文
摘要:Java 字符编码(三)Reader 中的编解码 我们知道 BufferedReader 可以将字节流转化为字符流,那它是如何编解码的呢? 一、Reader 1.1 Reader Reader 中有四个重载的 read 方法: 1.2 Reader 类图 。真正处理编解码的是 StreamDecod
阅读全文
摘要:Java 字符编码(一)Unicode 字符编码 Unicode() 是一个编码方案,说白了希望给世界上每一种文字系统的每一个字符,都分配一个唯一的整数,这样就不可能有任何冲突了。 一、字符编码规范 1.1 ASCII(American Standard Code for Information I
阅读全文
摘要:Java 正则表达式之捕获组 "1. Java 正则表达式基础" "2. Java 正则表达式之捕获组" 一、概述 1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部
阅读全文
摘要:JDK 之资源文件管理 __JDK 规范目录()__ 一、文件资源 用户目录,如 Linux 上 root 的用户目录为 /root 项目工作目录 二、类路径资源 三、网络资源 java.net 包下有几个核心的类: 通过 URLStreamHandlerFactory 获取 URLStreamHa
阅读全文
摘要:JDK 之 Java Bean 内省机制 __JDK 规范目录()__ JavaBean 是一种特殊的 Java 类,主要用于传递数据信息,这种 Java 类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 一、JavaBean 1.1 JavaBean 命名规则 1. 一个 JavaBe
阅读全文
摘要:Servlet 2.x 规范 sun 公司制订的一种基于 Java 技术的 WEB 服务器功能的组件规范。1997 年六月,Servlet 1.0 版本发行,最新版本 Servlet 4.0 处于研发状态。 所谓的 Servlet 容器,有时候也称作为 Servlet 引擎,作为 Web 服务器或应
阅读全文
摘要:Servlet 3.0 规范(二)注解驱动和异步请求 在 Servlet 3.0 时支持注解启动,不再需要 web.xml 配制文件。 一、Servlet 3.0 组件 Servlet 容器的组件大致可以分为以下几类: 二、注解驱动 1.1 Servlet 3.0 注解 Servlet 3.0 常用
阅读全文
摘要:JDK 之 NIO 2 WatchService、WatchKey(监控文件变化) __JDK 规范目录()__ 一、WatchService、WatchKey 使用 具体详见: 二、原理 实现 WatchService 接口 具体的实现,启动 Poller 线程 线程,轮询指定的目录 __(1)
阅读全文
摘要:Java数据结构和算法(一)树 前面讲到的链表、栈和队列都是一对一的线性结构,这节讲一对多的线性结构 树。「一对多」就是指一个元素只能有一个前驱,但可以有多个后继。 一、树的基本概念 __度(Degree)__ :节点拥有的子树数。树的度是树中各个节点度的最大值。 __节点__ :度为 0 的节点称
阅读全文
摘要:UnSafe 本文是 sun.misc.Unsafe 公共 API 的简要概述,及其一些有趣的用法。即使 Unsafe 对应用程序很有用,但(建议)不要使用它。 一、创建 Unsafe 实例 Unsafe 的构造器是私有的。它也有一个静态的 getUnsafe() 方法,但如果你直接调用 Unsaf
阅读全文
摘要:Java 日志体系 《java 日志和 SLF4J 随想》: 一、常用的日志组件 名称 | jar | 描述 | | log4j | log4j.jar | 早期常用日志组件 log4j2 | log4j.log4j api.log4j core.jar | apache 开发的一款 log4j 的
阅读全文
摘要:Java URL URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者FTP地址。 下面我们将介绍 Java 是如处理 URL 的。URL 可以分为如下几个部分。 protocol://host:port/path
阅读全文
摘要:Java 正则表达式 正则表达式:一种强大而灵活的文本处理工具。大部分编程语言、数据库、文本编辑器、开发环境都支持正则表达式。正则表达式通过一些规则可以匹配一类字符串。 首先介绍一款正则表达式测试工具: "RegexBuddy" 一、基本语法 (1) 普通字符 普通字符字母、数字、汉字、下划线、以及
阅读全文
摘要:Java 8 可重复注解与类型注解 Java 8 对注解处理提供了两点改进:可重复的注解及可用于类型的注解。 注解具体使用如下: Java 8 新特性 1. "Java 8 Lambda 表达式" 2. "Java 8 Stream API" 3. "Java 8 Optional 类深度解析" 4
阅读全文
摘要:Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称“默认方法”,默认方法使用用 default 关键字修饰。 接口默认方法的 "类优先" 原则 若一个接口中定义了一个默认方法,而另外一个父类或接口又定义了一个同名的方法时: 1. 选择父类中的
阅读全文