顺丰已辞退工程师邓某,Java 11 长期支持

摘要2018年度RTC实时互联网大会将在北京喜来登长城饭店举行。作为一年一度亚洲规模最大最权威的实时通信技术盛会,RTC
大会将邀请实时通信、音视频编解码,以及AI、AR、VR、前端、游戏等领域的一线技术专家分享实践经验
…大会主旨实时互联网行业迎来风口之年。
很多创新的实时互动场景在RTC技术的激发下,踏上风口。一夜之间,直播、社交、游戏、甚至电商都可以线上抓娃娃,直播答题撒币,连麦小游戏,帮助平台流量变现。而在教育、智能硬件、无人车、互联网金融、安防监控、企业通信等领域,实时互动场景正在大规模应用,实现平台服务升级。WebRTC在浏览器端标准统一,小程序成为炙手可热的新主流平台,iOS和Android推进AR与RTC场景整合,人工智能在RTC技术深度应用,实时场景未来会有怎样的延伸?本次大会将为你解读。演讲大咖来自Google、Facebook、Netflix、Github、Unity、HQ
Trivia、陌陌、花椒直播、今日头条、陌陌、完美世界、VIPKID、沪江等知名互联网公司的技术领袖、音视频技术大咖、产品创新专家,以及来自亚洲不同地区的2500名开发将一同交流分享,实时如何定义未来。大会详情和报名链接详情请见:

摘要2018年 9 月 19
日,微博网友“大佬坊间八卦”爆料,顺丰科技数据中心的一位高级工程师邓某因误删生产数据库,导致某项服务无法使用并持续
590 分钟。顺丰已辞退工程师邓某,并在顺丰内网通报。事件概述2018年 9 月 19
日,微博网友大佬坊间八卦爆料,顺丰科技数据中心的一位高级工程师(邓XX)误删生产数据库,导致某项服务无法使用并持续
590
分钟。顺丰根据公司相关规定,辞退工程师邓某,并在顺丰内网通报批评。其他渠道获悉该人任职顺丰科技
IT 数据中心应用交付技术部互联网产品运维组,职务 IT
运维开发高级工程师。据内部通报邓某错选了 RUSS 数据库,打算删除执行的
SQL。在选定删除时,因其操作不严谨,光标回跳到 RUSS
库的实例,在未看清所选内容的情况下,便通过 delete
执行删除,同时邓某忽略了弹窗提醒,直接回车,导致 RUSS
生产数据库被删掉。因运维工作人员不严谨的操作,导致 OMCS
运营监控管控系统发生故障,该系统上临时线上发车功能无法使用并持续了 590
分钟。……
此次故障导致业务产生了严重的负面影响。网友爆料的内部通报邮件截图来自网友的讨论

