ASList

int[]数组如何转换成ArrayList

泪湿孤枕 提交于 2020-08-12 11:34:07
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { int [] data = {4, 5, 3, 6, 2, 5, 1 }; // int[] 转 List<Integer> List<Integer> list1 = Arrays.stream(data).boxed().collect(Collectors.toList()); // Arrays.stream(arr) 可以替换成IntStream.of(arr)。 // 1.使用Arrays.stream将int[]转换成IntStream。 // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>。 // 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>。 // int[] 转 Integer[] Integer[] integers1 = Arrays.stream(data).boxed().toArray(Integer[]:: new ); //

Springboot2.X + screw数据库快速开发文档(74)

回眸只為那壹抹淺笑 提交于 2020-08-11 14:56:20
1、pom依赖 创建springboot项目,勾选依赖 添加screw需要的依赖,检查是否最新版本,链接地址-> 最新版本 <dependency> <groupId> org.freemarker </groupId> <artifactId> freemarker </artifactId> <version> 2.3.30 </version> </dependency> <dependency> <groupId> cn.smallbun.screw </groupId> <artifactId> screw-core </artifactId> <version> 1.0.3 </version> </dependency> 2、测试类 下面填写自己的mysql账号密码 spring.datasource.url = spring.datasource.username = spring.datasource.password = spring.datasource.driver-class-name = com . mysql . cj . jdbc . Driver spring.datasource.xa.properties.useInformationSchema = true 3、生成文档测试类 /Users/mac/Desktop 这个是自己电脑的路径

超大文件上传和断点续传的源码

可紊 提交于 2020-08-11 05:40:52
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 = { "

Flink异步IO结合Redisson访问Redis

妖精的绣舞 提交于 2020-08-11 04:34:22
发表于 2019-07-15 | 分类于 大数据 | 0 | 本文总阅读量 165次 Flink异步IO源码简析。 使用Redisson框架封装的异步请求API。 对key进行异步累计递增计数和计算业务值并保存在Redis中。 Lua脚本和事务API。 FLINK v2-异步IO的设计与实现 Flink使用异步IO访问外部数据 AsyncRedisJob代码 AsyncFunction  AsyncFunction是一个异步算子接口,本身继承Function和Serializable。  asyncInvoke()方法会对每一个上游任务下发的流数据进行异步操作,操作完了将结果输出到ResultFuture,回调方式是把ResultFuture传入回调API,Future方式是要调用resultFuture.complete才算异步调用完成【回调和Future看外部系统客户端的封装】。  timeout()方法用来处理异步调用超时的问题,有default修饰,有默认实现,可以不做处理,但通常要做进一步处理。 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 @PublicEvolving public interface AsyncFunction<IN, OUT> extends

记录下今年的给公司内部中间件团队还有公司外部开源项目修代码的两次经历

不羁岁月 提交于 2020-08-11 03:48:52
最近做了两个事情相比在项目里面写CRUD有意思些,就是看一些优秀框架的源代吗,然后发现问题并修改提交PR。因为SpringCloud组件Eureka的闭源,所有我们项目有必要看看其他相关的优秀开源的项目,刚好Alibaba Nacos这个开源项目现在比较火热,所以我也花时间简单的看了看他们的框架,有意思的是我在看源码的过程也发现了一些问题,加上我本人有代码洁癖,所以把我最不能忍的一个问题拎出来给修改了,并提交的PR给到Alibaba Nacos团队review,最后Alibaba Nacos 团队采用的我的修改建议并合并了代码。中间还有个小插曲,因为不知道给开源项目贡献代码需要签订CLA,而有过几次沟通。然而比较碰巧的是,我在查看公司内部中间件团队的代码时也发现的类似的可能会造成性能问题的代码,这也是促成我这今天随笔的原因。 先说下我争对公司中间件团队的项目代码修改经历,因为不太方便放项目的代码,所以只能简单描述下,修改了什么 伪代码大概如下: xxxx()..stream().forEach(e -> { addApi(e.getxxx())}); addApi(Api api) { versionMap.put(api.getVersionNumber(), new ArrayList<> (Arrays.asList(api))); } 主要修改的的是把 addApi()

浅谈Arrays.asList()方法的使用

北城以北 提交于 2020-08-10 18:34:32
浅谈Arrays.asList()方法的使用  首先,该方法是将数组转化为list。有以下几点需要注意:   (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)   (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新   (3)不支持add和remove方法 上代码 import java.util.Arrays; import java.util.List; abstract public class AsllistTest { public static void main(String[] args) { String[] s = {"aa","bb","cc"}; List<String> strlist = Arrays.asList(s); for(String str:strlist){ System.out.println(str); } System.out.println("------------------------"); //基本数据类型结果打印为一个元素 int[] i ={11,22,33}; List intlist = Arrays.asList(i); for(Object o:intlist){ System.out.println(o.toString());

JAVA自学笔记(一)

落爺英雄遲暮 提交于 2020-08-10 16:39:48
Java程序运行 步骤:编写源代码,编译源代码,装载,校验,运行 Java语言的特点: ①平台无关性(一次编写,随处运行 ) ②面向对象(封装,继承,多态) ③健壮性(鲁棒性,强类型机制,异常处理机制,抛弃指针) ④分布式 ⑤多线程(多线程编程,允许程序中多个任务并发执行,提供同步机制允许共享数据) ⑥动态性(允许程序动态地装人运行过程中所需要的类;也可以通过网络来载入所需要的类,能进行运行时的类型检查) 第一个Java程序 public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld"); } } class关键字不能变,全部小写 public static void main(String[] args){ 这个方法叫main方法,除了args可以自行命名,其他的都不可以变,是程序运行的入口 类前面常常使用 public 修饰,成为公共类 .java 文件的名字必须与源文件中的 class 名字完全一致,大小写也需要一致,如果不一致就会出现编译错误 在一个 在一个.java文件中可以有多个Java类,最多只能有(也可以没有)public类,尽量不要在一个文件中存在多个类,可读性比较差 划分数据类型的意义 ①不同的变量有不同的用途 ②区分数据之间的区别

惊讶!缓存刚Put再Get居然获取不到?

蹲街弑〆低调 提交于 2020-08-10 13:57:17
最近一直在老家远程办公,微信突然响了下,有同事说遇到了一个奇怪的问题,让我帮忙看下。 现象就是标题所说的缓存获取不到的问题,我一听感觉这个问题挺有意思的,决定一探究竟。 下面给出部分代码还原下案发现场: @CreateCache(name = "demo", expire = 600) private Cache<String, ThirdPartyEventResponse> cache; @Test public void test() { ThirdPartyEventResponse eventResponse = new ThirdPartyEventResponse(); eventResponse.setTicketCategories(Arrays.asList(ticketCategoryResponse)); // 省略 ..... // 添加 cache.put(DisChannelType.PIAONIU.getValue(), eventResponse); // 获取 ThirdPartyEventResponse resp = cache.get(DisChannelType.PIAONIU.getValue()); } Put 之后马上 Get,居然获取不到值。 这就有点匪夷所思了,我们来好好排查下。 首先过期时间为 600 秒

Arrays.asList

你离开我真会死。 提交于 2020-08-10 08:15:38
起因 发现在用 Arrays.asList 初始化的List在进行 add 操作的时候报 java.lang.UnsupportedOperationException 示例如下: public static void main(String[] args) { List<Object> argList = Arrays.asList("1", "2", "3", null); argList.add("44"); System.out.println(argList); } 找问题 可以看到 Arrays.asList 内部new的ArrayList并不是我们以为的 java.util.ArrayList , java.util.ArrayList 在进行add操作的时候会进行扩容,如下图: 但是 Arrays.asList 内部实现的ArrayList并没有重写add操作,那么他父类的add操作是咋样的呢,如下图: 可以看到只要add就会异常! 解决方案 再包一层 ArrayList ,问题可解。 总结 所以呢, Arrays.asList 适合的是那些不会去改变大小的操作。 使用姿势不对,盲目使用就会掉进这样的坑,记录一下,防止后续再摔跤! 来源: oschina 链接: https://my.oschina.net/u/3095034/blog/4277488

nacos入门系列之配置中心

二次信任 提交于 2020-08-09 20:43:36
之前学习了nacos注册中心,今天继续看看nacos的其他功能。 注册中心链接 https://www.imooc.com/article/305289 配置的发布与订阅 我们先来看看如何使用nacos提供的api来实现配置的发布与订阅 发布配置: public class ConfigPub { public static void main(String[] args) throws NacosException { final String dataId="test"; final String group="DEFAULT_GROUP"; ConfigService configService= NacosFactory.createConfigService("localhost:8848"); configService.publishConfig(dataId,group,"test config body"); } } 订阅配置: public static void main(String[] args) throws NacosException, InterruptedException { final String dataId="test"; final String group="DEFAULT_GROUP"; ConfigService