今天完成的事情:
理了下之前看的一些知识
明天计划的事情:
完成任务3
遇到的问题:
收获:
下载jar的版本类别说明
Apache Log4j 2 binary (tar.gz) 程序 linux系统
Apache Log4j 2 binary (zip) 程序 windows系统
Apache Log4j 2 source (tar.gz) 源码 linux系统
Apache Log4j 2 source (zip) 源码 windows系统
部分Java代码:
package com.coderdream.log4j;
import org.apache.log4j.Logger;
public class HelloLog4j {
private static Logger logger = Logger.getLogger(HelloLog4j.class);
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println("This is println message.");
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
}
配置文件log4j.properties:
#可以设置级别:debug>info>error
#debug:显示debug、info、error
#info:显示info、error
#error:只error
log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#样式为TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
Logger - 日志写出器,供程序员输出日志信息
Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
ConsoleAppender - 目的地为控制台的Appender
FileAppender - 目的地为文件的Appender
RollingFileAppender - 目的地为大小受限的文件的Appender
Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
PatternLayout - 用指定的pattern格式化logging request的Layout
日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG
参考资料:
log4j详解与实战http://www.iteye.com/topic/378077
反射和映射:
ORM 就是Object-Relation Mapping,就是对象映射到数据库
反射就是要得到类和方法本身,因为是在方法中得到类和方法的对象,所以被称为反射调用
你也可以在api中查看Class和Method等类
Class string = String.class;这行代码就是对String类的反射调用
string.getMethods()就是来获取String类中的所有的方法,并把方法组装成Method对象的数组返回
还有其他的一些方法你可以自己看api
突然想起来一些基础知识,觉得有点理不清楚了,再次看了看自己的笔记。对于有些基础的知识得常看看。
JAVA的三种类型集合:
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对。
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
对类成员变量可分两种分类:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!
JSON 值可以是:
评论