1.概述 Stream 的原理:将要处理的元素看做一种流,流在管道中传输,并且可以在管道的节点上处理,包括过滤筛选、去重、排序、聚合等。元素流在管道中经过中间操作的处理,最后由最终操作得到前面处理的结果。集合有两种方式生成流: stream() ? 为集合创建串行流 parallelStream() ...
分类:
编程语言 时间:
2019-11-01 20:45:27
阅读次数:
97
一、作用 1. 多线程同步代码,保证方法或者代码块在运行时,同一时刻只有一个线程可以进入到临界区(互斥性) 2. 保证线程间共享变量的修改及时可见(可见性) a. 当线程获取锁时,线程的本地变量无效,需要从主存中获取共享变量的值 b. 线程释放锁时,线程的本地变量被刷新到主存中 3. 有效解决重排序 ...
分类:
其他好文 时间:
2019-10-27 15:09:02
阅读次数:
89
1-什么是happens-before? (1)happens-before是定义了 Java 多线程操作的有序性和可见性,防止了编译器重排序对程序结果的影响的一种规则。 (2)happens-before原则: 1)as-if-serial原则。(线程中的每个操作都在该线程后的操作之前执行) 2) ...
分类:
移动开发 时间:
2019-10-22 00:41:30
阅读次数:
142
Java 中关键字 synchronized 表示只有一个线程可以获取作用对象的锁,执行代码,阻塞其他线程。 作用: 确保线程互斥地访问同步代码 保证共享变量的修改能够及时可见 有效解决重排序问题 用法: 修饰普通方法 修饰静态方法 指定对象,修饰代码块 特点: 阻塞未获取到锁、竞争同一个对象锁的线 ...
分类:
编程语言 时间:
2019-10-16 19:33:29
阅读次数:
73
volatile关键字实现原理 1、volatile关键字的语义分析 作用:让其他线程能够马上感知到某个线程多某个变量的修改 保证可见性 对共享变量的修改,其他线程能够马上感知到 保证有序性 在重排序时保证volatile修饰的代码位置不变 实现原理 对于volatile修饰的变量会编译时会使用Lo ...
分类:
其他好文 时间:
2019-10-11 12:19:31
阅读次数:
86
ShardingSphere 理论 在中小企业需要分库分表的时候用的会比较多,因为它维护成本低,不需要额外增派人手;而且目前社区也还一直在开发和维护,还算是比较活跃。 但是中大型公司一般会选择选用 Mycat 这类 proxy 层方案,因为可能大公司系统和项目非常多,团队很大,人员充足,那么最好是专 ...
分类:
其他好文 时间:
2019-10-07 13:13:55
阅读次数:
86
一、原子性 原子性操作指相应的操作是单一不可分割的操作。例如,对int变量count执行count++d操作就不是原子性操作。因为count++实际上可以分解为3个操作:(1)读取变量count的当前值;(2)拿count的当前值和1做加法运算;(3)将加完后的值赋给count变量。 在多线程环境中 ...
分类:
编程语言 时间:
2019-09-23 12:08:35
阅读次数:
78
[TOC] 数组 array 解释器 遇到var声明的变量,会把var声明的变量提升到全局作用域下 1. isArray isArray() 判断当前数组是否为数组,返回值是true,则证明是数组 2. 转换方法 调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号 ...
分类:
编程语言 时间:
2019-09-19 21:52:17
阅读次数:
110
在互联网的时代中,网站建设其实是一个非常常见的事情了,几乎每一家企业都希望在互联网上,能够留下属于自己一个足迹,想要拥有一个可以展示自家产品的平台,但是在网站建设的过程中,真的有把每一个过程都做的很好嘛?是达到了自己想要的效果嘛?下面就为一些新手分享一下在网站建中比较常见的问题。??问题一:域名问题??域名的选择上,就是一个比较关键的问题,我们来看一下域名的权重排序,依次是(从高到低):.gov(
分类:
Web程序 时间:
2019-09-18 14:35:08
阅读次数:
119
对于内存模型的三大特性:有序性、原子性、可见性。 大家都知道volatile能保证可见性和有序性但是不能保证原子性,但是为什么呢? 一、原子性、有序性、可见性 1、原子性: (1)原子的意思代表着——“不可分”;(2)在整个操作过程中不会被线程调度器中断的操作,都可认为是原子性。原子性是拒绝多线程交 ...
分类:
其他好文 时间:
2019-09-13 17:40:51
阅读次数:
235