随笔分类 -  Java

Logback中%X的使用
摘要:1. 参考资料 "https://gist.github.com/logogin/ff44c254f655340b653c" "http://www.cnblogs.com/zhudongchang/p/6861375.html" 2. 环境 Java: jdk1.8.0_144 Logback: 阅读全文
posted @ 2018-11-01 01:59 hiv 阅读(14648) 评论(0) 推荐(1)
使用CompletableFuture+ExecutorService+Logback的多线程测试
摘要:1. 环境 Java: jdk1.8.0_144 2. 背景 Java多线程执行任务时,Logback输出的主线程和各个子线程的业务日志需要区分时,可以根据线程池和执行的线程来区分,但若要把它们联系起来只能根据时间线,既麻烦又无法保证准确性。 org.slf4j.MDC类提供了一个极好的解决方案,它 阅读全文
posted @ 2018-10-27 23:16 hiv 阅读(2615) 评论(0) 推荐(0)
Spring Boot与Spring Session集成
摘要:1. 参考资料 "https://docs.spring.io/spring session/docs/current/reference/html5/guides/boot redis.html" "https://docs.spring.io/spring boot/docs/2.0.2.REL 阅读全文
posted @ 2018-06-20 17:22 hiv 阅读(950) 评论(0) 推荐(0)
Java 8中Collection转为Map的方法
摘要:Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解。 Method | Return Type | groupingBy | partitioningBy | toMap | 1. 环境 Jav 阅读全文
posted @ 2018-06-08 16:02 hiv 阅读(2476) 评论(0) 推荐(0)
记一次OutOfMemory定位过程-续
摘要:在前文《 "记一次OutOfMemory定位过程" 》完成时最终也没有定位到ECS 中JVM Heap size无法控制的原因,今天再次尝试终于有了一些线索,翻查了ECS的部署脚本发现了 参数,根据 "Amazon Elastic Container Service任务定义参数" 的定义,它对应的是 阅读全文
posted @ 2018-06-07 20:30 hiv 阅读(1104) 评论(0) 推荐(0)
记一次OutOfMemory定位过程
摘要:背景 最近有个项目部署到了AWS,部署方案是ECS+Docker+Java | Launch type | CPU Units | Memory | |: |: :| :| | FARGATE | 1024 | 4G | 运行后发现程序表现不符合预期——每当任务繁忙时大量的task会被关闭并启动新的 阅读全文
posted @ 2018-05-31 18:09 hiv 阅读(852) 评论(0) 推荐(0)
Java 8的Lambda学习
摘要:参考资料:https://www.dotnetperls.com/lambda-java Lambdas用于创建函数对象。通过它们,我们可以在其它方法内部指定方法,甚至可以把方法做为参数传递给其它方法。Lambda需要有固定的定义,用以决定它的输入参数和返回值,例如Supplier、Consumer 阅读全文
posted @ 2018-01-05 14:06 hiv 阅读(221) 评论(0) 推荐(0)
记一个低级错误
摘要:Java: jdk1.8.0_144 做测试时犯下了一个极其低级的错误,记录下来以警示自己。原计划测试线程池运算的时间和预期值,代码如下: 最终结果list的size总是不如预期,错误如下: 猜测一:ExecutorService丢失任务,导致少数thread未得到执行机会 猜测二:Executor 阅读全文
posted @ 2017-12-06 15:18 hiv 阅读(236) 评论(0) 推荐(0)
Java多线程系列十——BlockingQueue
摘要:参考资料:http://ifeve.com/java-synchronousqueue/http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.htmlhttp://ifeve.com/java-blocking-queue/ Blocki 阅读全文
posted @ 2017-09-17 17:41 hiv 阅读(397) 评论(0) 推荐(0)
Java多线程系列九——Atomic类
摘要:参考资料:https://fangjian0423.github.io/2016/03/16/java-AtomicInteger-analysis/http://www.cnblogs.com/549294286/p/3766717.html 最近面试遇到一道编程题,要求两个线程交替打印[0,10 阅读全文
posted @ 2017-09-17 00:39 hiv 阅读(331) 评论(0) 推荐(0)
基于dubbo2.5.5+zookeeper3.4.9的服务搭建
摘要:参考资料:https://segmentfault.com/a/1190000009568509https://segmentfault.com/a/1190000004654903 0. 环境 Java: jdk1.8.0_144 OS: Windows 10(宿主机192.168.1.105)/ 阅读全文
posted @ 2017-09-14 17:02 hiv 阅读(457) 评论(0) 推荐(0)
设计模式之观察者模式(Observer pattern)
摘要:最近参加了一次面试,其中笔试题有一道编程题,在更换掉试题的描述场景后,大意如下: 上课铃声响起,学生A/B/C/D进入教室;下课铃声响起,学生A/B/C/D离开教室。 要求使用设计模式的思想完成铃与学生两个类的解耦并画出UML类图。 看到这道题之后自己第一时间便想到了装饰器模式,定义一个装饰类继承铃 阅读全文
posted @ 2017-08-27 18:01 hiv 阅读(385) 评论(0) 推荐(0)
Java使用动态代理实现AOP
摘要:参考资料: http://www.importnew.com/15420.htmlhttp://www.cnblogs.com/techyc/p/3455950.html Spring是借助了动态代理(JDK dynamic proxy)和CGlib两种技术实现AOP的,本文将学习前人的例子使用动态 阅读全文
posted @ 2017-08-20 00:22 hiv 阅读(480) 评论(0) 推荐(0)
Java多线程系列八——volatile和ThreadLocal
摘要:参考资料: http://ifeve.com/java-memory-model-4/ http://www.infoq.com/cn/articles/java-memory-model-1 http://wuchong.me/blog/2014/08/28/how-to-correctly-wr 阅读全文
posted @ 2017-07-08 00:04 hiv 阅读(2900) 评论(0) 推荐(1)
Java多线程系列七——ExecutorService
摘要:java.util.concurrent.ExecutorService接口提供了许多线程管理的方法 有了以上方法,便可以基于此接口实现线程池的各种功能(例如java.util.concurrent.ThreadPoolExecutor/java.util.concurrent.ScheduledT 阅读全文
posted @ 2017-07-08 00:02 hiv 阅读(473) 评论(0) 推荐(0)
Java多线程系列六——Map实现类
摘要:参考资料: https://crunchify.com/hashmap-vs-concurrenthashmap-vs-synchronizedmap-how-a-hashmap-can-be-synchronized-in-java/ https://stackoverflow.com/quest 阅读全文
posted @ 2017-07-08 00:00 hiv 阅读(1306) 评论(0) 推荐(0)
Java多线程系列五——列表类
摘要:参考资料: http://xxgblog.com/2016/04/02/traverse-list-thread-safe/ 一些列表类及其特性 1. 线程安全的列表类并不意味着调用它的代码就一定线程安全 2. 只有CopyOnWriteArrayList能支持在遍历时修改列表元素 以下代码模拟多线 阅读全文
posted @ 2017-07-07 23:59 hiv 阅读(1487) 评论(0) 推荐(0)
Java多线程系列四——控制线程执行顺序
摘要:假设有线程1/线程2/线程3,线程3必须在线程1/线程2执行完成之后开始执行,有两种方式可实现 Thread类的join方法:使宿主线程阻塞指定时间或者直到寄生线程执行完毕 CountDownLatch类:指定计数器,当计数器清零即取消阻塞 阅读全文
posted @ 2017-07-07 23:57 hiv 阅读(13786) 评论(0) 推荐(0)
Java多线程系列三——实现线程同步的方法
摘要:两种实现线程同步的方法 下文用三种不同的方式实现生产者/消费者模型 synchronized结合wait/notify/notifyAll ReentrantLock结合Condition BlockingQueue(内部仍然采用ReentrantLock实现) 阅读全文
posted @ 2017-07-07 23:56 hiv 阅读(583) 评论(0) 推荐(0)
Java多线程系列二——Thread类的方法
摘要:Thread实现Runnable接口并实现了大量实用的方法 public static native void yield(); 此方法释放CPU,但并不释放已获得的锁,其它就绪的线程将可能得到执行机会,它自己也有可能再次得到执行机会 public static native void sleep( 阅读全文
posted @ 2017-07-07 23:55 hiv 阅读(1187) 评论(0) 推荐(0)