第01周 预习、实验与作业:绪论与Java基本语法

课前问题列表

1.使用Java能编写哪些类型的程序?试举至少两个例子。
1.​​桌面应用程序​​(如使用Swing/JavaFX开发的图形界面软件)
​​2.Web应用程序​​(如基于Servlet/JSP的网站后端、Spring框架应用)
​3.​移动应用程序​​(Android应用通常用Java/Kotlin开发)
​​4.嵌入式系统或大型分布式系统​​(如物联网设备、大数据处理框架Hadoop)

Java号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
1.理解​​:Java源码编译后生成字节码(.class文件),字节码可以在任何安装了Java虚拟机(JVM)的平台上运行,无需重新编译。
2.​​需安装​​:必须先在操作系统上安装​​Java运行时环境(JRE)​​(包含JVM和核心类库),或更完整的JDK。

3.对比c版本的与Java版本HelloWorld代码,有何不同?
​​C语言​​:直接编译为机器码,依赖特定操作系统;需手动管理内存,代码通常更简洁。

#include <stdio.h>   

int main()    
{          
    printf("Hello, World!\n");    
    return 0;         
}  

​​Java​​:通过JVM运行字节码,跨平台;自动内存管理(垃圾回收);代码需写在类中,强调面向对象;类名必须与文件名一致。

public class HelloWorld {         
    public static void main(String[] args) {   
        System.out.println("Hello, World!");    
    }  
}  

4.怎么比较两个字符串内容是否相同?可以直接用==吗?为什么对基本数据类型可以直接使用?对引用数据类型不行?
不能用,因为比较的是对象的​​内存地址​​(是否同一对象),而非内容。应该使用String类的equals()方法,比如str1.equals(str2)
基本数据类型​​(如int、char)直接存储值,
比较的是实际值。
引用数据类型​​(如String、Integer)存储的是对象引用,==只能比较引用是否指向同一对象。

5.下面这段代码,本意是要达到什么效果?能运行成功吗?为什么?怎么获得String的trim()方法的说明?

String x = null;
int length = x.length();
System.out.println("x.length = "+length +", content = "+x.trim());

本意是去除字符串s前后的空白字符
不能运行,会抛出NullPointerException。因为s为null,调用其方法会导致空指针异常。
获取trim()方法说明:查看Java官方文档;使用IDE将光标置于trim()上按F1/Ctrl+Q;命令行工具javadoc。

6.x是Integer类型,1是int类型,为什么他们可以相加,使用了什么技术?z是int,x与y是Integer类型,却可以直接将x + y 赋给z,使用了什么技术?

Integer x = Integer.valueOf("10");
Integer y = x + 1;
int z = x + y;

x(Integer)与1(int)相加​​:使用了​​自动拆箱​​(Auto-unboxing),Java自动将Integer转换为int再计算。
x+y(Integer)赋值给z(int)​​:同样通过​​自动拆箱​​,将Integer类型结果转换为int。

posted @ 2025-09-10 20:12  我今天真的要早睡了  阅读(13)  评论(0)    收藏  举报