日常问题
renjingzhan
这个作者很懒,什么都没留下…
展开
-
关于java8 stream排序sort中comparing和thenComparing的一个小问题
List<Category> result = categories.stream().sorted( Comparator.comparing(Category ::getUseCount,(c1,c2) -> {return c2.compareTo(c1);}) .thenComparing(Category::getUpdateTime,(c1,c2...原创 2019-06-13 13:34:54 · 6598 阅读 · 2 评论 -
关于spring中bean的生命周期的理解
一、BeanFactory1.当调用者通过getBean(beanName)向容器请求Bean时,如果容器注册了org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor接口,在实例bean之前,将调用该接口的postProcessBeforeInstantiation()方法。实例...原创 2019-06-17 09:55:03 · 308 阅读 · 1 评论 -
java关键字volatile
volatile两大作用1、保证内存可见性2、防止指令重排此外需注意volatile并不保证操作的原子性。(一)内存可见性1、概念JVM内存模型:主内存和线程独立的工作内存Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了...原创 2019-06-18 17:27:23 · 117 阅读 · 0 评论 -
java中原子操作理解
所谓原子操作,就是“不可中断的一个或一系列操作”。在确认一个操作是原子的情况下,在多线程环境里,我们可以避免仅仅为保护这个操作在外围加上性能昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。Java中有哪些原子操作呢?查询资料后我总结出了以下几个:1、原始类型:原始类型(long和double的赋值操作在32位操作系统上是非原子操作)的简单读取、写入操作(i++是非原子操作)。2、vol...原创 2019-06-18 19:05:52 · 585 阅读 · 0 评论 -
关于hessian4.0版本之前的客户端连接超时问题处理
场景:公司用java客户端和C#服务端实现hessian通信,但是如果数据过大会存在客户端连接超时情况。hessian4.0以及之后版本在HessianProxyFactory中提供了setConnectionTimeout方法来设置超时时间。之前版本没有提供,可以这样解决:public class MyHessianProxyFactory extends HessianProxyFa...原创 2019-06-24 17:33:04 · 569 阅读 · 0 评论