# java课前问题列表
java能编写的程序
一、桌面应用
借助 AWT(抽象窗口工具包)、Swing(轻量级 GUI 工具包)或更现代的 JavaFX 框架,能开发带有图形用户界面的桌面应用,如企业内部的客户信息管理系统。
二、游戏开发
利用 Swing、JavaFX 可开发小型桌面游戏(如贪吃蛇、俄罗斯方块)。
Java 号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
-
编译过程的特殊性:Java 程序并非直接编译为操作系统可执行的机器码,而是通过
javac编译器编译成字节码(Bytecode)(后缀为.class的文件)。这种字节码是一种与平台无关的中间代码,不依赖于特定操作系统或硬件架构。 -
跨平台运行的实现:字节码需要通过 Java 虚拟机(JVM)来解释执行。不同操作系统会安装对应版本的 JVM,这些 JVM 能将统一的字节码转换为当前系统可识别的机器码,从而实现 "同一份字节码在不同平台运行" 的效果。
-
运行前提:要使编译好的 Java 程序(字节码文件)能够运行,必须在目标操作系统中预先安装 Java 运行时环境(JRE);如果需要开发 Java 程序,则需安装 JDK(Java Development Kit),其中包含 JRE 以及编译器(
javac)、调试工具等开发组件。
对比 C 版本的与 Java 版本 HelloWorld 代码,有何不同?
C 语言版本的 Hello, World! 代码
#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!");
}
}
程序结构
- C:以函数为单位,
main()是独立的程序入口函数 - Java:以类为单位,
main()必须定义在类中(如public class HelloWorld)
语法规范
- C:需引入头文件(
#include <stdio.h>),函数有明确返回值类型(int main()) - Java:类和方法有访问修饰符(
public),main()必须声明为public static void
怎么比较两个字符串内容是否相同?可以直接用吗?为什么对基本数据类型可以直接使用?对引用数据类型不行?
比较两个字符串内容是否相同不能直接使用 == 运算符, Java 中使用 equals() 方法
基本数据类型(如 int、float、char 等)的存储方式是值存储,变量直接保存「数据本身」,而非地址。== 比较的是变量存储的「实际值」,因此结果符合预期。
引用数据类型(如 String、对象、数组等)的存储方式是引用存储,变量保存的是「数据在内存中的地址」(引用),而非数据本身。== 比较的是「两个变量的引用是否指向同一块内存地址」,而非内容。
下面这段代码,本意是要达到什么效果?能运行成功吗?为什么?怎么获得String的trim()方法的说明?
String x = null;
int length = x.length();
System.out.println("x.length = "+length +", content = "+x.trim());
这段代码的本意是想获取字符串x的长度,并输出其长度和去除首尾空格后的内容,但这段代码不能运行成功,会直接抛出NullPointerException(空指针异常)。
代码中 String x = null 表示 x 是一个空引用(不指向任何实际的字符串对象)。而 x.length() 试图调用空引用的 length() 方法 ,x.trim() 试图调用空引用的 trim() 方法。
获得 String 的 trim() 方法说明的方式:
- IDE 提示:在 IDE(如 IntelliJ IDEA、Eclipse)中,将光标放在
trim()方法上,按Ctrl+Q(IDEA)或F2(Eclipse),可直接查看方法的文档注释(包含功能描述、参数、返回值); - 查阅官方文档:访问 Java 官方文档(String 类),在方法列表中找到
trim(),可查看完整说明(如“返回去除首尾空白字符后的字符串,空白字符包括空格、制表符、换行符等”); - 源码查看:按住
Ctrl点击trim()方法(IDE 中),跳转到源码,查看注释了解功能。
阅读如下代码
Integer x = Integer.valueOf("10");
Integer y = x + 1;
int z = x + y;
x 是 Integer 类型,1是 int 类型,为什么他们可以相加,使用了什么技术? z 是 int , x 与 y 是 Integer 类型,却可以直接将 x + y 赋给 z ,使用了什么技术?

浙公网安备 33010602011771号