Java 那些基础又关键的事儿
学习 Java 时,掌握这些基础且关键的知识,能帮我们更好地入门这门语言。
一、Java 可开发的程序类型
Java 应用场景广泛:
- 桌面应用:借助 Java Swing/JavaFX,能开发带图形界面的程序,比如简单计算器、图书管理系统界面。
- Web 应用:依托 Spring 等框架,可构建电商后端等企业级 Web 系统,处理订单、商品展示等逻辑。
二、“一次编译,处处运行”与运行前提
Java 程序编译生成字节码(.class 文件),而非特定系统的机器码。不同系统的 Java 虚拟机(JVM) 可执行字节码,这就是“一次编译,处处运行”。要运行编译好的程序,需安装 Java 运行时环境(JRE),它包含 JVM 等必要组件。
三、C 与 Java 的 HelloWorld 差异
C 版本
#include <stdio.h>
int main() {printf("Hello, World!\n");return 0;
}
Java 版本
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
- Java 是面向对象语言,代码需封装在类中;C 是面向过程,
main
直接写逻辑。 - Java 用
System.out.println
输出,C 用printf
。 - Java 编译出字节码运行在 JVM,C 编译出特定平台可执行文件。
四、字符串比较与 ==
的使用
- 比较字符串内容,用
equals
方法,如str1.equals(str2)
。 - 不能直接用
==
,因为引用类型(如String
)的==
比较内存地址,而非内容;基本类型(如int
)的==
比较值,所以基本类型可直接用==
。
五、一段有问题的代码分析
String x = null;
int length = x.length();
System.out.println("x.length = "+length +", content = "+x.trim());
- 本意:获取字符串长度与去空格后内容并打印。
- 运行结果:失败,因
x
为null
,调用length()
、trim()
会显示空指针异常。
六、自动拆箱技术
Integer x = Integer.valueOf("10");
Integer y = x + 1;
int z = x + y;
x
(Integer
类型)与1
(int
类型)能相加,是因自动拆箱:Integer
自动转int
后运算。x + y
(Integer
类型相加)能直接赋给int
类型的z
,也是自动拆箱,结果为int
后赋值。