第一周课前预习

1. 使用Java能编写哪些类型的程序?试举至少两个例子。

  Java是一种功能全面的编程语言,可以用于多种类型的应用程序。以下是两个常见的例子:

桌面应用程序:

示例:图形用户界面(GUI)应用程序,如文本编辑器或计算器。

技术:可以使用Java Swing或JavaFX来创建这些应用程序的界面。

Web应用程序:

示例:动态网站或企业级应用程序,如电子商务平台或内容管理系统(CMS)。

技术:使用Java EE(企业版)技术,如Servlet、JSP(JavaServer Pages)或Spring框架。

2. Java号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?

  这句话的意思是,Java程序经过一次编译后,可以在任何支持Java虚拟机(JVM)的平台上运行,而无需重新编译。Java程序在编译时生成的字节码(.class文件)并不依赖于特定的平台,这些字节码可以在任何平台上由JVM解释执行。

  要使编译好的Java程序能运行,需要在操作系统上安装Java虚拟机(JVM)。JVM负责将字节码转换为特定平台的机器码,并执行这些代码,从而实现跨平台的运行能力。

3. 对比C语言版本与Java版本的HelloWorld代码,有何不同?

C语言的HelloWorld程序:

#include <stdio.h>

int main() {

    printf("Hello, World!\n");

    return 0;

}

Java的HelloWorld程序:

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, World!");

    }

}

主要区别:

结构:

C语言的程序以main函数为入口点。

Java的程序必须定义一个类(如HelloWorld),并在该类中定义main方法作为入口点。

编译与执行:

C语言程序直接编译成特定平台的机器码。

Java程序编译成字节码(.class文件),需要Java虚拟机(JVM)来执行。

4. 怎么比较两个字符串内容是否相同?可以直接用==吗?为什么对基本数据类型可以直接使用==?对引用数据类型不行?

比较字符串内容:

方法:应该使用String类的equals()方法来比较两个字符串的内容。

原因:==运算符比较的是两个对象的引用(即它们是否指向同一个内存位置),而equals()方法比较的是两个字符串的实际内容是否相同。

基本数据类型的==运算:

原因:对于基本数据类型(如int、char),==运算符直接比较它们的值。

引用数据类型的==运算:

原因:对于引用数据类型(如String、Integer),==比较的是两个引用是否指向同一个对象,而不是对象的内容。因此,比较内容时需要使用equals()方法。

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

代码:

String x = null;

int length = x.length();

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

意图:

代码尝试获取x字符串的长度,并输出其修剪后的内容。

问题:

不能运行成功。因为x被赋值为null,对null调用任何方法(如length()或trim())都会抛出NullPointerException。

获取String的trim()方法说明:

可以通过查阅Java官方文档来获得。Java官方文档网站提供了详细的API说明。

6. 阅读如下代码

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,使用了什么技术?

   在Integer y = x + 1;这行代码中,x + 1涉及到Integer和int之间的运算。Java会自动将Integer类型的x转换为int,与1进行加法运算。结果是一个int类型的值11,然后这个int值会被转换为一个新的Integer对象y。在int z = x + y;这行代码中,x + y涉及到两个Integer对象的加法。Java会自动将Integer类型的x和y转换为int类型,然后进行加法运算,得到21。这个结果是int类型的,因此可以直接赋值给int变量z。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值