Java 笔记
1.LoggerFactory.getLogger 系统日志用法
引用的jar包:import org.slf4j.Logger; import org.slf4j.LoggerFactory;
解释:在日志输出的时候,可以打印出日志信息所在类
举例: Logger log=LoggerFactory.getLogger(AVC.class); 运行的时候打印AVC这个类的日志信息
2.ExecutorService线程池
引用的jar包:import java.util.concurrent.ExecutorService;
用法:
ExecutorService executorService =Executors.newFixedThreadPool(cpuNums * POOL_SIZE); //ExecutorService通常根据系统资源情况灵活定义线程池大小 excuService.submit(initCategoryListTask); //initCategoryListTask callable 接口的实现
3.Callable接口
引用的jar 包:import java.util.concurrent.Callable;
解释: 适用于多线程并发,并且每个线程有返回值 的情况下 实现的方法名叫call 注意jdk1.5版本之后才可用
参考:http://www.cnblogs.com/whgw/archive/2011/09/28/2194760.html
4.CompletionService 批处理任务
引用的jar包:import java.util.concurrent.CompletionService;
解释:
CompletionService采取的是BlockingQueue<Future<V>>无界队列来管理Future。则 有一个线程执行完毕把返回结果放到BlockingQueue<Future<V>>里面。就可以通过 completionServcie.take().get()取出结果。
take 方获取并移除表示下一个已完成任务的 Future,如果目前不存在这样的任务,则等待。<如果需要用到返回值建议用take>
poll 获取并移除表示下一个已完成任务的 Future,如果不存在这样的任务,则返回null。
5.super
super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法。
6. throws Exception 程序中 出现异常 不会捕获 继续往下执行
public Object call() throws Exception {}
7.
拓展:Eclipse 快捷键 ctrl 鼠标放到方法名上可跟踪此方法的具体实现