暑期学习:自学java第三天
今天看了《疯狂Java讲义》第3章,主要是数据类型和运算符。结合以前学的C/C++,感觉Java在语法上虽然像,但在底层限制上严了不少。为了搞清楚这些区别,我整理了几个关键点,并写了几个小程序跑了一下,验证了书上的说法。
- 关于注释:多了个文档注释
C/C++里常用的 // 和 /* / Java里都有。书上重点提了 /* ... */ 这种文档注释,说是能生成API文档。
我在类上面加了这个注释,还带了 @author 标记。虽然在编辑器里看着跟普通多行注释没两样,但听说用 javadoc 命令能生成网页,这点比C语言方便,不用额外找工具。 - 基本数据类型的区别
这块改动挺大的,特别是没有无符号数,还有boolean类型的严格限制。
没有 unsigned:Java里全是带符号的。以前C语言里习惯用的 unsigned int 在Java里直接报错,看来以后处理大正数得小心溢出。
char 是 2 字节:Java的 char 支持 Unicode,所以我试了下直接赋值一个中文字符 '中',编译没报错,打印也正常。这在C语言里还得用数组或者宽字符,Java确实省事点。
boolean 很严格:C语言里 if(1) 或者 if(0) 随便写,Java里不行。我试了把 int 赋值给 boolean,编译器直接报错。必须是 true 或 false,不能混用。 - 类型转换:自动提升机制
这个点容易踩坑。书上说 byte、short、char 只要参与运算,就会自动变成 int。
我写了个代码,两个 byte 相加,结果如果不强转回 byte 就会报错。这在C语言里可能只是个警告,但在Java里是编译错误,强制你得加个 (byte) 强转,感觉有点繁琐,但也确实安全。 - 字面量:后缀要注意
整数默认是 int,长整型建议加 L(小写 l 容易看错成 1)。浮点数默认是 double,定义 float 必须加 f。这点跟C语言差不多,就是Java查得更严,不加后缀直接赋值给 float 变量会报错。 - 运算符:字符串拼接
算术和位运算跟C语言一样。主要区别是 + 号可以用来拼字符串。
只要有一边是 String,另一边不管是数字还是字符,都会自动转成字符串拼起来。比如 "Result: " + 100 直接得到 "Result: 100"。这比C语言里用 strcat 或者 C++ 的 std::string 都要简单不少,调试打印的时候很方便。
总的来说,Java保留了C的简洁,但通过去掉无符号数、严格化布尔值和自动类型提升,让代码更安全了。虽然写起来有时候觉得限制多,但确实减少了出错的可能。




浙公网安备 33010602011771号