Posts
Cloud Li
Cancel

Docker 实战—使用 Dockerfile 构建镜像

Dockerfile 指令详解请访问:http://blog.cloudli.top/posts/Dockerfile-指令详解/ 使用 Alpine Linux 作为基础镜像 Alpine 是一个非常轻量的 Linux 镜像,他只有大约 5MB 的大小,基于它构建镜像,可以大大减少镜像的体积。 1 docker pull alpine Alpine 使用 apk 命令来安装软件包...

事务与隔离级别

事务的基本特征 ACID Atomic(原子性):事务中所有的操作是一个整体单元,这个单元中的操作要么全部成功,要么全部失败,不会出现部分失败、部分成功的场景; Consistency(一致性):事务在完成时,必须使所有的数据都保持一致的状态(约束 a + b = 10,事务结束后 a + b = 10 仍然成立); Isolation(隔离性):各个事务在一定程度上感觉不到...

Dockerfile 指令详解

FROM FROM 命令指定基础镜像。在构建镜像时,基础镜像必须指定,因此在 Dockerfile 中 FROM 是必备指令且必须是第一条指令。 在 Docker Hub 上有很多常用的高质量官方镜像,有一些是应用和服务类的镜像,如 nginx、mysql、redis 等;也有一些是用于运行各种语言应用的镜像,如 openjdk、python、node 等。 如果找不到应用的官方镜像,...

Java 函数式编程--流操作

外部迭代到内部迭代 在使用集合类时,通用的方式是在使用 for 循环集合上进行迭代,然后处理每一个元素。比如计算集合中来自上海的用户: 1 2 3 4 5 6 int count = 0; for (User user : allUsers) { if (user.isFrom("Shanghai")) { count++; } } 以上代码为外部迭代...

Java ThreadLocal 的使用与源码解析

ThreadLocal 主要解决的是每个线程绑定自己的值,可以将 ThreadLocal 看成全局存放数据的盒子,盒子中存储每个线程的私有数据。 验证线程变量的隔离性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import static java.lang.Sys...

Java 线程的基本使用

创建线程 创建线程的方式有两种: 继承 Thread 类 实现 Runnable 接口 Thread 类实现了 Runnable 接口。使用继承 Thread 类的方式创建线程时,最大的局限是不支持多继承。所以为了支持多继承,应该使用实现 Runnable 接口的方式。两种方式创建的线程在工作时是一样的,没有本质区别。 第一种方式,继承 Thread 类并重写 run()...

Java ArrayList

ArrayList 继承于 AbstractList ,实现了 List、RandomAccess、Cloneable、Serializable 接口。 ArrayList 的底层数据结构是数组,元素超出容量时会进行扩容操作。 ArrayList 中的属性 1 2 3 4 5 6 7 8 9 10 11 private static final int DEFAULT_CAPACITY...

JVM 内存模型

抽象模型 程序计数器(Program Counter Register) 程序计数器是 JVM 中一块较小的内存区域,保持当前线程执行的字节码指令的内存地址。 如果线程执行的是 Java 方法,计数器记录的是正在执行的字节码指令的地址,如果正在执行的是 native 方法,计数器的值为 undefined。 为了使线程切换后能够恢复到正确的执行位置,每个线程都有一个独立...

数据结构--堆

堆(Heap)是一棵完全二叉树,没有使用父指针和子指针,使用数组描述。 完全二叉树的特点:按照从上到下,从左向右的顺序填充,当前层没有填满时不允许填下一层。 堆的属性 堆分为大根堆(最大堆)和小根堆(最小堆)。 在大根堆中,父节点的值比每一个子节点的值都要大。 在小根堆中,父节点的值比每一个子节点都要小。 大根堆的根节点永远是最大值,小根堆的根节点永远是最小值。...

Java HashMap

HashMap 使用数组、链表和红黑树存储键值对,当链表足够长时,会转换为红黑树。HashMap 是非线程安全的。 HashMap 中的常量 1 2 3 4 5 6 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; static final int MAXIMUM_CAPACITY = 1 << 30; sta...

Search Results