9月22日,进行了开学第一堂的java测试,来检验暑假的自学成果。下午的考试中,时间应该是比较充分的,但是我还是有许多功能模块没有完成,功能缺少,在进行测试的时候暴露出了许多漏洞。

  总结一下,在暑假的学习中,自己动手实际编写的太少,遇到的问题太少,一些常见的异常报错,不知道怎么去处理,比如nullpointer异常,这是因为使用null对象来调用方法,对象在初始化中的时候不成功。还有报错静态方法中调用非静态变量,这是因为没有new实例化对象导致的。

  在构建自动柜员机系统时,最初没有头绪,以为像以前的学生信息管理系统一样,输入数据后进行增删改查等操作,但是并不一样。柜员机系统是从TXT文件中读取字符串,再和你输入的账号进行比对,相同则进入密码界面,不同则提示无账号信息。首先是文件操作,对于文件的操作,我在暑假的时候就没有好好实际的操作过,一些要注意的地方都有些遗忘,比如throws IOExption,如果不加上程序会运行不下去,还要导入相应的文件操作依赖包。最重要的是在进行字符串比对是,不能直接使用==运算符比对,字符串是引用类型,这是地址比对。应该使用类似于a.equals(b);的操作进行字符串内容的比较。

  进入密码输入界面后,与TXT文件的密码进行比对,成功进入主界面,否则在三次输入错误后提示卡进行回收。对于这个功能,我主要思路是进行至多三次循环,用变量记录循化的次数,判断是否等于3,进行分支选择,等于三次的话输出提示信息,退出到录入账号界面。

  柜员机的主界面功能,存取款,转账汇款,修改密码,以及显示一些操作信息。这时候才发现,自己写的框架有些问题。在进行文件的读取操作时,应该将读取到的数据,进行初始化赋值,存储在对象数组中,再进行相关操作。操作完成后,最后再将修改后的数据,利用文件操作写入到文件中进行保存。在修改上花费大量时间,以导致于没有构架完成程序。

  在考试中出现的错误太多,一些平常没有注意到的错误接连出现。尤其是在进行文件的读取赋值操作时,不管如何赋值,最后输出的对象数组都只有最后一组的数据。不断地测试也不知道问题出现在什么地方。上网搜索后才知道数组是引用类型,数组赋值时候,取出全是最后一个值。使用的全部是最后的地址,需要不断地new一个新的对象进行引用的正确赋值,否则数组都会指向同一地址,导致不能正确的赋值。

  通过这一次的考试,认识到了自己很多的不足之处。第一,也是最重要的就是题还没有理解透彻,系统的流程还没有看完全就着急编写程序,乱写一通,最后理清思路后推翻旧的程序,重新编写,浪费时间。编写程序首先要静下心,仔细的将系统的流程走一遍,然后寻找切入点,不可盲目的编写,耗时耗力没有用处,构建系统的框架,再在框架的基础上进行增加删除功能,壮大程序。第二,对于编译软件运用的不太熟练,在平时,一直用的是记事本来开发程序,非常的麻烦。改用eclipse软件,一些功能不会用,debug,测试等不会。在寻找错误时,只是单纯的靠自己的逻辑,添加输出变量等语句寻找出错的地方。在今后的学习中,一定要熟练运用开发软件,提升自己的能力。第三,对java的基础还不够扎实牢固,一段时间没有使用java就忘记许多注意点,一些基础知识,某些函数的使用方法。第四,编写程序时没有养成写注释的好习惯,在自己编译时,总是忘记当时定义的这个变量是干什么用的,然后再慢慢读程序,寻找变量的作用,可读性很差。第五,在定义类名,方法名,变量名等标识符时,不能做到见名知意,大小写也不加区分,习惯不好。

  在今后的学习生活中,我要养成好作为一个程序员应该具有的优秀习惯。不断学习新的知识,要记录编程中遇到的困难以及解决的办法。要自己主动的去学习,不能等到老师要求才去学习。保持一颗求知心,做一名优秀的程序员。

