Toggle navigation
Honson Blog
Home
About
Tags
Honson Blog
一生想做浪漫极客
Java多线程-Callable和Future
java Callable和Future使用
Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到...
Posted by Honson on February 11, 2019
java8流编程
jdk8新增的流编程
java8流编程 概念 Stream 不是 集合元素,也不是数据结构,它相当于一个 高级版本的 Iterator,不可以重复遍历里面的数据,像水一样,流过了就一去不复返。它和普通的 Iterator 不同的是,它可以并行遍历,普通的 Iterator 只能是串行,在一个线程中执行。 内部迭代和外部迭代 使用for等进行迭代我们叫做外部迭代,使用stream流迭代叫做内部迭代,内部迭代有什么...
Posted by Honson on January 9, 2019
java8流的操作机制
java8
#### java8流的操作机制 ##### 特点 所有操作是链式调用, 一个元素只迭代一次 每一个中间操作返回一个新的流. 流里面有一个属性sourceStage, 指向同一个 地方,就是Head Head->nextStage->nextStage->… -> null 有状态操作会把无状态操作阶段,单独处理 并行环境下, 有状态...
Posted by Honson on January 9, 2019
MyBatis缓存
MyBatis缓存
MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 二级缓存与一级缓存其机制相同,默认也是采用 Perpetual...
Posted by Honson on January 9, 2019
MyBatis延迟加载
MyBatis延迟加载
mybatis 延迟加载 什么是延迟加载 延迟加载又叫懒加载,也叫按需加载,也就是说先加载主信息,需要的时候,再去加载从信息。代码中有查询语句,当执行到查询语句时,并不是马上去DB中查询,而是根据设置的延迟策略将查询向后推迟。 什么时候会执行延迟加载 配置之后在对关联对象进行查询时使用延迟加载。 延迟加载策略 直接加载 遇到代码中查询语句,马上到DB中执行select语句进行查询。(这种只能...
Posted by Honson on January 9, 2019
java虚拟机
java虚拟机
Java 虚拟机将字节流转化为 Java 类的过程。这个过程可分为加载、链接以及初始化 三大步骤。 加载是指查找字节流,并且据此创建类的过程。加载需要借助类加载器,在 Java 虚拟机中,类加载 器使用了双亲委派模型,即接收到加载请求时,会先将请求转发给父类加载器。 链接,是指将创建成的类合并至 Java 虚拟机中,使之能够执行的过程。链接还分验证、准备和解析 三个阶段。其中,解析...
Posted by Honson on January 9, 2019
java虚拟机的结构
java
java虚拟机的结构 类加载子系统 负责从文件系统或网络中加载class信息,加载的信息存放的一块称为方法区的内存空间。除了类信息,方法区还存放运行时常量池信息。(这部分的信息是Class文件中的常量池部分的内存映射) java堆 java堆在虚拟机启动的时候建立,他是主要的内存工作区域,几乎所有的java...
Posted by Honson on January 9, 2019
简单工厂
设计模式之工厂模式
简单工厂 定义 用一个工厂对象决定创建哪一种产品的实例。 类型 创建型,但不属于GOF23中设计模式。 使用场景 工厂类负责创建的对象比较少,客户端(应用层)只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心 优点 只需要传入一个正确的参数,就可以获取你所需要的对象二无需知道其创建细节。 简单工厂类的缺点 工厂类的职责相对过重,增加新的产品,需要修改...
Posted by Honson on January 9, 2019
开闭原则
软件开发原则之开闭原则
开闭原则 定义 所谓开闭原则就是一个软件实体如类、模块和函数应该对扩展开放、对修改关闭。 强调用抽象构建框架,实现实现拓展细节。 有优点是提高软件的复用性和易维护展性。是面向对象的最基本原则。 依赖倒置原则 定义 高层模块不应该依赖底层模块,二者都应该依赖其抽象。 抽象不应该依赖细节:细节应该依赖抽象。 针对接口编程,不要针对实现编程。 优点 降低耦合提高稳定性,提高代码的可读性和易...
Posted by Honson on January 9, 2019
单例模式
设计模式之单例模式
设计模式之单例模式 定义 保证一个类仅有一个实例,并提供一个全局访问点。 类型 创建型 适用场景 想确保任何情况下都绝对只有一个实例。 优点 在内存中只有一个实例,减少内存开销。特别是一个对象在使用时需要频繁创建和销毁同时创建和销毁性能无法优化时。 可以避免对资源的多重占用。比如我在对一个文件进行写操作,使用单例可以避免同时对这个文件进行写操作。 ...
Posted by Honson on January 9, 2019
Older Posts →
FEATURED TAGS
Design Patterns
mybatis
java
jvm
ABOUT ME
写写代码,
离开世界之前,一切都是过程
知