【牛客网刷题】中秋节前开启java专项练习错题总结第一天

2年前 (2022) 程序员胖胖胖虎阿
178 0 0

【牛客网刷题】中秋节前开启java专项练习错题总结第一天

      • 概述
      • 写在前面
      • 错题分析
      • 值得记录的错题
      • 总结
      • 写在最后

概述

还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累。对于这样一个特殊的节日,今年希望通过一种特殊方式度过。决定在中秋节之前开启做题之路🦌,对,就是做题,说到做题,应该有好长的时间没有好好的做过一整套的题目,已经忘记了做题的感觉了。


经过一段短暂都回忆之后,似乎回想起来了做题对于我来说比较深刻的两点感悟。

  • 首先做题过程是一个让大脑可以持续思考的过程。同时也可以发现自己的知识点中欠缺的地方。从而有一种想要立刻将欠缺的地方进行弥补的冲动感。

  • 做题的过程是一种持续享受的过程,特别是是做出一道比较有深度的题目时,这种成就感可以让自己的大脑兴奋一整天,就好像坚持跑完25分钟的长跑之后停下来时的感觉,真的很爽。

思来想去决定做牛客中的java专项练习题,总共八百多道题目,希望可以在中秋节之前做完第一遍。在这里提前祝自己中秋节快乐😊
【牛客网刷题】中秋节前开启java专项练习错题总结第一天

写在前面

很久很久之前就发现了牛客网这个很不错的做题网站,差不多一年前通过它写了一些和前端有关的题目,基本上每个专项练习都没有完全的写完,或者说叫做基本没怎么写。因此感觉有些遗憾。

之前一直没有很好的经营它,注册之后就一直没怎么登录过,然而今天通过自己的一番打理信息的完善之后,并大致的了解了它的功能和它能给我带来的帮助之后,就对它产生了不舍之感

通过查看之前的做题数据,可以说是惨不忍睹,基本上只能说是做过。

从下面的数据可以看到编程语言6.2%,下面的八项除了go之外,其它的语言都有一定的学习和接触,并且一些如cssc++等都有做了一些题目,不过都没有超过一百。从今天开始决定坚持将java的844道题目都做一遍。并将一些比较有代表性的错题进行记录。

【牛客网刷题】中秋节前开启java专项练习错题总结第一天

  • 随着知识扩展,一些java语言的基础知识许多都忘记了
  • 为了检测自己java知识的不足之处,希望可以通过专项练习题的方式检测掌握不是很好的知识点
  • 分析错题,并且通过题目联想相似的知识点,让知识产生联系,同时挖掘之前没有接触到的细节

错题分析

下面是从错题中挑选了几道比较有代表的性的错题,希望可以通过本次的总结减少以后的出错。🐕

可以看到网站很贴心的将错题单独开了一个专栏,可以很方便的找到错题。
在使用一个网站之前对于一个网站的的所有功能有一个大致的了解,会让自己更加的依赖该网站。🐕

【牛客网刷题】中秋节前开启java专项练习错题总结第一天

值得记录的错题

💪 题目一

【牛客网刷题】中秋节前开启java专项练习错题总结第一天
👌 本题知识点

首先需要知道的是Java表达式转型规则由低到高转换

  1. 所有的byte,short,char型的值将被提升为int型;’

  2. 如果有一个操作数是long型,计算结果是long型;

  3. 如果有一个操作数是float型,计算结果是float型;

  4. 如果有一个操作数是double型,计算结果是double型;

  5. 被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化

🐇 题目分析

语句一:由于b1和b2都是btye类型的,相加的时候将向上转为int类型,使用byte类型接收是错误的
语句二: b4,b5和b6都是btye类型的,但是由于使用final进行修饰,根据上面的第五点,b6可以是任何的数据类型,所以正确
语句三: b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);,所以错误
语句4:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变,故错误。

最终答案:bcd

❌ 错误原因

  • 对于第五点没有了解过

💪 题目二
【牛客网刷题】中秋节前开启java专项练习错题总结第一天

本题对于某个知识点不是很了解的话,很容易出错。

👌 本题知识点

在Integer中,使用 == 来作比较两个对象时(和常数进行比较时,是直接比较值是否相同),需要注意的一点是:对Integer对象进行初始化赋值时,是通过调用valueOf来实现的。
而对于-128到127之间的数(最小值-128是确定了的,但是最大值127是可以通过虚拟机的配置文件来配置),Java会对其进行缓存。而超出这个范围则新建一个对象。
也就是说,如果第一次创建值时在缓存范围之内,第二次如果也是第一次相同的数,其实就是直接在缓存中取的,并没有新建对象,地址相同。

所以答案选:D

💪 题目三

【牛客网刷题】中秋节前开启java专项练习错题总结第一天

用new关键字创建字符串对象时,JVM会先检查字符串常量池中时候有存在的对应字符串,如果已经存在,则不会在字符串常量池中创建,如果没有存在,那么就会在字符串常量池中创建一个字符串对象,然后还会去堆内存中创建一份字符串对象,把常量池中的对象内容拷贝到内存中的字符串对象,然后返回堆内存中的字符串对象内存地址。综上所述,选项A正确。

总结


今天是第一天java的专项练习题,错的比较多,139道题,做错了78道题,有一部分题是由于粗心没有认真的审题,有的题目是由于一些知识忘记了,然而还有一些题目的确是之前没有接触过的知识点。通过这次的做题经历发现了自己没有掌握的知识点,下次做题希望可以提高正确率。💪


【牛客网刷题】中秋节前开启java专项练习错题总结第一天

写在最后

在中秋节到来之前将java专项练习题做完一遍,并将不是很熟悉的知识进行更加深入的研究和复习。

相关文章

暂无评论

暂无评论...