随笔分类 - Java
摘要:JPA简介 JPA 即Java Persistence API。是一款持久层框架,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA的对象关系映射(ORM)模型是基于Hibernate。是一款面向对象的ORM框架,JPA不需要关心数据库字段,通过注解
阅读全文
摘要:简介 Optional是一个容器对象,可以包含也可以不包含非null值。Optional在Java 8中引入,目的是解决 NullPointerExceptions的问题。本质上,Optional是一个包装器类,其中包含对其他对象的引用。在这种情况下,对象只是指向内存位置的指针,并且也可以指向任何内
阅读全文
摘要:简介 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理。 流是从支持数据处理操作的源生成的元素序列。 特点 元素序列——就像集合一样,流也提供了一个接口,可以
阅读全文
摘要:特点 匿名:它不像普通的方法那样有一个明确的名称 函数:为Lambda函数不像方法那样属于某个特定的类。但和方法一样,Lambda有参数列表、函数主体、返回类型,还可能有可以抛出的异常列表。 传递:Lambda表达式可以作为参数传递给方法或存储在变量中。 简洁:无需像匿名类那样写很多模板代码。 组成
阅读全文
摘要:定义 函数式接口就是只定义一个抽象方法的接口,接口现在还可以拥有默认方法(即在类没有对方法进行实现时,其主体为方法提供默认实现的方法)。哪怕有很多默认方法,只要接口只定义了一个抽象方法,它就仍然是一个函数式接口。 @FunctionalInterface public interface MathO
阅读全文
摘要:方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们。 方法引用可以被看作仅仅调用特定方法的Lambda的一种快捷写法。它的基本思想是,如果一个Lambda代表的只是“直接调用这个方法”,那最好还是用名称来调用它,而不是去描述如何调用它。事实上,方法引用就是让你根据已有的方法实现来创
阅读全文
摘要:1、概述 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。 聚集(gather)写入Channel是指在写操作时将多个buffer的数据写入同一个Chann
阅读全文
摘要:1、概述 Java NIO中的Buffer用于和NIO Channel进行交互。数据是从通道读入缓冲区,从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。 所有Buffer都继承抽
阅读全文
摘要:1、概述 Java NIO Channel与Stream(流)相似但有些不同点 Channel既可以读也可以写,但是Stream通常是单方向的(读或者写) Channel可以异步读写 Channel总是从Buffer读取或写入 2、重要Channel 实现 FileChannel DatagramC
阅读全文
摘要:Java NIO教程 Java NIO Channel Java NIO Buffer Java NIO Buffer 分散和聚集 Java NIO Selector 多路复用器 Java NIO SelectionKey
阅读全文
摘要:CAS是什么 CAS是compare and swap的缩写中文翻译为比较并替换 我们都知道,在java语言之前,并发就已经广泛存在并在服务器领域得到了大量的应用。所以硬件厂商老早就在芯片中加入了大量直至并发操作的原语,从而在硬件层面提升效率。在intel的CPU中,使用cmpxchg指令。
阅读全文
摘要:什么是JMM 内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节 JMM(Java Memory Model)即Java内存模型 JMM JMM规定了所有的变量都存储在主内存(Main Memory)中。每个
阅读全文
摘要:volatile的作用 volatile是Java虚拟机提供的轻量级的同步机制。 可见行:被volatile修饰的属性在工作内存被修改后,会将值刷新至主内存,因此任何时刻,不同线程总能看到该变量的最新值,保证了可见性。 volatile修饰的属性不能保证原子性操作,即不保证原子性 防止指令重排 验证
阅读全文
摘要:锁分类 转自:https://tech.meituan.com/2018/11/15/java-lock.html
阅读全文
摘要:代理模式 代理模式为另一个对象提供一个替身或者占位符以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制对某对象的访问,被代理的对象可以是远程的对象,创建开销大的对象或者是需要安全控制的对象。 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。值得注意的是
阅读全文
摘要:进入idea > Setting
阅读全文
摘要:Thread的join方法 join() :Waits for this thread to die.等待此线程结束 join(long millis): Waits at most milliseconds for this thread to die. A timeout of 0 means
阅读全文
摘要:线程 线程是操作系统能够运算调度的最小单位,它被包含在进程中,是进程中的实际运做单位。 https://baike.baidu.com/item/%E7%BA%BF%E7%A8%8B/103101?fr=aladdin Java创建线程的方式 public class DemoThread exte
阅读全文
摘要:**面向对象是一种符合人类思维习惯的编程思想。**现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。 封装 封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的细节
阅读全文
摘要:进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
阅读全文