面试中被问到你遇到的java编程中的bug你如何解决的

来自:广懂生活    更新日期:早些时候
1 java web项目你是如何处理高并发的?2 在高访问期间项目出现了一个bug要如何解决?~

1、提高并发量这个东西是在系统架构层面上的,不是一个业务所能处理的,在提高并发量这放方面,启用通常会采用数据库集群,应用集群,负载均衡的方式进行提高。
2、在高访问期间 如果出现了bug,说明你的程序正在被大量用户使用,这时候要看你出现的是什么bug,如果是很严重的bug,例如银行转账的时候会多转给别人钱,这时候当然要把服务给终止掉 ,或者是把此功能禁用,防止引发更多的用户问题。如果是普通的bug,可以事后再进行处理,或者是当即处理,采用热升级的方式部署到生产上

首先如实告知,之后一定表明态度,我可以通过优秀网站和请教前辈将不会的这个东西学会,人总是在发现不会后才能得到进步 来自职Q用户:用户3500175
查阅相关资料,不会就如实回答 来自职Q用户:用户5018153

首先,要认识 bug。
如果一个程序做了它不应该做的事,或者没有做它应该做的事,那就是 bug。bug 很难避免,尤其在规模化的编程过程中。
我们知道从面向过程的角度来说,一个程序是由数据结构和算法构成的,从面向对象的角度来说,程序可以是由类和对象组成的。因此 bug 我这里分成两类:

在一个 Java 程序中,类和对象的关系可能会造成 bug。这是设计时的问题,例如多实例的同步问题、线程冲突和死锁问题,这是常见的两个潜在的 bug。要尽量避免这类 bug,只能在设计时下功夫。思路一定要清晰,一定要清楚每个类要做些什么,什么时候该做些什么。这类 bug 比较容易发现,但是不易修补,因为牵扯到程序的不同部分,有时候相当麻烦,因此最好一开始就不要让它出现。

然后一些细节上的 bug,属于逻辑漏洞,可能是算法上的漏洞。Java 其实这方面要比 C/C++ 安全,因为后者的某些漏洞是致命的,例如内存泄露、指针冲突、野指针等一系列问题,可能直接导致程序崩溃,但是 Java 绝对不会出现指针问题,内存相对安全。但是 Java 也可能导致内存不断消耗,最终崩溃的情况也是有的。这个问题我也碰到过几次了,如何解决?需要你对你大量使用的类非常熟悉,最好事先仔细看看文档,有的类需要你最后 dispose 的,有的类 add 过后需要 remove 的,有的类的某些方法会间接地创造一些对象。这种 bug 不大容易发现,尤其是我们有时候对 JVM 的绝对信任而忽略了这些细节,甚至造成了不好的习惯。要么不碍事,要么很严重,一但出现问题可能会发现同样的问题几乎出现在所有的地方。所以避免这类 bug 只有谨慎,并且要养长良好的习惯。
顺便说一句,Java 内存溢出后程序就直接退出,可能会导致数据丢失之类的,这个责任担当不起的。
然后逻辑漏洞还没讲完,还有一些和内存无关,但是也是逻辑上的疏忽造成的,例如数组越界、空栈、格式不兼容等等。这些相当难发现,有时候是正常的,有时候就报错了。这个可以说是最普遍的漏洞,也是最难发现的漏洞。这类漏洞要看程序员的水平,经验丰富、思维清晰、反应敏捷、习惯良好的程序员会好一点,但是不是所有的程序员都是这样的,再说人无完人,再怎么水平高也难免犯点小错嘛。这种漏洞基本都是在后期测试(传说中的内测)和已发布的测试版中逐渐被发现。为了尽量早发现,内部的测试要做的好,不过首先负责各个部分的程序员之间要定下默契,程序要符合规范,类和方法尽量简单化,不要一个方法出现 4 个以上的参数,因为那样会巨大的增加测试的麻烦。要写好注释,变量名写完整,等等规范就不一一列举了。然后对测试人员的要求也是比较高的,测试人员必须熟练掌握测试技巧,有的团队这些小 bug 的修复也是测试人员做的,那测试人员也要良好掌握调试技巧,团队内人员要保持良好的沟通。

