课前问题列表

问题一:使用Java能编写哪些类型的程序?试举至少两个例子。
大数据处理、Web应用程序、桌面应用程序、移动应用程序

问题二:Java号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
这句话指的是Java程序的跨平台特性;我需要在目标操作系统上安装Java虚拟机(JVM)

问题三:对比c版本的与Java版本HelloWorld代码,有何不同?

C版本的Hello World java版本的Hello World
语法结构:
C语言:
使用#include预处理指令来包含标准输入输出库stdio.h,然后通过main函数(返回类型为int)来执行程序。在main函数内部,使用printf函数输出字符串。
Java:
使用class关键字定义类,每个Java程序至少包含一个类。main方法被声明为public static void,这是Java程序的入口点。字符串输出通过System.out.println方法实现。

问题四:怎么比较两个字符串内容是否相同?可以直接用= =吗?为什么对基本数据类型可以直接使用==?对引用数据类型不行?
不推荐直接使用= =,因为(它实际上是在比较字符串对象的引用地址,而不是内容);
在大多数编程语言中直接存储了基本数据类型的值,所以在==比较数据类型的值时,实际上是比较它们存储的值是否相等。因为这些值直接存储在变量的内存位置中,则可以准确地判断它们是否相等;
引用数据类型(如字符串、数组、类等)在内存中是通过引用(或指针)来访问的。即相等时,是地址相同,不是对象相同。

问题五:下面这段代码,本意是要达到什么效果?能运行成功吗?为什么?怎么获得String的trim()方法的说明?
String x = null;
int length = x.length();
System.out.println("x.length = “+length +”, content = "+x.trim());

本意可能是想要获取字符串x的长度和去除其前后空格后的内容,并打印出来。
在尝试调用x.length()或x.trim()之前,x没有被赋予任何字符串对象,因此它是null。
查阅官方网站。

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

自动装箱(Autoboxing)
当你尝试将一个基本数据类型(如int)的值赋给一个对应的对象类型(如Integer)的变量时,Java编译器会自动地将这个基本数据类型值转换成对应的对象类型。这个过程称为自动装箱。例如,在Integer x = Integer.valueOf(“10”);这行代码中,Integer.valueOf(“10”)已经返回了一个Integer对象,所以这里没有直接的自动装箱发生。但在Integer y = x + 1;这行中,x是Integer类型,而1是int类型。Java编译器会自动地将1装箱成Integer类型,使得x + 1能够执行。这里的+操作实际上是对两个Integer对象进行操作的,但在此之前,1被自动装箱成了Integer.valueOf(1)。

自动拆箱(Autounboxing)
与自动装箱相反,自动拆箱是将对象类型转换成基本数据类型的过程。在int z = x + y;这行代码中,x和y都是Integer类型,但赋值给int类型的变量z需要它们的基本数据类型值。因此,Java编译器会自动地将x和y拆箱成int类型,然后执行加法操作。这个过程中,x和y的Integer对象被转换成了它们表示的int值,然后这两个int值相加,结果也是一个int值,直接赋值给z。

数值运算规则
在Java中,当你对数值类型(无论是基本类型还是它们的对象包装类)进行运算时,如果参与运算的双方类型不同,Java会尝试将它们转换成同一类型以执行运算。在Integer和int之间的运算中,这通常意味着Integer对象会被拆箱成int类型,然后执行运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值