摘要:
1: Fork/join fork/join: fork是分叉的意思, join是合并的意思。 Fork/Join框架:是JAVA7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 Fokr/Join的适合场景:所处理的元素必须是独立 阅读全文
摘要:
1:lambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的内部类,匿名类。 2: lambda表达式配合Java8新特性Stream API可以将业务功能通过函数式编程简洁的实现. 3: lambda表达式语法: 一般语法: (Type1 param1, Type2 param2, ... 阅读全文
摘要:
IDEA 热部署: 1 : POM中加入devtools的依赖,就可以实现热部署 <dependency> 阅读全文
摘要:
集群和分布式架构中: session管理有三种方法: 1: Cookie: 将Session对象保存在Cookie,保存在浏览器端。浏览器发送请求的时候,会把整个session放在请求里一起发送到server端。 缺点:Cookie存储容量小; 传输数据量比较大; 浏览器不支持cookie; 2:S 阅读全文
摘要:
从Java8 引入的一个很有趣的特性是Optional类。Optional类主要解决的问题是臭名昭著的空指针异常(NullPointerException)。 一: 创建Optional对象: return user.map(u -> u.getUsername()) .map(name -> na 阅读全文
摘要:
线程池 阅读全文
摘要:
Object中对内置锁进行操作的一些方法: Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行. 内置锁使用起来非常方便,不需要显式的获取和释放,任何一个对象都能作为一把内置锁。使用内置锁能够解决大部分的同步场景。“任何一个对象都能作 阅读全文
摘要:
问题1: 什么是Re-entrant Lock 锁的acquire是per thread 的, 而不是per call的,也就是同一个线程再次申请已经获得的锁,直接成功返回。如果是非re-entrant的锁,一个线程试图获取已经获得的锁会死锁,因为当前线程会挂起,没有机会release锁 synch 阅读全文
摘要:
首先,一个问题:一个boolean成员变量,一个方法赋值,一个方法读值,多线程环境下,需要同步吗? 如果用同步的话,读也要用synchroized修饰,因为可见性的问题 需要同步,或者用volatile。boolean赋值和读值是原子的,但是依旧有可见性问题,否则也许读方法永远都不到最新的值。 Sy 阅读全文
摘要:
一:内存模型: 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的 阅读全文