java课堂考试总结的更多相关文章

  1. 第一次JAVA基础考试后的反思

    今天进行了第一次JAVA基础考试,考查了课本上前面三章和方法的知识,基本没有涉及到数组.通过这次的考试,暴露了自己在学习中的很多问题. 机试题是编写一个学员状态转换器,主要运用的是选择语句和方法,而没 ...

  2. Java课堂测试--实现ATM的基本操作体会

    9月20的周四的Java课堂第一节课上就是有关于实现ATM的考试内容,在实现的过程中我了解到自己本身还是有很多的不足之处,例如在实现工程方面的相似性上面还有些许就的欠缺,再者就是回宿舍拿电源的原因导致 ...

  3. Java课堂笔记(零):内容索引

    回想自己学习和使用Java的时间也是很长了.本科期间课堂上浅尝辄止地学习了点皮毛,后来也是搁置不用,未曾深入研究.研究生期间因为项目和实习的原因,基本算是重新拾起Java这门语言,并且接触到了Spri ...

  4. 20155237 第十一周java课堂程序

    20155237 第十一周java课堂程序 内容一:后缀表达式 abcde/-f+ 内容二:实现Linux下dc的功能,计算后缀表达式的值 填充下列代码: import java.util.Scann ...

  5. 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客

    20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...

  6. 20155320信息安全系统设计第二周课堂考试总结及myod的实现

    20155320 信息安全系统设计第二周课堂考试总结及myod的实现 第二周测试一二已在课上提交 第二周测试3-gdb测试 用gcc -g编译vi输入的代码 在main函数中设置一个行断点 在main ...

  7. Java课堂作业详解

    今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...

  8. java课堂动手动脑及课后实验总结

      动手动脑一:枚举   输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...

  9. Java输出考试前三名

    实现输出考试成绩的前三名 要求: 1. 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73 2. 要求通过自定义方法来实现成绩 ...

随机推荐

  1. 2-2.5-3D的室内场景理解

    2-2.5-3D的室内场景理解 主要内容 摘要随着低成本.紧凑型2-2.5-3D视觉传感设备的出现,计算机视觉界对室内环境的视景理解越来越感兴趣.本文为本课题的研究提供了一个全面的背景,从历史的角度开 ...

  2. 微信架构 & 支付架构(下)

    微信架构 & 支付架构(下) 3. 管理网络请求 首先看看原来 iOS 处理支付网络请求的缺陷: 原来支付的请求,都是通过一个单例网络中心去发起请求,然后收到回包后,通过抛通知,或者调用闭包的 ...

  3. nvJPEG Codec库

    nvJPEG Codec库 nvJPEG库是高性能的GPU加速库,用于解码,编码和转码JPEG格式的图像.nvJPEG2000库用于解码JPEG 2000格式的图像.与单CPU解码相比,依赖nvJPE ...

  4. Spring Cloud05: Zuul 服务网关

    一.什么是Zuul 服务网关 Zuul 是 Netflix 提供的⼀个开源的 API ⽹关服务器,是客户端和⽹站后端所有请求的中间层,对外开放 ⼀个 API,将所有请求导⼊统⼀的⼊⼝,屏蔽了服务端的具 ...

  5. Java抽象类、继承及多态和适配器的实现

    Java继承 方法重写是Java语言多态的特性,必须满足以下条件 在子类中,方法名称与父类方法名称完全相同 方法的参数个数和类型完全相同,返回类型完全相同 方法的访问修饰符访问级别不低于父类同名方法的 ...

  6. 学习响应式编程 Reactor (3) - reactor 基础

    Reactor Reactor 项目的主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范的响应式库. Reactor 提供了实现 Publisher ...

  7. LockSupport中的park()与unpark()

    类注释原文:Basic thread blocking primitives for creating locks and other synchronization classes.意思就是Lock ...

  8. DB2 SQL0805N解决和思考

    一.报错现象 这是一个在使用 DB2数据库过程中比较常见的错误, 报错信息如下 Exception stack trace: com.ibm.db2.jcc.am.SqlException: DB2 ...

  9. bzoj2839 集合计数(容斥+组合)

    集合计数 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 ...

  10. Java知识复习(一)

    Java面向对象的三大特性: 封装.继承.多态. super()与this()的区别? This():当前类的实例,一个类,如果继承了父类,那么通过this既可以访问当前类的属性和方法,也可以访问父类 ...