随着第一次考核的落幕我也是成功的意识到了自己的不足,基础知识点的薄弱,知识点之间链接不够熟练,也是考的可以说是一塌糊涂我想对于我这周的学习做一个总结,首先没考好是有原因的,回顾这一周我的学习状态并不好,在小组学习时也经常会胡思乱想,思考自己到底应该走那一条路,思考自己到底适合不适合走着一条路,这些顾虑一直在我脑中盘旋,让我寸步难行.但是我在网上刷到的一句话点醒了我,焦虑是世界上最没用的东西,它不仅没办法帮助自己提高学习效率,还会危害身心健康,降低注意力.而可以延缓焦虑的最好的方法就是落实到具体的某一件事,把自己的身心都投入到一件事上去,只有真正去行动了,才不会胡思乱想,否则只会永远浮于表面.虽然这此考核我发挥不理想,但是我并不会气馁,反而我为我找到缓解焦虑的方法并且找到自己的不足而高兴比如基础知识点像标识符的构成原则这样看起来并不起眼的小知识点,但如果不注意就会出错选择题唯一没塌的地方也是唯一的舒适区30 分拿了 24两段都是 80%。这部分确实是我准备得最充分的。有一道题值得单独说说Stringahello;Stringbhello;StringcnewString(hello);System.out.println(ac);System.out.println(a.equals(c));System.out.println(ab);标准答案给的是 Ctrue true false但正确的是Bfalse true truea c→false。new出来的对象在堆里a指向常量池地址不同。a.equals(c)→true。String重写了equals比的是内容。a b→true。两个字面量都指向常量池里同一份hello。我选了 B被扣了分后来对着答案想明白这道题我其实做对了是答案错了。但这件事给我的提醒比得分更重要——背结论不如记机制。如果我记的是字符串常量池 new 一定在堆上这条机制任何变换题都能推如果我只是背了 比地址、equals 比内容遇到常量池这种细节就会翻车。三、填空题看着送分其实在考你写过没有10 分只拿 5 分。丢的地方特别典型① JDK / JRE / JVM 的包含关系——背过考场上想不起来哪个套哪个。② 编译运行命令javac Test.java → Test.class → java Test注意最后一步是java Test不带.class后缀。这个点我写过无数次考试时反而写错了。③ 冒泡排序改错题原代码里if (arr[j] arr[j 1])是降序题目要求从小到大应该改成。还有内层循环的边界j arr.length - 1在最外层循环里没有跟着收缩。这类题最能暴露一个问题我知道冒泡排序怎么写但没真正逐行读过自己的代码。平时都是抄一遍能跑就过从没盯着i和j的边界推一遍。四、简答题0 分的那两道我确实答不出来简答 4-5 题vs、静态方法 vs 实例方法我拿了0 分。不是没写是写了但答不到点上。回头看我当时的答案全是这种句式“有短路没有。”一句话没错但只有一句话。而 4 分的题出题人要的是对比项运算类型位运算符也可用于 boolean逻辑运算符是否短路否两边都算是左边能定结果就不算右边适用场景位运算、需要两边都执行时条件判断防 NPE 常用问题不在于我不知道而在于我不知道要答多少**。简答 1-3equals vs 、static、抽象类 vs 接口拿了 3/12也是同一个毛病——每条只写了半句没展开成对比结构。教训简答题按定义 区别 使用场景三段式写能拿的分远多于写一句结论。阅卷老师找的是关键词不是我懂不懂。五、程序设计真正的问题在这儿四道题 40 分拿了 7 分。这是最该复盘的部分。第 1 题完全数2/10求 1000 以内所有完全数。满分答案就是一个双重循环for(inti1;i1000;i){intsum0;for(intj1;ji;j){if(i%j0)sumj;}if(sumi)System.out.println(i);}我卡在哪没有想到因子要用取余来枚举。看完答案才发现这就是最朴素的双重循环没有任何技巧。第 2 题猴子吃桃2/10初始给猴子 y 个桃子x 个桃核换 1 个桃子问一共能吃多少个。这题我错得最有价值。我当时是这么想的先吃掉 y 个 → 得到 y 个核 → y / x 个新桃子 → 吃完又得核……想到了第一步但没想到换来的桃子吃完还能再换这件事会一直持续下去所以写成了一个一次性公式而不是循环。正确答案的核心是一个whileinttotal0;intpits0;intpeachesy;while(peaches0){totalpeaches;pitspeaches;peachespits/x;pitspits%x;// 换完剩下的核留着继续攒}坑在于能换是一个反复发生的状态变化必须用循环模拟不能一次性算出结果。第 3 题回文串2/10判断abcba这类字符串。思路谁都懂——首尾对比往中间走。booleanflagtrue;for(inti0;is.length()/2;i){if(s.charAt(i)!s.charAt(s.length()-1-i)){flagfalse;break;}}我扣分在边界写错i s.length() / 2写成了i s.length() / 2奇数长度时中间那个字符自己跟自己比虽然结果碰巧不差但flag的复位和break位置也乱。回文题最典型的错误不是思路是下标。length() - 1 - i里的-1漏掉一次就全错。第 4 题装备系统1/10—— 最惨的一道要求写一个抽象类Equipment两个子类Weapon/Armor还要静态计数器、toString、equals。我交上去的代码根本编译不过。翻出来看错得五花八门错误报错信息类没写abstract却有抽象方法非法的类型开始抽象方法加了static抽象方法不能是静态的setter 有返回值public void setPrice(...)写成了public int不兼容的类型return getIsEquipped;返回方法本身找不到符号set IsEquipped(...)方法名中间有空格需要 ‘(’setprice小写 p找不到符号这些全是语法层面的低级错误说明我平时写代码就是能跑就行从来没认真读过类的基本结构。而这道题真正考的其实是publicabstractclassEquipment{privateStringequipmentName;privateintprice;privatebooleanisEquipped;publicabstractvoidequip();publicabstractvoidunequip();publicabstractvoidshowInfo();// getter / setter ...}抽象类的意义、静态变量和实例变量的区别、多态怎么落到Override上**——这些我都能背但一行都写不出来。六、附加题汉诺塔直接空白20 分0 分。不是不会写是根本没写到。汉诺塔的核心三行voidhanoi(intn,charfrom,charto,charvia){if(n1){System.out.println(from - to);return;}hanoi(n-1,from,via,to);System.out.println(from - to);hanoi(n-1,via,to,from);}递归题我一直在看得懂的阶段从没自己从头推过一遍。考场上时间不够 心里没底直接跳过了八、接下来怎么练具体到动作排名第 6 让我一开始挺满意但 32.5% 的得分率说明我离会用 Java 写东西还差得远。所以不打算写努力学习这种话只列能执行的动作每道编程题先在纸上写伪代码再碰键盘**猴子吃桃就是没写伪代码的后果——我以为自己想清楚了其实只想了第一步。遇到重复发生的描述先问一句要不要循环**“换来的桃子还能再换”“因子要一个个试”——这类词出现时答案八成是while或for不是公式。每天读一段自己昨天写的代码逐行问边界对不对**冒泡排序、回文的length() - 1 - i都是边界问题。读代码比写代码更能发现这类错。简答题按定义 区别 场景三段写**哪怕只有 4 分也值得写满三段。我这次简答 20 分只拿 3 分纯粹是答得太短。5. 抽象类、接口、多态动手各写一个能跑的最小例子不是抄书上的形状/圆形是自己设计一个装备系统、动物、支付方式都行。写完再删掉重写一遍直到不看书也能写出来。6. 递归从汉诺塔 斐波那契开始手推 n1,2,3 的完整调用过程不用电脑就在纸上画调用栈。递归这东西推一遍胜过看十遍。九、最后这次考核对我来说最大的价值不是拿到第 6 名而是第一次把分数拆到每一道题上看清楚自己到底缺什么。以前我一直以为自己Java 还行因为选择题能做对、例题能看懂。但 39 分的卷子告诉我看懂和写出来之间隔着的不是天赋是练习量。下一章开始我打算换个方式学——每看完一个知识点立刻关掉教程自己写一个能编译通过的小程序。写不出来就说明没学会写得出来才继续往下。毕竟下次考核不会再有选择题给我兜底了