蓉杠学习网

j***a语言修改代码,j***a代码在哪里修改

大家好,今天小编关注到一个比较意思的话题,就是关于java语言修改代码问题,于是小编就整理了2个相关介绍Java语言修改代码的解答,让我们一起看看吧。

  1. 改别人代码的bug,觉得有些吃力,是我太菜吗?
  2. java里怎么修改list记录中的某个值?

改别人代码的bug,觉得有些吃力,是我太菜吗?

技术经验都是积累出来的,没有菜不菜,多练就是了。总结下我的排查bug经验,互相学习

1、出现bug,分业务级别还是系统级别。

java语言修改代码,java代码在哪里修改div>
图片来源,侵删)

解决业务bug:首先理清各个业务逻辑线,然后打断点调式代码,很快会定位原因,改起来也就简单了。

系统级别bug(例如系统卡,内存溢出等):这时候要利用监控工具查看JVM或者各个中间件的使用情况,根据各日志去定位问题

2、平时多研究监控工具使用,在排查问题是挺有帮助的

java语言修改代码,java代码在哪里修改
(图片来源网络,侵删)

3、提高自己的代码阅读量。阅读量上去了,那你看别人的代码才会迅速看懂理解

调试程序能力确实是评价程序员整体技术水平的一个重要方面,但是由于不同程序员往往会面对不同的开发场景,所以程序的bug也会有很多种不同的呈现形式,所以如果调试一些复杂度比较高的程序,即使是经验丰富的程序员,也不会感觉特别轻松。

程序员调试程序的能力,往往由三方面因素决定的,其一是自身的从业经验;其二是自身对于业务的理解;其三是算法设计能力。

java语言修改代码,java代码在哪里修改
(图片来源网络,侵删)

代码量对于程序员调试能力的影响是最为直接的,通常代码量越大的程序员,往往也会有越强的调试能力,这一点在调试一些常见bug时会表现得特别明显,很多初级程序员在程序出现bug时,往往需要很长时间进行调试,但是老程序员几乎是“一眼”就能发现问题,关键还是编程经验起到的作用

程序员对于业务流程的理解情况对于调试能力的影响也是比较直接的,因为程序设计往往需要与业务流程相契合,尤其是管理软件,很多复杂的逻辑都来源于具体的业务规则,所以如果不了解业务规则很难进行程序调试。实际上,很多程序员在半路接手程序代码时,都需要对业务有一定的了解,而这个过程往往是比较耗费时间的。

算法设计能力也会在很大程度上影响程序员的调试能力,虽然目前很多应用级开发任务中并不会有太多关于算法的内容,但是算法设计能力对于程序员的逻辑思维能力也有非常大的影响,所以算法设计能力强的程序员,在理解代码时往往也会更快。

style="font-weight: bold;">我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

改别人写的代码觉得吃力,这个完全体现不了一个人的技术菜不菜。为什么?原因答主根据自己的经验从以下几个点给分析分析:

工具的使用习惯不同

大家应该有遇到过这种情况,我们可能在看到其他人使用和你一样的开发工具的,但是你发现他把开发工具的窗体上的模块都调的和你的使用习惯完全不一样的,比如:你的***管理器在左边,但是他把***管理器调到了右下角。那这个适合你来给他找bug刚开始真的会觉得很麻烦,总感觉不舒服,并且你还不能调。这样会严重的影响你的找bug效率。

代码的风格不同

业务逻辑的理解思路不同

对于同一个模块的业务功能,大家会根据自己的业务逻辑的理解,找到解决方案,或者说同一个业务模块,你理解的业务逻辑和他的会不一样,那么你的解决方案也就不一样。所以在给他找bug的时候你会经常遇到看不懂的代码,这个看不懂也不是说你比较菜,是你不理解他现在的想法,所以你如果要继续往下面找的话,必须要问他来理解他敲出来的代码的他的想法,这样就会很麻烦很麻烦,如果他能正确的表达他的思路还好,如果表达不清楚那就会花费很多的时间了。所以二手代码对于所有程序员来说真的是噩梦,你会在看代码的时候内心疯狂的吐槽前开发者

