第01周 课前问题列表回答
一、使用Java能编写哪些类型的程序?试举至少两个例子。
1.桌面应用程序:
记事本应用:一个提供基本的文本编辑功能简单文本编辑器,如打开、保存、编辑和打印文档。
计算器应用:一个具有加、减、乘、除功能的计算器程序,界面上可能有按钮和显示屏来显示输入和结果。
2.Web应用程序:
在线商店:一个基于Java的Web应用程序,允许用户浏览商品、添加到购物车、结账并查看订单历史。
网站:各种类型的网站,如学习网站,视频网站等等。
二、Java号称“一次编译、处处运行”(Write Once,Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
跨平台的特点:编写好的Java代码,编译出来的后可以在任何操作系统上运行,如:Windows上编写运行的程序也可以在Linux上运行。
需要在操作系统上安装相应的Java系统。
三、对比C版本的与Java版本HelloWorld代码,有何不同?
1.C版本
代码如下(示例):
#include<stdio.h>
int main()
{
printf("HelloWorld!\n");
return 0;
}
2.Java版本
代码如下(示例):
public class HelloWorld{
public static void main(String[] args)
{
System.out.println("HelloWorld!");
}
}
Java使用的是类和方法的结构,而C语言使用的是函数结构。
Java的main方法没有返回值,而C语言的main函数有返回值。
Java需要先编译.java的源程序生成.class的字节码文件才可以运行。
Java一次编译,处处运行,而C语言不行。
四、怎么比较两个字符串的内容是否相同?可以直接用==吗?为什么对基本数据类型可以直接使用==?对引用数据类型不行?
比较两个字符串的内容是否相同可以使用: public boolean equals (待比较x) 方法 x不为空,且y与x中内容(字符序列)相同,返回true y.equals(x);
不可以,因为对基本数据类型“=="判断的是内容是否相同,而对引用数据类型”==“判断的是所指对象是否相同。
五、下面这段代码,本意是要达到什么效果?能运行成功吗?为什么?怎么获得String的trim()方法的说明?
String x = null;
int length = x.length();
System.out.println("x.length = "+length +", content = "+x.trim());
效果:获取字符串x的长度,输出长度length和去除前后空白的字符串。
不能。原因 :(1)空指针异常:在这段代码中,String x = null;之后立即调用x.length()和x.trim(),x没有指向任一对象,这会导致程序在运行时抛出异常。(2)逻辑错误:x.trim()方法返回的是一个新的字符串,但不会改变原始字符串x的内容。因此,x.trim()的结果并不会改变原始字符串x。
(1)查询Java官方文档(2)IDE的帮助功能,将鼠标放到trim()方法上
六、阅读如下代码
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,使用了什么技术?
使用了Java的自动装箱功能,1自动装箱成Integer.valueOf(1)与x相加。
使用了Java的自动拆箱功能,x与y会先自动拆箱成int再进行运算。