2020.4.2关于java.pta的总结
0.前言
本文是有关pta2020.3至2020.4所有面向对象程序课程(java)共三次作业的阶段性总结,是java学习最开始起步时期的成果。
1.作业过程总结
这三次作业,是从c++过渡到java的桥梁。
第一次作业是在全新的jdk环境中完成以前在c++习惯的事情,两者之间还是有很大的区别,比如键盘输入输出用到的函数和结构完全不同,main函数在组内的表达(
)
如同这些,对于刚接触java的我们来说都是全新的东西,需要学习和接触。同时,我们也学会了新的函数,迎接了jdk这个方便快捷的软件,使用这个软件,我从心底里感到舒适和方便,虽然熟悉它需要很长的时间,而且他没有相应的汉化版,但是好在相对应的学习已经融入课程里,不用操之过急。
第二次作业则开始分函数了,不过现在还是没有开始分class,所以相对应的作业环境较为轻松。但是,main函数黑箱的做法让我对自己编写的函数有了更为严苛的要求,这次作业比第一次更累,虽然花的时间反而是更短,而且正确率更高。因为每次出现问题的时候总是要去调试,没有经验的我总是找不到问题所在,让我心里很难受,只能安慰自己说这是为了熟悉jdk的用法而必须的功课。当然,结果来看确实是如此。
第三次作业是最难的,这个难尤其体现在第三题上,多个class的嵌套是一个很难的问题。由于没有经验,对于private变量的修改在使用函数的时候还有很多不安和迷惘,不过这些迷惘也很快就被打破了。反而是算天数差,前后n天时出现了最大值运行超时的问题,一直到现在都没有解决。按照常理是for循环经历过多的问题,但是基本上脱离了for循环我就找不到可靠稳妥的方法了,这方面上网也没有查到可用的函数,只能找机会去核对了。
三次作业让我初步学会了eclipse的用法,让我适应了基本的java编程,在此基础之上,可以学习新的算法,可以说是新的开始。
2.设计心得
在第三次作业中,每个class的模块化被用图形明显地表现了出来,虽说如此,模块化远远没有交代的那么容易,因为在第二次作业和第三次作业之间的函数虽然看起来什么都没有变,但是由于变量存储位置的变化,不同class里函数的分工发生了明显的变化,这个教训告诉我:要想依据面向对象的思路进行工作,仍然需要交代清楚很多东西,毕竟这次作业的class都在干什么自己最清楚不过,即使如此还是在交流中出了很多问题,真正实现面向对象仍然任重道远。
相比较而言,目前面向对象带给我的最直观感受是方便分类和查找错误,因为所有的代码全是自己的东西。而且,一旦调试出现错误立马可以通过明智的调试设计来知道哪里出了错误,再加上方便的eclipse让我的工作效率相比devc高了不少。当然,任务量也是相应地大了。
3.测试的理解与实践
第三次作业的第三题由于出现了关于天数间隔的错误,我被迫开始了相应的调试。而且另外一个“规范性”测试点也有报错,于是我就设计了一个关于2014.1.1和2020.1.1的问题,并且拿起了计算器亲手进行了计算,而结果发现是多了一天,而且是仅仅2019这一年多,2018,2017没有问题,所以我设计了一组数据,最后在最关键的2019.12.31-2020.1.1找出了错误,并且修改了自己的算法。
这个算法本来是为了能够直接避免for循环,只是通过计算就能计算两个日期之间的天数,但是还是引发了错误,所以这时候就体现了测试的重要性了。一个重要的教训:不经测试的函数投入了整个class群就会如同石沉大海一样,让人很难在错误中找到真正出问题的部分,所以在编写之前就应该检查一下代码是否真的没有问题。
4.课程收获
虽然紧张,但是这几次作业写的很开心。虽然紧张但是充实的四周,专门给我用来适应eclipse这个先天优秀的软件,让我度过了不错的时光。同时,我终于能够将自己所学勉强与自己想象中的成熟软件的结构拼凑在一起,去主动探索自己想开发出来的软件。虽然都是以后的事情,但是我看到了那种可能性。
5.对课程的建议
尽量多采用知识点视频解决的问题,设立专门的答疑视频,个人认为java的学习和其他科目完全不同,不是学到一个一个知识点而是解决一个一个盲区。
以上。
2020.4.2关于java.pta的总结的更多相关文章
- 阿里巴巴供应链平台事业部2020届秋招-Java工程师
阿里巴巴供应链平台事业部,2020届秋季校园招聘开始啦!Java开发工程师虚位以待,机会难得,占坑抓紧. 入职就发师兄,一对一师兄辅导. 在这里,你将有机会接触阿里集团的所有数据库.中间件等基础设施. ...
- 2020面试整理【java】
spring面试题 1.你对spring的理解 Spring 是个Java企业级应用的开源开发框架. Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用. Sprin ...
- 2020 重新出发,JAVA 学习计划
------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...
- JAVA PTA 7-1 作品评分 (10 分)
全国中小学生Scratch作品大赛拉开了序幕.每个参赛选手可以通过网络直接上传作品.本次比赛人人可做评委.每个网络评委可以通过网络对每一件作品进行打分.评分系统也是请程序高手设计的,能自动去掉一个最高 ...
- 2020 年了,Java 日志框架到底哪个性能好?——技术选型篇
大家好,之前写(shui)了两篇其他类型的文章,感觉大家反响不是很好,于是我乖乖的回来更新硬核技术文了. 经过本系列前两篇文章我们了解到日志框架大战随着 SLF4j 的一统天下而落下帷幕,但 SLF4 ...
- 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!
前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问? 一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...
- 2020由浅入深最强Java面试题
1.String,StringBuffer和StringBuilder有什么区别? String是字符串常量,不可变对象,每次对String修改都等同于生成了一个新的String象,然后将指针 ...
- 2020重新出发,JAVA语言,什么是JAVA?
@ 目录 什么是 java? JAVA三大体系 Java SE Java EE JavaME java的主要特性和优势 1. 面向对象 2. 平台无关性 3. 可移植性 4. 简单性 5. 解释执行 ...
- 2020重新出发,JAVA语言,JAVA的诞生和发展史
java的诞生 在1991年时候,James Gosling在Sun公司的工程师小组想要设计这样一种主要用于像电视盒这样的消费类电子产品的小型计算机语言. 这些电子产品有一个共同的特点:计算处理能力和 ...
- 2020重新出发,JAVA学前了解,DOS常用命令
什么是 DOS ? DOS(Disk Operating System)是一个使用得十分广泛的磁盘操作系统. 常见的DOS有两种:IBM公司的PC-DOS ** 和 微软公司的MS-DOS,它们的功能 ...
随机推荐
- php redis使用 常用方法 | Windows环境下安装Redis | Windows下php安装redis扩展(详解版)
redis可视化工具:http://www.treesoft.cn/dms.html #php redis使用 常用方法 https://www.cnblogs.com/mg007/p/1043107 ...
- curl:(6) Could not resolve host: baidu.com; Unknown error
问题描述 有段时间没操作CentOS了,然后启动Virtualbox中的CentOS之后,发现网络不通,ping baidu.com 出现错误 curl:(6) Could not resolve h ...
- git 初始化新的文件夹
1. tar xvf new_project.tar.gz 2. cd new_project 3. git config --global user.email "user.name@ ...
- SAP 删除销售订单行
DATA: ORDER_HEADER_INX TYPE BAPISDH1X, GT_ORDER_ITEM_IN TYPE STANDARD TABLE OF BAPISDITM, LS_ORDER_I ...
- C++实现有序表--顺序表的合并操作代码
#include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ...
- 谈谈 Redis 的过期策略
在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞.要搞清楚这些,就要了 ...
- Docker--搭建 Gitlab 容器并上传本地项目代码
本文参考:https://www.cnblogs.com/poloyy/p/13969756.html 搭建 Gitlab 容器 搜索 gitlab 镜像 docker search gitlab 创 ...
- Feign熔断
在Feign中使用 @EnableFeignClients中已经默认打开了断路器功能,所以这里的启动类上不需要再加@EnableCircuitBreaker注解 只需要在@FeignClient中为f ...
- mobx hook中的使用
class import { inject, observer } from "mobx-react"; // 需要使用mobx-react提供的Provider 包裹,需要使用的 ...
- Typora中的emoji表情
People :smile: :laughing: :tired_face: :blush: :smiley: ️ :relaxed: :smirk: :heart_eyes: :ki ...