今天进行了第一次JAVA基础考试,考查了课本上前面三章和方法的知识,基本没有涉及到数组。通过这次的考试,暴露了自己在学习中的很多问题。
机试题是编写一个学员状态转换器,主要运用的是选择语句和方法,而没有用到循环的知识。这道题没有涉及到什么算法,思维过程并不难,但是用scanner语句接收单个字符的方法以前从来都没用到过,所以写代码的时候一下子懵了,在这关键的一句话上卡了很久,一直尝试也没有结果,平时用的scanner语句都是接收int类型的数字,后来终于知道了接收char类型的语句是char n = sc.next().charAt(0);才没有在这道题上败北。/考后反思:其实如果用if else方法的话,用scanner接收string类型也能做出来。/
反思一:平时switch……case……语句用得很少,自己在课后花的功夫不多,练习远远不够。
反思二:从来没有用过scanner语句接收char类型,导致不知道char n = sc.next().charAt(0)语句【客观原因是老师没有讲过】;也从来没有在switch的case语句中使用过char类型,导致一开始连case 'e'应该加单引号都没有想到,最后使用了将char类型改成对应的Unicode数字的笨方法,浪费了许多时间。
随后的笔试部分为50道选择题,大部分是单选,少数几道多选,通过笔试题也察觉了自己学习的一些薄弱点,有个别知识点老师没有讲到或者讲的时候没有引起足够的重视,能够回忆起的查漏补缺点大概有以下这些:
1.编译错误和运行错误的区别:自己能够意会,但实际不能完全地区分。
2.Java平台三个版本的具体含义:没有记牢,导致考试的时候不能100%确定,其实只要知道Java SE中的S代表standard,Java ME中的M代表micro,Java EE中的前一个E代表enterprise(企业)就能明确Java SE是标准版,Java ME是微型版,Java EE是企业版。
3.Java程序的编译和运行:高级语言翻译成机器语言的方式有两种:编译和解释。编译好比将一本英文书翻译成中文书,需要专门的编译过程,翻译只做一次,效率高,但不能跨平台,C语言就是典型的编译语言;解释好比同声翻译,每个语句执行的时候才翻译,执行一次翻译一次,效率低,但能跨平台。Java借鉴了两种方式的特性,被设计成半编译半解释型语言。
4.Java程序执行机制:没有理解得很透彻,参见教材P11图1.9。
5.不同基本类型的自动转换和强制转换:没有复习,略为生疏。
6.^(异或):差不多都忘掉了这个知识点,两个表达式不同,则整个表达式为真。
在整个笔试中,比重最大的就是输出判断题,尤其是包含循环语句/break、continue语句/i++、++i语句等的程序最后的打印值和变量值是多少的问题,非常考思维,容易弄混,做的时候有些题目比较吃力,虽然原理都懂,但并没有绝对的把握。
整个考试过程中,最让我吃惊的是在我交卷之前,对面的两组同学已经基本交完了,而我交卷时我们这边两组的同学基本都还在做,看来在课后自己包括自己的组都应该多下苦工了,没有想到自己和别人的差距居然如此之大,对面的好些同学机试和笔试都完成得非常快,不努力就要掉队了。
努力!努力!!努力!!!多看书,多查资料,多看视频,多记,多练题,多敲代码,多背单词,多写笔记,多总结,多请教,课堂上的东西远远不够!