摘要美国时间2018年 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8
以后支持的首个长期版本。概述美国时间2018年09 月 25 日,Oralce 正式发布了
Java 11,这是 Java 8
发布以后支持的首个长期版本。为什么说是长期版本,看下面的官方发布的支持路线图表:可以看出
Java 8 扩展支持到 2025 年,而 Java 11 扩展支持到 2026
年。现在大部分都在用 Java 8,Java 9 和 10
目前很少有人在用,至少我没有发现有公司在生产环境应用的,那就是找死。现在
Java 11 长期支持,也已经包含了 9 和 10 的全部功能,9 和 10
自然就活到头了。。那么我们来看下 从 Java 9 – 11
都有哪些重要的新特性呢?1、本地变量类型推断这个博主已经写过一篇文章,详细的介绍了
Java 10
带来的这个新特性。什么是局部变量类型推断?varjavastack=”javastack”;System.out.println(javastack);大家看出来了,局部变量类型推断就是左边的类型直接使用
var
定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型,如上面的
String
。varjavastack=”javastack”;就等于:Stringjavastack=”javastack”;更多使用详情请参考这篇文章《Java
10 实战第 1 篇:局部变量类型推断》,这里不再重复了。2、字符串加强Java 11
增加了一系列的字符串处理方法,如以下所示。//判断字符串是否为空白””.isBlank();
//true//去除首尾空格”Javastack”.strip();
//”Javastack”//去除尾部空格”Javastack”.stripTrailing();
//”Javastack”//去除首部空格”Javastack”.stripLeading();
//”Javastack”//复制字符串”Java”.repeat(3);//”JavaJavaJava”//行数统计”AnBnC”.lines().count();//33、集合加强自
Java 9 开始,Jdk 里面为集合(List/ Set/ Map)都添加了 of 和 copyOf
方法,它们两个都用来创建不可变的集合,来看下它们的使用和区别。示例1:varlist=List.of(“Java”,”Python”,”C”);varcopy=List.copyOf(list);System.out.println(list==copy);//true示例2:varlist=newArrayList<String>();varcopy=List.copyOf(list);System.out.println(list==copy);//false来看下它们的源码:static<E>List<E>of(E…elements){switch(elements.length){//implicitnullcheckofelementscase0:returnImmutableCollections.emptyList();case1:returnnewImmutableCollections.List12<>(elements[0]);case2:returnnewImmutableCollections.List12<>(elements[0],elements[1]);default:returnnewImmutableCollections.ListN<>(elements);}}static<E>List<E>copyOf(Collection<?extendsE>coll){returnImmutableCollections.listCopy(coll);}static<E>List<E>listCopy(Collection<?extendsE>coll){if(collinstanceofAbstractImmutableList&&coll.getClass()!=SubList.class){return(List<E>)coll;}else{return(List<E>)List.of(coll.toArray());}}可以看出
copyOf 方法会先判断来源集合是不是 AbstractImmutableList
类型的,如果是,就直接返回,如果不是,则调用 of
创建一个新的集合。示例2因为用的 new 创建的集合,不属于不可变
AbstractImmutableList 类的子类,所以 copyOf
方法又创建了一个新的实例,所以为false.注意:使用 of 和 copyOf
创建的集合为不可变集合,不能进行添加、删除、替换、排序等操作,不然会报
java.lang.UnsupportedOperationException 异常。上面演示了 List 的 of 和
copyOf 方法,Set 和 Map 接口都有。4、Stream 加强Stream 是 Java 8
中的新特性,Java 9 开始对 Stream 增加了以下 4 个新方法。1)
增加单个参数构造方法,可为nullStream.ofNullable(null).count();//02) 增加
takeWhile 和 dropWhile
方法Stream.of(1,2,3,2,1).takeWhile(n->n<3).collect(Collectors.toList());//[1,2]从开始计算,当
n < 3
时就截止。Stream.of(1,2,3,2,1).dropWhile(n->n<3).collect(Collectors.toList());//[3,2,1]这个和上面的相反,一旦
n < 3 不成立就开始计算。3)iterate重载这个 iterate
方法的新重载方法,可以让你提供一个 Predicate
(判断条件)来指定什么时候结束迭代。如果你对 JDK 8 中的 Stream
还不熟悉,可以看之前分享的这一系列教程。5、Optional 加强Opthonal
也增加了几个非常酷的方法,现在可以很方便的将一个 Optional 转换成一个
Stream, 或者当一个空 Optional
时给它一个替代的。Optional.of(“javastack”).orElseThrow();//javastackOptional.of(“javastack”).stream().count();//1Optional.ofNullable(null).or(()->Optional.of(“javastack”)).get();//javastack6、InputStream
加强InputStream
终于有了一个非常有用的方法:transferTo,可以用来将数据直接传输到
OutputStream,这是在处理原始数据流时非常常见的一种用法,如下示例。varclassLoader=ClassLoader.getSystemClassLoader();varinputStream=classLoader.getResourceAsStream(“javastack.txt”);varjavastack=File.createTempFile(“javastack2″,”txt”);try(varoutputStream=newFileOutputStream(javastack)){inputStream.transferTo(outputStream);}7、HTTP
Client API这是 Java 9 开始引入的一个处理 HTTP 请求的的孵化 HTTP Client
API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在
java.net 包中找到这个 API。

相关文章