简单回顾门面模式slf4j是门面模式的典型应用,所谓门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为:门面模式的核心为Facade即门面对象,门面对象核心为几个点:知道所有子角色的功能和责任将客户端发来的请求委派到子系统中,没有实际业务逻辑不参与子系统内业务逻辑的实现 我们为什么要使用slf4j举个例子:我们自己的系统中使用了logback这个日...
原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.htmlcommon-loggingcommon-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-logging,通常都是配合着log4j来...
上一篇文章中, 讲了Java常用的日志库以及之间的关系,现在来说说我们在项目中怎么使用日志库。1. 总是使用Log Facade,而不是具体Log Implementation正如之前所说的,使用 Log Facade 可以方便的切换具体的日志实现。而且,如果依赖多个项目,使用了不同的Log Facade,还可以方便的通过 Adapter 转接到同一个实现上。如果依赖项目使用了多个不同的日志实现,就麻烦的多了。具体来说,现在推荐使用 Log4j-API 或者 SLF4j,不推荐继续...
文本主要介绍一下slf4j+logback在java工程中的配置,面向的读者是已经对slf4j+logback有一定了解的同学,不了解的同学,请看文章末尾的相关链接。以后会写一篇介绍slf4j框架的文章,其中会说明logback与之的关系。下面咱们进入正题。一、基于maven的slf4j+logback pom.xml配置<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.10</version></dependency><dependency><groupId>ch.qos.logb...
探索Java的日志世界本文的思维导图一、主题打开日志的大门,探索的Java日志世界二、目标了解常用的日志框架掌握日志框架的选择和使用以及开发规范了解日志框架中的一些设计思想三、内容1、日志及日志框架简介1.1 、日志简介1.1.1 、 什么是日志?1)基本字义是指工作日志 ,详细介绍一个过程和经历的记录。 日志(汉语词汇)2)网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使...
log4j的使用,Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务。可以再Apache官网下载得到。 我们下载log4j,j就是java的意思,还有其他的平台如PHP .NET 选择1.2.17版本,下载后解压缩首先建立项目,建立log4j.properties文件 log4j.propertieslog4j.rootLogger=DEBUG, Console ,File #Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.a...
java常用日志框架关系Log4j 2与Log4j 1发生了很大的变化,Log4j 2不兼容Log4j 1。Logback必须配合Slf4j使用。由于Logback和Slf4j是同一个作者,其兼容性不言而喻。比较常用的组合使用方式是Slf4j与Logback组合使用,Commons Logging与Log4j组合使用。 项目中选择日志框架选择如果是在一个新的项目中建议使用Slf4j与Logback组合,这样有如下的几个优点。Slf4j实现机制决定Slf4j限制较少,使用范围更广。由于Slf4j在编译期间,静态绑...
第六章 接口浅谈6.1 一个简单接口的例子在接口中只能包含抽象的方法和常量,不能有变量、初始化块和构造函数 接口中的方法都是抽象类,并没有方法具体的实现。接口中的方法必须由接口的实现类来实现。6.2 接口的声明interface接口定义分为接口的声明和接口体。其中,接口体有常量定义和方法定义两部分组成。定义接口的基本格式:[修饰符] interface 接口名 [extends 父接口名列表]{[public][static][final] 常量[public][abstract...
Java 日志体系(二)jcl 和 slf4j《java 日志体系(一)统一日志》:https://www.cnblogs.com/binarylei/p/9828166.html《Java 日志体系(二)jcl 和 slf4j》:https://www.cnblogs.com/binarylei/p/10781582.html前面介绍了 jdk 自带的 logging、log4j1、log4j2、logback 等实际的日志框架。对于开发者而言,每种日志都有不同的写法。如果我们以实际的日志框架来进行编写,代码就限制死了,之后就很难再更换日志系统,很难做到无缝...
Rule 1. 【强制】应用中不可直接使用日志库(Log4j、Logback)中的API,而应使用日志框架SLF4J中的API
使用门面模式的日志框架,有利于维护各个类的日志处理方式统一。import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;private?static?Logger?logger?=?LoggerFactory.getLogger(Foo.class);Rule 2. 【推荐】对不确定会否输出的日志,采用占位符或条件判断//WRONG
logger.debug("Processing?trade?with?id:?"?+?id?+?"?sym...
Date类
Date类的概念与作用
Date类表示特定的瞬间,精确到毫秒。
1秒 = 1000 毫秒
时间原点(0毫秒):1970年1月1日 0:0:0(英国格林尼治天文台时间)
而因为中国属于东八区,故时间原点应在此基础上加上八个小时。
输出时间原点public class Demo01Date {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}
毫秒值与时间换算
1天 = 24小时 * 60分钟 *60秒 * 1000毫秒 = 86400000...
第三章 这些算法很有用
3.3 查找
1.顺序查找
从第一个开始逐个比较,知道找出与给定关键字相同的数为止。
2.二分查找
二分查找是一种效率较高的方法。
*二分查找一定要在排序后进行
*通过不断找中点进行判断待找的数字在左边还是右边
3.4 Java工具类中算法的实现
对于前面的一些算法,Java提供了相应的API供用户使用。
方法:(1)导入java.util下的包中的类
eg. import java.util.Arrays
...
第一章 Java基础
1.1
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言
1.2成员
Java SE(标准版)
Java EE(企业版)
Java ME(微型版)
1.3 Java特点
简单性:没有指针、预处理器
面向对象性
分布式与安全性
与平台无关性:在任何硬件平台上保持一致
解释和编译特性
多线程
动态执行
自动废区回收性
丰富的API文档和类库
1.4 JDK的安装
安装包
*环境变量的配置*path 查找JDK工具*classpath 查找类文件
*JDK编译和...
例4.1 在主函数中调用其他函数
public class Demo4_1 { public static void main(String[] args) { printstar(); print_message(); printstar(); } private static void print_message() { System.out.println("Welcome to java!"); } private static void printstar() { //输出30个"*" System.out.println("******************************"); }}
例4.2 调用函...
缓冲流
缓冲流的基本原理,是在创建对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
字节缓冲流
字节缓冲输出流
java.io.BufferedOutputStream extends OutputStream
继承其父类的共性成员方法:
- public void close():关闭此输出流并释放与此流相关联的任何系统资源
- public void flush():刷新此输出流并强制任何缓冲的输出字节被写出
- public void write(byte[] ...