ASList

ff4j 一些核心概念

非 Y 不嫁゛ 提交于 2020-04-21 16:59:27
了解ff4j 的一些核心概念我们就可以更好的学习以及使用ff4j,以下是一些学习,整理 Feature Feature 主要是用表示应用的一个功能,通过一个唯一的id标示(uid),主要目的是在运行时可以按需启用以及禁用 特性,FF4j 添加了一些属性(比如描述,可选的grouoname)访问控制列表,以及一些flipping 策略,同时我们也可以 添加自己的自定义属性 参考代码使用 // Simplest declaration Feature f1 = new Feature( "f1"); ​ // Declare with description and initial state Feature f2 = new Feature( "f2", false, "sample description"); ​ // Illustrate ACL & Group Set < String > permission = new HashSet < String >(); permission. add( "BETA-TESTER"); permission. add( "VIP"); Feature f3 = new Feature( "f3", false, "sample description", "GROUP_1", permission); ​ // Custom

Java Arrays.asList的三个坑

孤者浪人 提交于 2020-04-20 17:56:39
坑1,用Array.asList转换基础类型数组 代码 @Slf4j public class ArrayAsListDemo { public static void intArrayToList() { int [] arr = {1, 2, 3 }; List list = Arrays.asList(arr); log.info( "list:{} size:{} class:{}", list, list.size(), list.get(0 ).getClass()); } } 结果 list:[[I@78cb5849] size:1 class : class [I size是1... 分析 asList一模版T作为参数 上面的代码其实是等于 所以返回的list只有一个元素,是一个int数组,有三个元素。如下。 log.info(""+ list.get(0).length); // 结果是3 结论 不能直接使用 Arrays.asList 来转换基本类型数组 坑2,Arrays.asList 返回的 List 不支持增删操作 代码 public static void putAndRemove() { String[] arr = {"1", "2", "3" }; List <String> list = Arrays.asList(arr); try {

数据结构与算法系列十七(计数排序)

北城余情 提交于 2020-04-19 10:37:23
1.引子 1.1.为什么要学习数据结构与算法? 有人说,数据结构与算法,计算机网络,与操作系统都一样,脱离日常开发,除了面试这辈子可能都用不到呀! 有人说,我是做业务开发的,只要熟练API,熟练框架,熟练各种中间件,写的代码不也能“飞”起来吗? 于是问题来了:为什么还要学习数据结构与算法呢? #理由一: 面试的时候,千万不要被数据结构与算法拖了后腿 #理由二: 你真的愿意做一辈子CRUD Boy吗 #理由三: 不想写出开源框架,中间件的工程师,不是好厨子 1.2.如何系统化学习数据结构与算法? 我想好了,还是需要学习数据结构与算法。但是我有两个困惑: 1.如何着手学习呢? 2.有哪些内容要学习呢? 学习方法推荐: #学习方法 1.从基础开始,系统化学习 2.多动手,每一种数据结构与算法,都自己用代码实现出来 3.思路更重要:理解实现思想,不要背代码 4.与日常开发结合,对应应用场景 学习内容推荐: 数据结构与算法内容比较多,我们本着实用原则,学习经典的、常用的数据结构、与常用算法 #学习内容: 1.数据结构的定义 2.算法的定义 3.复杂度分析 4.常用数据结构 数组、链表、栈、队列 散列表、二叉树、堆 跳表、图 5.常用算法 递归、排序、二分查找 搜索、哈希、贪心、分治 动态规划、字符串匹配 2.考考你 上一篇: 数据结构与算法十六(桶排序) 中

spring中BeanPostProcessor之三:InitDestroyAnnotationBeanPostProcessor(01)

淺唱寂寞╮ 提交于 2020-04-19 09:33:00
在《 spring中BeanPostProcessor之二:CommonAnnotationBeanPostProcessor(01) 》一文中,分析到在调用CommonAnnotationBeanPostProcessor类的postProcessMeredBeanDefinition方法时会先调用其父类的postProcessMeredBeanDefinition方法,下面就来分析CommonAnnotationBeanPostProcessor类的父类InitDestroyAnnoatationBeanPostProcessor。 一、概述 我们先看下CommonAnnotationAnnotationBeanPostProcessor类,上篇中介绍到该类有一个静态代码块会在类初始化的时候调用,在该类中还有一个默认的构造函数, public CommonAnnotationBeanPostProcessor() { setOrder(Ordered.LOWEST_PRECEDENCE - 3 ); // @PostConstruct注解,作用在方法上 setInitAnnotationType(PostConstruct. class ); // @PreDestroy注解,作用在方法上 setDestroyAnnotationType(PreDestroy. class )

SpringCloud文件夹上传解决方案

我的梦境 提交于 2020-04-18 13:09:31
1,项目调研 因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比。 点击【Pause】暂停,点击【Resume】继续。 2,代码分析 原始项目: https://code.google.com/p/java-large-file-uploader/ 这个项目最后更新的时间是 2012 年,项目进行了封装使用最简单的方法实现了http的断点上传。 因为html5 里面有读取文件分割文件的类库,所以才可以支持断点上传,所以这个只能在html5 支持的浏览器上面展示。 同时,在js 和 java 同时使用 cr32 进行文件块的校验,保证数据上传正确。 代码在使用了最新的servlet 3.0 的api,使用了异步执行,监听等方法。 上传类UploadServlet @Component("javaLargeFileUploaderServlet") @WebServlet(name = "javaLargeFileUploaderServlet", urlPatterns = { "

SpringBoot Bean 扫描注册核心之:ConfigurationClassPostProcessor 详解

旧街凉风 提交于 2020-04-17 12:07:48
【推荐阅读】微服务还能火多久?>>> (SpringBoot 版本:2.2.2.RELEASE) 可以说 @Configuration 是 SpringBoot 配置的基石,自然 @Configuration 类的处理是很有必要研究的。 @Configuration 类的处理是由 ConfigurationClassPostProcessor 来处理的。 以如下工程结构来分析: // 处理 @Configuration 类的导入,将 bean 注册到容器中 org.springframework.context.annotation.ConfigurationClassPostProcessor#processConfigBeanDefinitions 1 public void processConfigBeanDefinitions(BeanDefinitionRegistry registry) { 2 List<BeanDefinitionHolder> configCandidates = new ArrayList<> (); 3 String[] candidateNames = registry.getBeanDefinitionNames(); 4 5 // 1. 检索所有的配置类 6 for (String beanName : candidateNames)

JAVA WEB项目大文件上传下载代码

血红的双手。 提交于 2020-04-10 17:32:48
1,项目调研 因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。 https://github.com/freewebsys/java-large-file-uploader-demo 效果: 上传中,显示进度,时间,百分比。 点击【Pause】暂停,点击【Resume】继续。 2,代码分析 原始项目: https://code.google.com/p/java-large-file-uploader/ 这个项目最后更新的时间是 2012 年,项目进行了封装使用最简单的方法实现了http的断点上传。 因为html5 里面有读取文件分割文件的类库,所以才可以支持断点上传,所以这个只能在html5 支持的浏览器上面展示。 同时,在js 和 java 同时使用 cr32 进行文件块的校验,保证数据上传正确。 代码在使用了最新的servlet 3.0 的api,使用了异步执行,监听等方法。 上传类UploadServlet @Component("javaLargeFileUploaderServlet") @WebServlet(name = "javaLargeFileUploaderServlet", urlPatterns = { "

java Arrays

人盡茶涼 提交于 2020-04-10 14:20:56
数组变集合: 用于操作数组的工具类。 各种排序还能局部排序,相当nice。 asList:将数组变成list集合,可以使用集合的思想和方法来操作数组中的元素。 注意: 将数组变成集合后,不可以使用集合的增删方法。因为数组的长度是固定的,可以使用contains,get,indexOf,subList 如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接变成集合中的元素 如果数组中的元素都是基本数据类型,那么就将该数组作为集合中的元素存在。 集合变数组: Collection.toArray(指定类型的数组) 指定类型的数组长度: 当指定类型的数组长度小于了集合的size(),该方法内部会创建一个新的数组长度为集合的size(), 当指定类型的数组长度大于了集合的size(),就不会新创建数组,而是使用传递进来的数组。 所以创建一个刚刚好的数组最优。 将集合变数组: 为了限定对元素的操作。不需要进行增删了。 来源: oschina 链接: https://my.oschina.net/u/4303478/blog/3227768

聊聊Elasticsearch的AtomicArray

耗尽温柔 提交于 2020-04-06 22:36:50
序 本文主要研究一下Elasticsearch的AtomicArray AtomicArray elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/common/util/concurrent/AtomicArray.java public class AtomicArray<E> { private final AtomicReferenceArray<E> array; private volatile List<E> nonNullList; public AtomicArray(int size) { array = new AtomicReferenceArray<>(size); } /** * The size of the expected results, including potential null values. */ public int length() { return array.length(); } /** * Sets the element at position {@code i} to the given value. * * @param i the index * @param value the new value */ public void set(int i,

Java集合工具类的一些坑,Arrays.asList()、Collection.toArray()...

柔情痞子 提交于 2020-04-06 05:27:30
Arrays.asList() 使用指南 最近使用 Arrays.asList() 遇到了一些坑,然后在网上看到这篇文章: Java Array to List Examples 感觉挺不错的,但是还不是特别全面。所以,自己对于这块小知识点进行了简单的总结。 简介 Arrays.asList() 在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合。 String[] myArray = { "Apple", "Banana", "Orange" }; List<string> myList = Arrays.asList(myArray); //上面两个语句等价于下面一条语句 List<string> myList = Arrays.asList("Apple","Banana", "Orange"); JDK 源码对于这个方法的说明: /** *返回由指定数组支持的固定大小的列表。此方法作为基于数组和基于集合的API之间的桥梁,与 Collection.toArray()结合使用。返回的List是可序列化并实现RandomAccess接口。 */ public static <t> List<t> asList(T... a) { return new ArrayList<>(a); } 《阿里巴巴Java 开发手册》对其的描述 Arrays.asList