1. 使用Java能编写哪些类型的程序?试举至少两个例子。
(1).桌面应用程序:游戏,文本编辑器;
(2)Web应用程序:动态网络,电子商务网络。
2. Java号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
答:Java的“一次编译、处处运行”特性是通过JVM实现的,它使得Java程序具有高度的可移植性和跨平台性。为使编译好的Java程序能在操作系统上运行,需要先安装JDK或JRE。
3. 对比c版本的与Java版本HelloWorld代码,有何不同?
答:(1)C版的
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
(2)java的
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
- C语言程序需要使用C编译器(如gcc或clang)进行编译,生成可执行文件(如
.exe
、.out
等,具体取决于操作系统),然后直接运行该可执行文件。 - Java程序使用Java编译器(javac)将源代码(
.java
文件)编译成字节码(.class
文件),然后Java虚拟机(JVM)负责解释执行这些字节码。Java程序不是直接生成可执行文件,而是生成与平台无关的字节码,由JVM在运行时进行解释或即时编译(JIT编译)成机器码执行。
4.怎么比较两个字符串内容是否相同?可以直接用==吗?为什么对基本数据类型可以直接使用==?对引用数据类型不行?
答:(1)在C语言中,字符串通常是通过字符数组来表示的,并且以空字符(\0
)作为结束符。由于C语言没有内置的字符串类型,它实际上是将字符串作为字符数组来处理。因此,在C中比较两个字符串的内容是否相同,通常需要使用strcmp()
函数,而不是==
操作符。
(2)在Java中,字符串是通过String
类实现的,它是一个引用数据类型。当你使用==
来比较两个String
对象时,你实际上是在比较它们的引用(即内存地址)是否相同,而不是它们的内容是否相同。为了比较两个字符串的内容,你应该使用equals()
方法。
5.下面这段代码,本意是要达到什么效果?能运行成功吗?为什么?怎么获得String的trim()方法的说明?
String x = null;
int length = x.length();
System.out.println("x.length = "+length +", content = "+x.trim());
答:要输出字符串x
的长度和内容。
不能,没有public,而且x被初始化为null。
访问Oracle的Java SE文档(如Java 8, Java 11等),在java.lang.String
类的文档中查找trim()
方法。
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,使用了什么技术?
答:java中,Integer 和 int之间的操作涉及到了自动装箱和自动拆箱。