感悟 本章可以说是编写耗时最长的,不光是因为本章内容比较枯燥晦涩,同时也是本人经历了人生两件大事,一有空就回头来补了。容器可以说是开发中使用最频繁的类库之一,掌握好这个工具对于面向对象的开发如虎添翼,需要日积月累进行反复学习巩固。 笔记 17.1 完整的容器分类法 对整体容器有初步概念,知道自己使用的容器属于哪个位置17.2 填充容器 1)一种Generator解决方案 2)Map生成器 3)使用Abstract类 1、引出Collections.n...
quartz,java世界里面的任务管理容器。 至于为什么会有misfire这个概念,我想可以重这三个方面来进行说明: 1 所有的线程都在忙于更高优先级的任务 2 任务本身CRASH了 3 代码的BUG,导置错误的设置了JOB 基于这3种原因,其实也是现实世界中的常理。没有任何事情,都能保证100%运行OK。quartz提出了misfire的理论,让任务在错过之后,还能正常的运行。 以下分别对几种类型的JOB进行说明: without repeating(不重复的JOB) 这里只列...
为什么要使用集合当我们需要保存一组类型相同的数据的时候,我们应该是用一个容器来保存,这个容器就是数组,但是,使用数组存储对象具有一定的弊端, 因为我们在实际开发中,存储的数据的类型是多种多样的,于是,就出现了“集合”,集合同样也是用来存储多个数据的。 数组的缺点是一旦声明之后,长度就不可变了;同时,声明数组时的数据类型也决定了该数组存储的数据的类型;而且,数组存储的数据是有序的、可重复的,特点单一。...
梁桂钊 | 作者 Google 在 2018 年下旬开源了一款新的 Java 工具 Jib,可以轻松地将 Java 应用程序容器化。通过 Jib,我们不需要编写 Dockerfile 或安装 Docker,通过集成到 Maven 或 Gradle 插件,就可以立即将 Java 应用程序容器化。 开源地址:https://github.com/GoogleContainerTools/jib 一、什么是 Jib Jib 是一个快速而简单的容器镜像构建工具,它作为 Maven 或 Gradle 的一部分运行,不需要编写 Dockerfile 或运行 Docker ...
一、Java中的各种容器初始值大小 StringBuffer和StringBuilder初始化默认大小为16个字符 HashMap初始化默认大小16,加载因子为0.75,自增为2n. HashTable默认初始值为11,加载因子为0.75,自增为2n+1 ArrayList初始化默认值为10,自增为1.5n Vector初始化默认值为10,自增为2n 二、解析 List 元素是有序的、可重复 ArrayList、Vector默认初始容量为10 Vector:线程安全,但速度慢底层数据结构是数组结构加载因子为1:即当 元素个数...
同步容器类包括 Vector 和 Hashtable,这些同步的封装器类是由Collections.synchronizedXxx 等工厂方法创建的。这些类实现线程安全的方式是将它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。 1. 同步器类的问题 同步容器类都是线程安全的,但在某些情况下可能需要额外的客户端加锁来保护复合操作。容器上常见的复合操作包括:迭代(反复访问元素,直到遍历完容器中所有元素)、跳转(根据指...
Kubernetes学习笔记 Kubernetes的存储资源对象Volume数据卷为什么要用VolumesVolume数据结构数据卷类型emptyDirHostpath网络卷准备NFS环境测试NFS挂载远程网络文件挂载存储介质 PV与PVCPV是什么?PV原理解析PVC是什么PVC原理生命周期供给绑定使用释放回收 PVC&PV案例Kubernetes的存储资源对象 Volume数据卷 为什么要用Volumes k8s中容器中的磁盘的生命周期是短暂的,这就带来了一些列的问题: 当一个容器损坏之后,kubelet会重启这...
前言在Objective-C中,我们常用的容易有三种,分别是NSSet、NSArray、NSDictionary三种(PS:当然了,存储对象还要分可变和非可变).那么在Java中,容器到底有什么不同呢?下面我们分别来对Java中的各种容器详情进行说明.CollectionCollection是一个独立元素的序列,是一个接口类,也就是说它并没有直接实现,遵循Collection这个接口类的主要有三个子类接口,分别是List、Set、Queue.List必须按照插入的顺序保存元素,而Set不能有重复元素.Queue...
1、安装环境jdk+tomcat # 免安装 jdk-8u261-linux-x64.tar.gz # 安装 jdk-8u261-linux-x64.rpmtomcat软件 # 免安装 apache-tomcat-8.5.60.tar.gz安装jdk # rpm包 [root@node105 ~]# rpm -ivh jdk-8u261-linux-x64.rpm # 二进制包 [root@node105 ~]# tar xf jdk-8u261-linux-x64.tar.gz -C /jdk [root@node105 ~]# cat >> /etc/profile << 'EOF' > export JAVA_HOME=/jdk/jdk1.8.0_261 > export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre...
c++,java中的容器 https://www.cnblogs.com/superjn/p/10730541.html 容易产生定义错误 转载关于C++中vector<vector >的使用 https://blog.csdn.net/wkq0825/article/details/82255984 C++ vector的用法(整理) https://www.cnblogs.com/xiaozhaoboke/p/11038893.html 迭代器:遍历用的 Java中Iterator用法整理 https://www.w3cschool.cn/java/java-book.html 由浅至深推荐进阶java书籍(附PDF下载)
Java-数据容器-集合-LinkedHashSetLinkedHashSet是Set接口的实现类 LinkedHashSet底层存储的原理基于哈希表实现 LinkedHashSet底层存储是按照哈希表+加链表的方式进行的 LinkedHashSet的特点有序(按照元素添加的顺序进行输出) 唯一LinkedHashSet没有特殊的其他方法,主要常用方法都继承自Set接口,详细的Set接口方法详见Java-数据容器-集合-Set
Java-数据容器-集合-LinkedListLinkedList是List接口的实现类 LinkedList底层数据存储方式是跳转结构进行存储的,是双向链表 LinkedList的优点删除、增加元素效率高 数据可重复LinkedList的缺点遍历效率低LinkedList的方法,常用方法黄底标注方法名 方法详细描述 方法返回值类型add(E e) 将指定的元素追加到此列表的末尾。 booleanadd(int index, E element) 在此列表中的指定位置插入指定的元素。 voidaddAll(Collection<? exte...
Java-数据容器-集合-ListList接口的所有实现类存储数据的方式都是顺序、不唯一的 List的遍历方式普通for循环 增强for循环 遍历器 iterator()List的方法,常用方法黄字标底方法名 方法的详细描述 方法返回值类型add(E e) 将指定的元素追加到此列表的末尾(可选操作)。 booleanadd(int index, E element) 将指定的元素插入此列表中的指定位置(可选操作)。 voidaddAll(Collection<? extends E> c) 按指定集合的迭代器(可选操作)...
上一篇 docker 使用教程3-(Docker安装Nginx) 学习如何拷贝文件到容器 本篇介绍如何使用docker创建Java容器运行SpringBoot项目 大部分教程都是使用Dockerfile来创建镜像再去运行,当然这也是一种办法,本篇两种方法都有介绍: 思路1:先拉取java镜像,构建java容器,再把SpringBoot的jar包拷进容器,然后进入容器运行jar包就OK了。 思路2:构建DockerFile创建SpringBoot容器运行。 实现方式一 ①、拉取镜像docker pull java:8...
BlockingQueue 阻塞队列,位于java.util.concurrent并发包下,它很好的解决了多线程中如何安全、高效的数据传输问题。所谓“阻塞”是指在某些情况下线程被挂起,当满足一定条件时会被自动唤醒,可以通过API进行控制。 常见的阻塞队列主要分为两种FIFO(先进先出)和LIFO(后进先出),当然通过不同的实现方式,还可以引申出多种不同类型的队列。首先了解一下BlockingQueue的几个核心API:put、take一对阻塞存取;add、poll一对非阻...