第01周 预习

目录

  • 第01周 预习、实验与作业:绪论与Java基本语法
  • 0.任务完成说明
  • 1.预习
  • 1.1 学习目标
  • 1.2 预习任务
  • 1.3 课前问题列表
  • 2.实验
  • 3.课后作业
  • 3.1 在线学习平台
  • 3.2 PTA编程(必做)
  • 拓展

0.任务完成说明

本次预习中的“1.3 课前问题列表”选做
可使用Markdown格式的博客或者帖子完成,提交且完成较好的同学将记1次平时成绩。
如果觉得太难,可课后完成并提交。但一定请勿抄袭。

1.预习

简易预习流程:先看预习课件,认真完成里面的习题。然后根据需要观看视频。最后尝试完成课前问题列表。

1.1 学习目标

  1. 掌握Java基本概念(面向对象、跨平台、第一个HelloWorld);
  2. 能在命令行编译运行Java程序(包括带参数的命令行程序),能在IDE中编写、运行Java程序;
  3. 掌握Scanner的用法来处理控制台输入,为PTA实验做准备。

1.2 预习任务

  1. 预习雨课件;
  2. 学银在线(学习通)《Java程序设计》课程中的“绪论”、“Java基本语法”章节。

1.3 课前问题列表

  1. 使用Java能编写哪些类型的程序?试举至少两个例子。
    使用Java可以编写桌面应用程序、企业级应用程序、移动应用程序、Web应用程序、游戏开发、大数据处理、云计算
    比如,对于游戏开发来说,java可以写整个游戏的游戏规则和核心逻辑,Java同时可以创建游戏的图形用户界面,菜单、对话框,另外Java处理游戏状态保存、加载和玩家数据的存储,通常使用文件系统、数据库或网络存储。
    再比如, Java可以用于编写桌面应用程序的核心功能,包括数据处理、算法实现、业务规则等。Java可以与各种数据库系统交互,通过JDBC(Java Database Connectivity)API进行数据存储和管理。Java应用程序在一个受限的环境中运行,防止恶意代码损害系统;运行在JVM上,确保了应用程序的跨平台兼容性。

  2. Java号称“一次编译、处处运行”(Write Once, Run Anywhere!),怎么理解这句话?为使编译好的程序能运行,需先在操作系统安装什么?
    Java的口号“一次编译、处处运行”(Write Once, Run Anywhere!)是指Java程序在编写和编译时不需要针对特定的硬件或操作系统环境。Java源代码首先被编译成一种叫做字节码(Bytecode)的中间格式,而不是特定平台的机器码。字节码是一种平台无关的代码,可以在任何安装了Java虚拟机(JVM)的操作系统上运行。

  3. 对比c版本的与Java版本HelloWorld代码,有何不同?
    ①语句不同。C语言是printf(“HelloWorld”);
                         Java语言是System.out.println("HelloWorld");
    ②运行环境不同。C语言 程序通常编译成机器码,直接在操作系统上运行。编译C语言程序通常需要使用编译器如gccclang
    Java 程序被编译成字节码,然后在Java虚拟机(JVM)上运行。编译Java程序需要使用javac编译器,然后通过java命令运行编译后的字节码。
    程序结构不同。C语言 程序通常从main函数开始执行,这是程序执行的入口点。
    Java 程序则从一个包含main方法的类开始执行,这是程序执行的入口点。
    ④错误处理方法不同。在 C语言 中,main函数返回一个整数,通常返回0表示程序成功执行,非零值表示错误。
    在 Java 中,main方法不需要返回值,如果有异常未捕获,程序会异常终止。
     

  4. 怎么比较两个字符串内容是否相同?可以直接用==吗?为什么对基本数据类型可以直接使用==?对引用数据类型不行?
    java中比较两个字符串内容应该用String类的equals方法,不能直接用==,因为==操作符比较的是两个对象的引用是否相同,而不是它们的内容。
    基本数据类型(如int、double、float、byte、char、short、long和boolean)在Java中是按值传递的。这意味着基本数据类型的变量直接存储值,而不是引用。因此,使用==比较两个基本数据类型变量时,实际上是在比较它们存储的值。
    而引用数据类型(如String、数组、类实例等)的变量存储的是对对象在内存中的引用(地址),而不是对象本身的数据。

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

    1. String x = null;
      声明一个String类型的变量x并初始化为null
       

    2. int length = x.length();
      尝试获取变量x的长度,并将结果存储在int类型的变量length中。
       

    3. System.out.println("x.length = "+length +", content = "+x.trim());
      尝试打印变量x的长度和内容(去除前后空格)。

      代码不能运行成功:
      ①当尝试调用x.length()时,因为xnull,所以会抛出NullPointerException。在Java中,任何对null对象的调用都会引发此异常。
      ②由于xnull,调用x.trim()同样会抛出NullPointerException

  6. 阅读如下代码

    1. Integer x = Integer.valueOf("10");

    2. Integer y = x + 1;

    3. int z = x + y;

    x是Integer类型,1是int类型,为什么他们可以相加,使用了什么技术?z是int,x与y是Integer类型,却可以直接将x + y 赋给z,使用了什么技术?
    在Java中,整数(`int`)和包装类(`Integer`)之间可以进行加法运算,这是因为包装类`Integer`内部实现了`int`类型的值。当我们创建一个`Integer`对象时,它会包装一个`int`类型的值。
    在您的代码中,`x`是一个`Integer`对象,它的值被初始化为10(这是通过调用`Integer.valueOf("10")`方法得到的,该方法将字符串转换为`Integer`对象)。`y`是通过将`x`的值加1并自动装箱(autoboxing)得到的。自动装箱是Java编译器在编译时自动完成的过程,它将基本类型(如`int`)转换为包装类(如`Integer`)。
    然后,`z`是通过将`x`和`y`相加并自动拆箱(unboxing)得到的。自动拆箱是自动装箱的逆过程,它将包装类转换回基本类型。在这个过程中,`x + y`的结果被自动拆箱为`int`类型,然后赋值给`z`。
    总结来说,这些操作都是自动装箱和拆箱的结果,这是Java为简化基本类型和包装类之间的转换而提供的一种机制。
     

2.实验

Java实验列表页面 中第01次实验Java第01次实验提纲(基本概念+编程环境入门+PTA)
建议实验前提前观看MOOC第一章标有“实验”字样的视频。

3.课后作业

3.1 在线学习平台

  1. 视频:
    复习第一章、第二章内容。重点查看视频“Scanner类的用法”
  2. 讨论
    1.5 思考:怎么学习Java?
    1.6.2 思考:java HelloWorld命令的含义
    2.5.2 使用switch完成分数等级划分程序。
    2.6.3 循环的使用
    2.9.2 引用数据类型与基本数据类型的区别是什么?
    2.9.3 自己写一个枚举类型

3.2 PTA编程(必做

完成:题集"Java-01-基础入门“,下周二检查。
学有余力的同学可开始完成题集Java-02-基本语法 题目1-4。

拓展

参考资料:

  1. 集美大学省级精品在线课程“Java程序设计”
  2. PTA程序设计类实验辅助教学平台
  3. Java实验教学大纲
  4. Java开发平台(JDK等)的下载、安装与Win10下Java环境变量的设置
  5. Windows命令行简易入门
  6. 使用命令行编译并运行java源程序
  7. 宇宙最强vs code教程(基础篇)
  8. 如何正确的提问?
  9. 大学生应该怎么学习Java
  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值