云南北大青鸟设计培训告诉你让Java代码免受bug困扰?Java编程语言的人气自然无需质疑,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能 。不过在编写代码时 , bug永远是困扰每一位从业者的头号难题 。在今天的文章中,java课程将分享五贡最佳实践 , 希望帮助大家更为轻松地减少Java开发中的bug数量 。
原则一:不要依赖初始化
在Java中,开发者常常依赖构造函数进行对象初始化 。不过这其实是一种常见误区 。我们完全可以在无需调用构造函数的情况下,通过多种方式实现对象分配 。
下面来看几种常用方式:
?大家可以将所有变量声明为私有 。要访问该类外的对象,大家可使用GET与SET方法 。
?对每个对象,编写一个新的私有boolean变量并对其进行初始化 。
?编写一个非构造函数类,其将确保每个对象会在接受调用之前进行初始化 。
【java代码埋bug java代码记不住怎么办】原则二:保护类、方法与变量
在代码当中,类、方法与变量分为私有与公共两类 。私有类无法轻松进行访问,这使其成为代码中的高安全性点 。不过公共方法与变量则易于方法 , 也因此常常成为攻击突破口 。因此,请尽可能限制其范围 。
请记住,只在必要时开放类、方法与变量 。
原则三:永远对范围进行预定义
大多数开发者完全依赖于软件包自身的范围设定,事实上我们应当坚持对代码范围进行预定义 。很多类本身并非完全封闭 , 这意味着攻击者能够对其施以攻击 。黑客可以利用单一漏洞插入自己的类,进而从代码中提取敏感信息 。JVM在默认情况下即不会封闭 , 不过允许大家在该软件包内进行类封闭 。
原则四:避免使用内部类
一般来讲,开发者会在同一软件包内其它类需要时使用内部类 。这些内部类通常可供同一软件包内全部类进行访问,由此可能引发的问题在预定义代码范围部分已经提到 。因此,同样请仅在必要时使用内部类 。
原则五:确保类不可克隆
Java提供一项功能,用于在需要时对自有类进行克隆 。然而这项功能往往被黑客所利用,其能够使用java.lang.Cloneable从代码中复制代码实例并窃取必要信息 。
面试中被问到你遇到的java编程中的bug你如何解决的首先,要认识 bug 。
如果一个程序做了它不应该做的事 , 或者没有做它应该做的事,那就是 bug 。bug 很难避免 , 尤其在规模化的编程过程中 。
我们知道从面向过程的角度来说,一个程序是由数据结构和算法构成的 , 从面向对象的角度来说,程序可以是由类和对象组成的 。因此 bug 我这里分成两类:
在一个 Java 程序中,类和对象的关系可能会造成 bug 。这是设计时的问题,例如多实例的同步问题、线程冲突和死锁问题,这是常见的两个潜在的 bug 。要尽量避免这类 bug,只能在设计时下功夫 。思路一定要清晰,一定要清楚每个类要做些什么,什么时候该做些什么 。这类 bug 比较容易发现,但是不易修补 , 因为牵扯到程序的不同部分,有时候相当麻烦,因此最好一开始就不要让它出现 。
然后一些细节上的 bug,属于逻辑漏洞,可能是算法上的漏洞 。Java 其实这方面要比 C/C安全,因为后者的某些漏洞是致命的 , 例如内存泄露、指针冲突、野指针等一系列问题,可能直接导致程序崩溃 , 但是 Java 绝对不会出现指针问题,内存相对安全 。但是 Java 也可能导致内存不断消耗,最终崩溃的情况也是有的 。这个问题我也碰到过几次了,如何解决?需要你对你大量使用的类非常熟悉 , 最好事先仔细看看文档,有的类需要你最后 dispose 的,有的类 add 过后需要 remove 的,有的类的某些方法会间接地创造一些对象 。这种 bug 不大容易发现,尤其是我们有时候对 JVM 的绝对信任而忽略了这些细节,甚至造成了不好的习惯 。要么不碍事,要么很严重,一但出现问题可能会发现同样的问题几乎出现在所有的地方 。所以避免这类 bug 只有谨慎 , 并且要养长良好的习惯 。
顺便说一句,Java 内存溢出后程序就直接退出,可能会导致数据丢失之类的,这个责任担当不起的 。
然后逻辑漏洞还没讲完 , 还有一些和内存无关,但是也是逻辑上的疏忽造成的,例如数组越界、空栈、格式不兼容等等 。这些相当难发现,有时候是正常的,有时候就报错了 。这个可以说是最普遍的漏洞 , 也是最难发现的漏洞 。这类漏洞要看程序员的水平,经验丰富、思维清晰、反应敏捷、习惯良好的程序员会好一点 , 但是不是所有的程序员都是这样的,再说人无完人,再怎么水平高也难免犯点小错嘛 。这种漏洞基本都是在后期测试(传说中的内测)和已发布的测试版中逐渐被发现 。为了尽量早发现,内部的测试要做的好,不过首先负责各个部分的程序员之间要定下默契 , 程序要符合规范,类和方法尽量简单化,不要一个方法出现 4 个以上的参数 , 因为那样会巨大的增加测试的麻烦 。要写好注释,变量名写完整,等等规范就不一一列举了 。然后对测试人员的要求也是比较高的,测试人员必须熟练掌握测试技巧,有的团队这些小 bug 的修复也是测试人员做的,那测试人员也要良好掌握调试技巧,团队内人员要保持良好的沟通 。
请教Java高手一个“Java小bug原因分析”的小问题 。确认你的Book类中的 getter setter方法 是不是public的
Demo2类中 new handler.getBook(); 这行代码报错了,你要注意啊 , new 是调用构造方法的 handler后面应该有个括号,另外handler应该是类名吧,为什么是首字母小写
怎样在 java中加隐藏bug?你这是想干坏事的节奏啊 。
你想办法让程序定期出点故障不就行了?
在核心代码的位置,定期或者不定期的触发一个事件 。这个事件 , 可以抛出一些异常 。
比如说,每当有用户请求时,就去某个网页上读取一个指令 , 当指令为删除文件 的时候,就删掉某一个文件 , 程序就报错了 。
或者隔一段时候,随机抽出一个文件,从中截取一段代码 , 去掉
方法其实很多,但是不建议你使用 。
这些东西,真正懂代码的人 , 都能很快找到你的代码,把它干掉 。编译了也没用,现在很多反编译工具的 。
关于java代码埋bug和java代码记不住怎么办的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 涂鸦下载,仿苹果涂鸦下载
- 索引目录网站搭建,如何做索引目录链接
- 水管工具直播,接水管工具
- 关于windows系统被限制的信息
- u盘下载歌曲音响怎么放,u盘下载歌曲音响怎么放歌
- oracle数据库获取第一行数据库,oracle获取上一条记录
- 两人真心话大冒险小游戏,两人玩的真心话大冒险
- go语言底层网络 golang底层是什么语言
- java随机生成小数代码,java随机生成小数代码怎么写