当前遇到的技术不够熟悉

自身对于技术的不熟练才是找bug吃力的最主要原因,但是不是绝对因素。如果对于当前使用的技术不够熟练,会导致遇到的bug你也在内心是摸棱两可的,也不确实,之后你会在各种调式中去试,如果运气好,你可能试个几次找到原因,如果运气不好,可能把你觉得有问题的都试完都找不到。那这个时候你在对别人说不好意思你也找不到,那你这完全是在浪费时间,有可能还会招到别人的吐槽。但是你的对现在用到的这个技术了如指掌,那你每个模块检查完毕,基本跑一跑你就能缩小范围然后调试之后就能确定问题所在了。

改别人代码吃力,这是很正常的一件事情,毕竟代码是别人写的,我们要想改他的bug首先要做的就是要找到他的bug,为了找到他的bug我们又不得不去搞懂他的逻辑知道它到底是如何写的写了什么,所以会比较吃力

别说改别人的bug了,在工作中别人的代码我都懒得拿过来用,因为别人的代码并不是为你的项目写的所以或多或少要去修改,要修改就要去读懂,因为我比较懒,能自己写的尽量自己去写这样反而比修改别人的代码要快得多

如果你觉得修改别人的bug比较吃力并且有明显的异常报错,我们就可以完全面向谷歌编程啊,因为很多问题不止你一个人会遇到,多数情况下网上会有现成的解决方案

同时可以***取断点调试的方法,逐步地去排查,这也是很不错的方法

如果实在不行就去请教别人,很多久经沙场的大牛可能一眼就看出来问题出在哪里


j***a里[_a***_]修改list记录中的某个值?

1. 背景在J***a 中, 我们可以使用list.remove()移除list中的特定值,但是如果需要移除所有出现的特定值, 就值得研究一番了。 此文将会使用多种方法来尝试解决此问题, 并说明其优缺点。 2. 方法一: 使用简单循环比如我们想移除某个value,很多人会这样写:

然而,以上代码存在严重问题,例如: 对于一个List<integer> 类型的List,当我们调用其list.remoce(int) 方法时, 实际移除的是index为 1 的值(在这个例子中是2),而不是我们想要的 value 为 1 的值。此循环将删光除了0位的所有值, 并在最后一次循环中抛出越界异常。 我们尝试这样修改 如此就可以避免此问题 但是,以上代码还有很大的优化空间,我们接着看。 3. 方法二在上述代码中,list.contains() 和 list.remove() 方法都查找了一次首次出现的值的index,这显然是做了不必要的重复工作,我们尝试这样优化代码: 这样就只需要查找一次index 但这段代码仍旧拥有很大的优化空间,因为我们没有保留每次查找的进度,导致事实上每次查找都是从头开始,我们尝试继续优化。 4. 方法三使用for循环一次遍历,保留了查找进度 需要注意的是,当移除value,会导致后续index全部 -1,所以我们一定要记得把index -1,否则将导致数组越界异常! 5. 方法四 使用迭代器迭代器也可以保留状态 6. 方法五 相比于不断修改原来的List,我们其实可以一次遍历的同时把值写入一个新的List,且新的List一定小于等于旧的List。对于ArrayList可以一次分配足够的空间,避免resize的操作。 或 虽然使用了额外的存储空间,但时间复杂度大大降低,还是值得的。 7. 方法六 使用J***a 8引入的流操作其实和方法五等效,但简单了许多 8. 方法七 使用list.removeIf() 配合 lambda表达式底层是迭代器实现 9. 总结其实在实际生产中, 使用最后两种方法是最方便的。 对于需要大量修改的List可以使用方法六,避免多次resize 和 shifting 的性能损失,但需要额外内存。 对于只有少量修改的List可以使用方法七。

到此,以上就是小编对于j***a语言修改代码的问题就介绍到这了,希望介绍关于j***a语言修改代码的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/32923.html

分享:
扫描分享到社交APP