当前位置: 首页 > news >正文

Java 9 代码整洁之道:GeeCON大会技术实践

GeeCON参会体验

上周,我有幸参加了GeeCON大会。GeeCON是JVM领域中知名的会议,今年是其10周年纪念。在波兰克拉科夫举行的3天会议中,有1200多人参加了4个分会场的80多场演讲,演讲者超过70人。

这是我第一次参加GeeCON。回顾起来,无论是在内容还是组织方面,这都是我参加过的最好的会议之一。会场设在电影院,坐在舒适的椅子上在大屏幕上观看演讲是一种美妙的体验。咖啡师提供的咖啡很美味,餐饮服务很棒,克拉科夫是我一直喜欢重访的美丽城市。

技术演讲内容

我进行了一场题为"Clean code with Java 9"的新演讲。这个环节是JDK 9中几个新特性的现场演示,这些特性可以让我们的代码更加整洁。

我们首先描述了编写整洁代码的含义,接着介绍了JShell,最后使用JShell演示了以下功能:

  • 集合的便利工厂方法
  • try-with-resources中的有效final变量
  • 接口中的私有方法
  • 匿名类的钻石操作符
  • Stream API增强功能
  • Optional的更新
  • StackWalker
  • HTTP/2客户端

我还提供了以整洁方式使用这些特性的最佳实践。

现场演示详情

我的演讲被安排在预计容量500人的大剧院,会场座无虚席,甚至有人坐在屏幕前的地板上。观众非常棒,提供了很多积极的反馈。事实上,他们将该演讲投票选为GeeCON前十佳演讲!

如果你没能到场,可以查看录制视频和资料:

幻灯片可在线获取(下载链接):
我的JShell会话导出可在此处获取:

代码示例演示

通过JShell交互式演示了多个Java 9特性:

基础操作:

1+1
int x = 1+1
System.out.println(x)

集合工厂方法:

Set<String> set = new HashSet<String>()
Collections.unmodifiableSet(set)
List<Integer> list = List.of(1,2,3)

Stream API增强:

IntStream.iterate(0, i -> i+2).takeWhile(j -> j<100).forEach(System.out::println)
Stream.ofNullable(null).count()

Optional改进:

Optional.empty().ifPresentOrElse(System.out::println, () -> System.out.println("empty"))
List.of(Optional.of(1), Optional.empty(), Optional.of(2)).stream().flatMap(Optional::stream).forEach(System.out::println)

StackWalker:

StackWalker.getInstance().walk(s -> s.collect(toList()))

HTTP/2客户端:

HttpClient client = HttpClient.newHttpClient()
HttpRequest request = HttpRequest.newBuilder().uri(uri).GET().build()
HttpResponse<String> response = client.send(request, BodyHandler.asString())

外部代码示例

通过/open命令加载了几个外部代码示例:

文件读取工具:

void readFile(String file) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));try (BufferedReader reader2 = reader) {String line;while ((line = reader2.readLine()) != null) {System.out.println(line);}}
}

接口定义:

interface MyInterface {void abstractMethod();default void defaultMethod() {System.out.println("default method called");}
}

我要感谢组织者邀请我并创造了如此精彩的活动。我将来一定会尝试再次参加这个会议!

编辑记录:

  • 2018年6月7日:添加了观众投票结果
  • 2018年8月20日:添加了在线录制视频链接
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.gsyq.cn/news/28230.html

相关文章:

  • 2025 年新疆旅游线路服务最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • Prompt Optimizer 提示词优化器安装启用
  • 华为FusionCompute超融合上传ISO镜像方法教程
  • 2025 氧气/氮气/工业/氩气/高纯/液态/气体公司推荐榜:港骅 5 星领跑,黄骅及周边全品类供应,这些细分领域服务商更懂生产需求
  • Java基础全面复盘:从入门到进阶的核心要点梳理
  • 报表过滤框设置默认组织提示死循环
  • 第九章-NOP Team dmz-C
  • UiPath License
  • 一些变换
  • ANOMALYCLIP
  • 基于伪距差分定位技术实现方案
  • Go开发者必备:5款提升代码质量的顶级Linter工具
  • 函数作用域在解决 JavaScript 自定义元素类跨环境兼容问题中的应用
  • React-router v6学生管理系统笔记 - 教程
  • NOIP模拟赛R8
  • 钡铼技术预测:未来工业AI发展的七大趋势
  • 2025 年集成房屋生产厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 2025 年东莞石排到南通物流专线公司最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 分类概念 - -一叶知秋
  • 2025 年报警器经销商最新推荐排行榜:深度解析优质服务商,海湾 / 青鸟 / 利达等品牌优选,郑州安创消防实力领衔
  • 2025 年最新推荐灭火器维修公司权威榜单:覆盖干粉 / 水基 / 二氧化碳 / 七氟丙烷 / 锂电池灭火器维修,帮您选出专业可靠服务单位
  • 深入解析:机器学习——聚类算法
  • ASP.NET Core Blazor 路由配置和导航
  • 2025年常州健身房私教权威推荐榜:专业教练资质与个性化课程服务的口碑之选
  • 电脑没声音怎么办?4种方法快速修复电脑无声问题(实测有效)
  • 易基因:JAR (IF13):西农陈玉林团队多组学分析揭示绵羊早期胚胎发育的分子与表观遗传调控机制|项目文章
  • 2025 年一线门窗厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 2025 年北京杜拉维特马桶公司最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析
  • 2025 年铝门窗厂家最新推荐榜:系统/智能/断桥/窄边/定制/全景/阳光房/隐框/隔声/防火铝门窗公司推荐
  • MATLAB实现蒙特卡洛法的10负荷点配电网可靠性计算