当我第一次开始学习Java编程时,我感到非常兴奋和好奇。我知道Java是一门非常流行和强大的编程语言,广泛用于许多不同领域的应用程序开发。经过上学期学习c语言的经历,我在一开始自信满满。但是随后来自老师的命令几岁了我的幻想。在得知我们需要自学基本语法时,我开始通过阅读书籍和在线教程来学习Java编程语言的基础知识。一开始,我感到非常困惑和不知所措,一方面时间紧迫,另一方面来自课上的压力非常大。但是,随着我的学习深入,我开始逐渐理解这些概念的含义和用法。我开始写一些简单的程序,例如输出一些文本、计算数学表达式等等。虽然这些程序很简单,但是它们帮助我理解Java编程语言的基本语法和逻辑。然后,我开始学习如何创建复杂的程序,例如使用条件语句、循环语句和数组来编写更复杂的程序。这需要我花费更多的时间和精力来理解和掌握这些概念,但是现在回顾,我很享受这个学习过程。
经过一个多月的学习,我对于c语言和Java的区别有了较为深刻的理解。以下,就是我总结出的它们之间的不同。
1.编程范式:C语言是一种过程化编程语言,而Java则是一种面向对象编程语言。这意味着在C语言中,程序员编写的代码通常以过程和函数为中心,而在Java中,代码通常以对象和类为中心。
2.平台依赖性:C语言的代码是平台相关的,而Java的代码是平台无关的。C语言程序必须为特定的计算机架构编译,并且不能在其他架构上运行。Java代码则被编译为Java字节码,可以在任何支持Java虚拟机(JVM)的平台上运行。
3.内存管理:C语言需要程序员自己管理内存分配和释放,这可能会导致内存泄漏和其他问题。而Java具有自动内存管理机制,称为垃圾回收器,可以自动分配和释放内存,使得Java程序更加安全和稳定。
4.应用领域:C语言广泛应用于系统级编程,例如操作系统和嵌入式系统开发,而Java则广泛应用于Web应用程序、企业级应用程序和移动应用程序开发等领域。
下面会挑出前三次作业中比较经典和对我教育意义较大的题目进行分析。
这是第一次作业第一题:
问题总结:
1:程序使用了Scanner类的nextDouble()方法从控制台读取用户输入的身高和体重,如果用户输入了非数字的字符,程序会抛出InputMismatchException异常。
2.值溢出:程序在输入身高和体重时没有进行数据范围的检查,如果用户输入了超过double类型范围的数值,程序会计算出错误的BMI值。
这道题用到了Java标准库中的Scanner类来读取控制台输入。Scanner类提供了许多方法,例如nextDouble()方法,可以读取标准输入流中的double类型数据。
第一次作业第四题:
问题总结:
1.程序使用了Scanner类的nextInt()和nextFloat()方法从控制台读取用户输入的数值,如果用户输入了非整型或非浮点型的字符,程序会抛出InputMismatchException异常。
2.条件判断错误:程序中使用了if-else语句来根据用户输入的值计算贷款的利率,但是条件判断可能存在错误。例如,当用户选择的贷款种类不是1或2时,程序应该输出错误信息并终止计算,但实际上程序会继续执行并按照第二种贷款种类的利率计算。
3.输出结果格式问题:程序使用System.out.print()方法来输出最终结果,需要考虑输出结果的格式,例如结果的小数点后面应该保留几位小数,是否需要在结果之间加上空格等。
第一次作业第五题:
问题总结:
1.输入错误的类型:程序使用了Scanner类的nextInt()方法从控制台读取用户输入的种族和职业编号,如果用户输入了非整数的字符,程序会出错。
2.数值溢出:程序没有对用户输入的种族和职业编号进行范围检查,如果用户输入了不在有效范围内的数值,程序会输出"Wrong Format",但此时程序仍然会继续执行并输出默认的种族和职业。
3.逻辑错误:程序使用了if-else语句来根据用户输入的种族和职业编号输出相应的文字,但是程序可能存在逻辑错误。例如,当用户输入的种族编号为5时,程序会输出"Wrong Format",但实际上不存在编号为5的种族,此时应该修改相应的逻辑。
第一次作业第七题:
1.输入错误的类型:程序使用了Scanner类的nextFloat()方法从控制台读取用户输入的数值,如果用户输入了非浮点型的字符,程序会抛出InputMismatchException异常。
2.输入非法数值:程序在读取用户输入的数值后,需要对数值进行检查,以避免非法输入导致程序出错或崩溃。
3.迭代精度问题:程序使用牛顿迭代法来求解平方根,需要设置一个适当的精度,以保证迭代结果的准确性和稳定性。
4.循环条件和循环体的实现:程序使用while循环来迭代求解平方根,需要注意循环条件的设置和循环体内的实现细节。
5.输出结果格式问题:程序使用System.out.print()方法来输出最终结果,需要考虑输出结果的格式,例如结果的小数点后面应该保留几位小数。
第一次作业第七题:
错误总结:
1.输入的数值,需要了解Scanner类的使用方法和特点,以及如何处理用户输入的异常情况。
2.条件判断语句:程序使用if-else语句来根据用户输入的三边长判断三角形类型,需要了解条件判断语句的语法和用法,以及如何根据不同的情况执行相应的代码块。
3.输出语句的使用:程序使用System.out.println()方法来输出最终结果,需要了解输出语句的用法和格式化输出的方法,以及如何在输出结果中包含变量和字符串等元素。
4.异常处理和错误提示:程序在读取用户输入的数值时,需要对输入的数值进行范围检查和类型检查,以避免输入非法数值导致程序出错或崩溃。如果检测到输入错误,程序需要输出相应的错误提示信息并终止计算。
第二次作业第一题:
问题总结:
1.类和对象的概念:程序中定义了两个类Dish和Menu,需要了解类和对象的概念,以及如何创建对象和调用类中的方法和变量。
2.数组的使用:程序中使用了数组来保存菜品信息,需要了解数组的定义和初始化方法,以及如何遍历数组和访问数组元素。
3.字符串的操作:程序中使用了字符串的操作方法来分割用户输入的字符串,需要了解字符串的操作方法和使用场景。
4.条件判断和循环语句:程序使用了if-else语句和while循环语句来判断用户输入的菜品名称是否存在,并循环读取用户输入的信息,需要了解条件判断和循环语句的语法和用法。
第二次作业第二题:
问题总结:
1.类和对象:程序中定义了四个类Dish、Menu、Record、Order,需要了解类和对象的概念,以及如何创建对象和调用类中的方法和变量。
2.集合类HashMap的使用:程序中使用了HashMap集合来保存菜品信息,需要了解HashMap的定义和初始化方法,以及如何遍历和访问HashMap中的元素。
3.字符串的操作:程序中使用了字符串的操作方法来分割用户输入的字符串。
4.数组的使用:程序中使用了数组来保存订单信息,需要了解数组的定义和初始化方法,以及如何遍历数组和访问数组元素。
第二次作业第三题:
问题总结:
1.输入格式问题:该程序期望输入三个字符串,第一个是日期字符串,后两个是日期区间的起始和结束日期字符串。如果输入的字符串格式不正确,例如长度不为10或包含非数字字符,则可能会导致程序异常。
2.日期计算问题:该程序通过解析日期字符串并进行一些计算来确定日期之间的差异,但是计算日期差异的方法可能会导致一些问题,例如不正确地处理闰年或日期范围。此外,如果输入的日期不合法,例如月份或日期超出了其允许的范围,则可能会导致计算错误的结果。
3.性能问题:该程序使用了多个日期计算库(如SimpleDateFormat和Calendar),这可能会影响其性能和速度。此外,程序的实现也可能会导致内存占用过高,尤其是在处理大量日期数据时。
第三次作业第一题:
要点:
1.定义数据结构:需要定义菜单和订单两个数据结构,菜单结构包括菜名和基础价格,订单结构包括桌号标识、点菜记录、删除信息和代点菜信息等。
2.实现输入输出:需要实现读入菜单和订单的功能,读入的过程需要注意桌号标识的判断,读取到"end"表示订单输入结束,同时需要输出每一桌的总价。
3.计算价格:根据输入的订单信息计算每个菜品的价格,并将价格相加得到每一桌的总价。需要注意小份、中份、大份菜品的计价规则,以及代点菜信息的处理。
4.计算折扣:需要根据时间计算折扣,根据不同时间段的折扣规则计算每桌的折扣金额,并将折扣金额减去每桌的总价得到最终价格。
5.处理异常:需要对一些异常情况进行处理,比如删除不存在的记录、输入时间。
由于此题较难,并未写出,因此没有代码。
第三次作业第七题:
问题总结:
1.日期格式错误:由于程序依赖于用户输入的日期格式,因此需要确保用户输入的日期格式是正确的,否则程序可能会抛出异常。
2.日期比较错误:需要注意 LocalDate 类中的 isBefore() 和 isAfter() 方法的使用,以确保比较日期的正确性。
3.日期间隔计算错误:使用 ChronoUnit 类中的 DAYS 和 WEEKS 常量计算日期间隔时,需要注意传入参数的先后顺序,以及负数的处理方式。
总结
学习Java需要掌握的知识点非常多,而且一些基础概念可能需要反复学习和实践才能够深刻理解。
坚持学习和练习
学习Java需要持之以恒,坚持不懈地学习和练习才能够逐渐掌握知识点。建议每天都要有一定的学习时间,并且不仅仅是看教程,更要通过实践来深入理解和掌握知识。
掌握Java基础语法
Java基础语法是学习Java的基础,包括数据类型、运算符、循环语句、条件语句、方法、数组等等。初学者应该重点掌握基础语法,多练习编写小程序来巩固。
学会面向对象编程
面向对象编程是Java的核心,初学者需要深入理解什么是面向对象、面向对象的特点、类和对象的关系、封装、继承和多态等等。初学者需要多练习编写面向对象的程序,例如定义类、创建对象、调用方法等等。
多看源代码和文档
Java是开源的,很多类和接口的源代码都可以查看到,初学者可以通过查看源代码来深入理解Java API的使用。另外,Java文档中包含了很多详细的说明和示例,初学者也可以多看Java文档来加深理解。
总之,学习Java需要付出很多的时间和精力,但是只要坚持学习和实践,就一定能够逐渐掌握Java的知识和技能,成为一名合格的Java开发者。
标签:总结,语句,需要,Java,程序,用户,PTA,题目,输入 From: https://www.cnblogs.com/heihei1/p/17279696.html