1.先确定是系统bug还是操作问题,如果是系统bug那说明是系统的问题,需要改正;如果是操作问题,只能说明系统不够完善,需要添加一些控制。
2.如果是系统bug,那么需要确定产生bug的原因,找到bug的位置,这个我一般通过eclipse里面的debug功能来确定。
3.找到产生bug的原因后,根据实务和需求改正bug。

先了解是什么Bug

然后了解Bug是如何产生的

从产生的方面去解决


面试中被问到你遇到的java编程中的bug你如何解决的视频

相关评论:
  • 17197299582java面试中经常被问到的问题有哪些?
    樊吴茅java面试中经常被问到的问题有如下:1、进程,线程,协程之间的区别是什么?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高。线程是进程的一个实体,是cpu调度...

  • 17197299582Java开发面试问你说几个开发中遇到的问题如何回答,我举了一个平时遇到...
    樊吴茅面试官的意思应该是你遇到的那些东西都很基础,不算真正的问题。

  • 17197299582java面试中经常被问到的问题有哪些?
    樊吴茅java面试中经常被问到的问题有:1、进程,线程,协程之间的区别是什么?2、你了解守护线程吗?它和非守护线程有什么区别?3、什么是多线程上下文切换?4、创建两种线程的方式?他们有什么区别?5、Thread类中的start()和run()方法有什么区别?6、怎么检测一个线程是否持有对象监视器?7、你知道哪些垃圾...

  • 17197299582应届生面试Java相关岗位可能会被问到哪些技术问题
    樊吴茅也可以参考JDK8中抽象类和接口的区别 10.什么是值传递和引用传递?对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。Java线程 ...

  • 17197299582java面试题目(java面试题大全及答案)
    樊吴茅因此,外部对引用对象所做的改变会反映到所有的对象上。 最后祝你面试顺利!java面试中经常被问到的问题有哪些? java面试中经常被问到的问题有如下: 1、进程,线程,协程之间的区别是什么? 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的...

  • 17197299582java面试问你项目中遇到什么难题
    樊吴茅都会问到框架内容 比如redis存储数据类型,及其时间、空间复杂度 分布式事务以及分布式事务锁【不同服务的事务机制,买票机制】以及消息队列

  • 17197299582java面试问道:从技术方面描述下你做的项目,都用了什么技术,遇到了什 ...
    樊吴茅新手一般在使用SSH时,对配置文件不是很熟悉,可以说这方面问题,就说框架是自己动手搭建...在动手做项目时,很容易出现JS错误..JS因为没有明确错误提示..所以特别难找..我相信你应该也遇见了(除非界面你没动过)其次在做项目时,JAVA自带内的运行效率都很高...你可以说下自己最开始的时候使用的是循环.....

  • 17197299582java高级开发工程师面试问题(java高级开发笔试题)
    樊吴茅java面试中经常被问到的问题有如下:简述string对象,StringBuffer、StringBuilder区分。多态的原理。简要描述面向对象编程的思想。反射的原理。java.util包的UML结构图。Vector和ArrayList、LinkedList区别。“Java是解释执行”,这句话正确吗?考点分析:对于这类笼统的问题,你需要尽量表现出自己的思维深入并...

  • 17197299582JAVA开发一般在面试中都会遇到哪些问题啊?需要注意哪些呢?
    樊吴茅笔试题上的题目有的会问你有的不会 还有你在工作中遇到过什么问题 以及你的团队多少人 怎么分工的 你负责的那个模块 业务逻辑是什么 举个例子(如果现在出现高并发的情况下,你怎么解决,用到哪些技术) 还有你们公司BA是谁写的 上面说的只是一部分 说真的 既然要你去面试 肯定是觉得你可以的 ...

  • 17197299582java面试经历?
    樊吴茅然后这面试官又问我那你大学都学什么课程啊,我又耐着性子解释了一圈。然后他看问不出啥的就没问了。然后就问了一个项目有关的正常问题。开始问我技术了。第一个技术就问我spring框架,然后问我spring主要注重哪些技术,我说了就依赖注入和自动化配置,然后这人问我如何学习spring,我说看了spring...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网