Java小白踩坑录 - Java 编程语言中很少被人了解的特性(标号语句)

简介: Java小白踩坑录 - Java 编程语言中很少被人了解的特性(标号语句)

image.png

故事背景

随着工作经历的增长,小白开始慢慢的开始有计划的看源代码,包括公司的代码和开源框架的源码,有时候读着读着就迷糊了,比如下面的语句会编译报错或者打印什么?

System.out.print("baidu site :");
https://www.baidu.com;System.out.println(" format");

刚开始时,小白会想:会编译出错,中间那行是什么鬼?

但最后小白测试时,并不会报错,而是会打印出:

baidusite : format

小白尝试改成这样的语句,是不是就不会觉得编译报错了?

System.out.print("baidu site :");
https :
//www.baidu.com;System.out.println(" format");

有点像 switch 语句中的 case:

intq= (n+7)/8;
switch (n%8) {
case0: do { foo(); // Great C hack, Tom,case7: foo(); // but it's not valid here.case6: foo();
case5: foo();
case4: foo();
case3: foo();
case2: foo();
case1: foo();
 } while (--q>0);
}

原来上面的语句,":" 是 statement label 翻译成标号语句。

其语法如下:

LabeledStatement: Identifier : StatementLabeledStatementNoShortIf: Identifier : StatementNoShortIf

与 C 和 C++ 不同,Java 中没有 goto 语句;标号语句用于出现在标号语句内任何地方的 break 或者 continue 语句之上。

再来一个标句语句作为结尾的练习吧:

classTest {
char[] value;
intoffset, count;
intindexOf(TestStringstr, intfromIndex) {
char[] v1=value, v2=str.value;
intmax=offset+ (count-str.count);
intstart=offset+ ((fromIndex<0) ?0 : fromIndex);
i:
for (inti=start; i<=max; i++) {
intn=str.count, j=i, k=str.offset;
while (n--!=0) {
if (v1[j++] !=v2[k++])
continuei;
    } 
returni-offset;
 }
return-1;
 }
}

总结

说起 Java 的标签,很容易联想到 Java 的循环语句。通常,在 Java 编程中,用到标签的地方大多是在循环语句之前。在标签和循环之前最好不要加入其它的语句。最后,不要为了使用标句语句而使用标句语句。

目录
相关文章
|
3月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
Java API 开发者
108 0
|
5月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
227 1
|
5月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
556 0
|
5月前
|
缓存 安全 Java
Java 并发新特性实战教程之核心特性详解与项目实战
本教程深入解析Java 8至Java 19并发编程新特性,涵盖CompletableFuture异步编程、StampedLock读写锁、Flow API响应式流、VarHandle内存访问及结构化并发等核心技术。结合电商订单处理、缓存系统、实时数据流、高性能计数器与用户资料聚合等实战案例,帮助开发者高效构建高并发、低延迟、易维护的Java应用。适合中高级Java开发者提升并发编程能力。
145 0
|
5月前
|
安全 Java API
Java 17 及以上版本核心特性在现代开发实践中的深度应用与高效实践方法 Java 开发实践
本项目以“学生成绩管理系统”为例,深入实践Java 17+核心特性与现代开发技术。采用Spring Boot 3.1、WebFlux、R2DBC等构建响应式应用,结合Record类、模式匹配、Stream优化等新特性提升代码质量。涵盖容器化部署(Docker)、自动化测试、性能优化及安全加固,全面展示Java最新技术在实际项目中的应用,助力开发者掌握现代化Java开发方法。
226 1
|
5月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
281 1
|
5月前
|
Java 数据库连接 API
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
155 2