2020年1月6日
摘要:     上篇文章介绍了java日志框架使用情况,以及xml配置文件的简单说明。但主要还是根据别人的博客整理一下知识结构,只能是纸上谈兵,本文通过junit测试框架来玩玩log4j。 1.junit+log4j测试环境准备 2.测试过程 项目代码结构如下 2.1 阅读全文
posted @ 2020-01-06 23:34 火枪 阅读(707) 评论(0) 推荐(0) 编辑
  2020年1月5日
摘要: 日志是代码调试、生产运维必备工具,基本所有软件都会有日志记录。 ###1.常用日志框架介绍 1.Logging jdk1.5自带日志工具类,位于java.util.logging; 2.Log4j 市场占有率最高的一个日志框架,注意2015/08/05这一天,Apache宣布停止维护了,用户需要切 阅读全文
posted @ 2020-01-05 15:05 火枪 阅读(346) 评论(0) 推荐(0) 编辑
  2020年1月2日
摘要: 1.java多线程编程少不了使用线程池,线程池相关的工具类所在jdk包,java.util.concurrent 2.使用示例 demo1 意外发生了,我发现我随手写的代码是垃圾,下面是运行结果 分析一下结果 前面是上班期间匆匆忙忙写的代码,周末回家定睛一看,代码中一个很低级的错,就是取余%符号写成 阅读全文
posted @ 2020-01-02 11:27 火枪 阅读(435) 评论(0) 推荐(0) 编辑
  2019年6月1日
摘要: 1.写一个memory leak的例子 执行了好半天,结果报错了 解决办法: 将成员变量写到方法printSomething()里面 执行结果 可见对于内存泄漏的问题可能来源了对象的作用域定义不合理,成员变量或全局变量的对象作用域比较宽,gc来不及回收容易造成内存泄漏 阅读全文
posted @ 2019-06-01 22:43 火枪 阅读(1656) 评论(0) 推荐(0) 编辑
摘要: 1.不能使用Integer作为并发锁 原因:synchronized(Integer)时,当值发生改变时,基本上每次锁住的都是不同的对象实例,想要保证线程安全,推荐使用AtomicInteger之类会更靠谱。使用System.identityHashCode(obj)可以得到根据物理地址算出的has 阅读全文
posted @ 2019-06-01 16:34 火枪 阅读(130) 评论(0) 推荐(0) 编辑
  2019年5月9日
摘要: Java多线程涉及的概念 在理解进程和线程概念之前首选要对并发有一定的感性认识,如果服务器同一时间内只能服务于一个客户端,其他客户端都再那里傻等的话,可见其性能的低下估计会被客户骂出翔来,因此并发编程应运而生,并发是网络编程中必须考虑的问题。实现并发的方式有多种:比如多进程、多线程、IO多路复用。 阅读全文
posted @ 2019-05-09 17:00 火枪 阅读(229) 评论(0) 推荐(0) 编辑
  2019年5月7日
摘要: Thread,整理一份多线程知识大纲,大写意 1.概念介绍 线程 进程 并发 2.基础知识介绍 Java线程类 Thread 静态方法&实例方法 Runnable Callable Future FutureTask 线程状态 线程优先级 内存模型 violate 3.访问共享资源 synchron 阅读全文
posted @ 2019-05-07 14:41 火枪 阅读(213) 评论(0) 推荐(0) 编辑
  2019年4月28日
摘要: Java有关多线程编程设计的类主要涉及两个包java.lang和java.util.concurrent两个包 java.lang包,主要是线程基础类 java.util包,主要是线程基础类和并发工具类 阅读全文
posted @ 2019-04-28 17:14 火枪 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 1. 基本概念 Callable,Callable和Runnable差不多,两者都是为那些其实例可能被另一个线程执行的类而设计的,最主要的差别在于Runnable不会 返回线程运算结果,Callable可以(假如线程需要返回运行结果)。 Future,是一个接口表示异步计算的结果,它提供了检查计算是 阅读全文
posted @ 2019-04-28 16:03 火枪 阅读(280) 评论(0) 推荐(0) 编辑
  2019年4月16日
摘要: 1.基本概念 Exchanger,从名字上理解就是交换。Exchanger用于在两个线程之间进行数据交换,注意也只能在两个线程之间进行数据交换。 线程会阻塞在Exchanger的exchange方法上,直到另外一个线程也到了同一个Exchanger的exchange方法时,二者进行数据交换, 然后两 阅读全文
posted @ 2019-04-16 00:51 火枪 阅读(251) 评论(0) 推荐(0) 编辑