当前位置: 首页 > news >正文

课前问题思考1

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

  1. 可以编写桌面应用程序,例如简易图片浏览器。
  2. Web运用程序,例如早期的电商网站。可以正常显示内容,保存操作记录,并且背后处理这些逻辑的“后台程序”。

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

  • 每个不同的操作系统都对应着不同的JVM(虚拟机),需要通过javac将源文件编译成字节码文件,这样子字节码文件就可以在不同系统中通过虚拟机进行解释,只要在合适对应运行环境JRE下就可以运行。
  • 因此需要在操作系统中安装好对应的JRE,其中JRE就包含了JVM

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

以下是C语言的代码:

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

以下是java的代码:

public class Hello{public static void main(String[]args){System.out.println("Hello World!");}
}
  • 可以看出,C语言通过main方法实现了输出Hello World! ,而Java语言当中有默认的命令行参数数组,以及类是私有还是公共之分。
  • C语言是面向过程的语言,Java是面向对象的语言,System就是其中的一个类,out就是对象,println是调用的方法。
  • 再者,java语言要注意大小写之分,C语言就比较少。

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

首先,我们可以看以下代码

String x1=new String("123");
String x4=new String("123");
String x2="123";
String x3="123";
  • String 属于引用数据类型,通过第一行在堆内存new了一块新空间,存放对象x1。第二行new了新空间给对象x2,他们对象的内容虽然相同,但是指向的是两个不同的对象。
  • x2,x3,存储在字符串常量池中,因为池子中已经有了一个123,x3就会直接指向123。
  • 若要比较内容是否相同,需要用到x1.equals(x2);因为==比较的是地址,地址不一样无法比较,对于引用数据类型就不能直接用。而基本数据类型本身就是内容本身。

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

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

本意是想获得字符串X的长度并去除空白字符,不能运行成功,因为null表示没有引用任何对象,会出现空指针异常
可以通过IDE的帮助功能获得方法说明。

阅读下列代码

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 是引用类型,通过自动拆箱将其转化为基本数据类型int,相加之后自动装箱,就可以完成第二行。
  • 通过自动拆箱将x,y变为基本数据类型,进行相加,因为z是基本数据类型,无需再装箱,直接将相加后的值赋给z就可以了。
http://www.hskmm.com/?act=detail&tid=442

相关文章:

  • huggingface
  • 安全不是一个功能-而是一个地基
  • Python基础-27 match-case 使用教程
  • 从0到1实现Transformer模型-CS336作业1
  • 准备工作之结构体[基于郝斌课程]
  • 软工课程第一次作业
  • java学习起航喽
  • 初始化树莓派(Raspberry Pi)系统并以 ssh 连接教程(只需读卡器、手机开热点,无需显示器) - tsunchi
  • 从windows 自动进入BIOS
  • 软件工程第一次作业
  • Morpheus 审计报告分享:AAVE 项目 Pool 合约地址更新导致的组合性风险
  • Offer发放革命:Moka软件如何将平均入职转化率提升25%
  • U3D动作游戏开发读书笔记--2.1一些通用的预备知识
  • 常见的一些Dos命令
  • AUC和ROC
  • CF
  • Word中VBA提取人名所在的页码
  • Ubuntu 安装 VSCode
  • A
  • ARC
  • 【2024-2025第二学期】助教工作学期总结
  • Ubuntu 安装 Git
  • systemctl命令
  • 对抗样本
  • 知识蒸馏
  • ssh相关问题
  • CSP 2025 游记
  • KVM虚拟机快照链创建,合并,删除及回滚研究
  • 第一次学dij qwq(p4779
  • 1