牢记以下五项基本原则,能够帮助大家尽可能减少代码中的bug。

  Java编程语言的人气自然无需质疑,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能。

  不过在编写代码时,bug永远是困扰每一位从业者的头号难题。本文我们将分享五项java编程基本元原则帮助大家尽可能减少代码中的bug,希望大家能轻松地减少Java开发中的bug数量。

  原则一:不要依赖初始化

  在Java中,开发者常常依赖构造函数进行对象初始化。不过这其实是一种常见误区。我们完全可以在无需调用构造函数的情况下,通过多种方式实现对象分配。

  下面来看几种常用方式:

  (1) 大家可以将所有变量声明为私有。要访问该类外的对象,大家可使用GET与SET方法。

  (2) 对每个对象,编写一个新的私有boolean变量并对其进行初始化。

  (3)编写一个非构造函数类,其将确保每个对象会在接受调用之前进行初始化。

  原则二:保护类、方法与变量

  在代码当中,类、方法与变量分为私有与公共两类。私有类无法轻松进行访问,这使其成为代码中的高安全性点。不过公共方法与变量则易于方法,也因此常常成为攻击突破口。因此,请尽可能限制其范围。

  请记住,只在必要时开放类、方法与变量。

  原则三:永远对范围进行预定义

  大多数开发者完全依赖于软件包自身的范围设定,事实上我们应当坚持对代码范围进行预定义。很多类本身并非完全封闭,这意味着攻击者能够对其施以攻击。黑客可以利用单一漏洞插入自己的类,进而从代码中提取敏感信息。JVM在默认情况下即不会封闭,不过允许大家在该软件包内进行类封闭。

  原则四:避免使用内部类

  一般来讲,开发者会在同一软件包内其它类需要时使用内部类。这些内部类通常可供同一软件包内全部类进行访问,由此可能引发的问题在预定义代码范围部分已经提到。因此,同样请仅在必要时使用内部类。

  原则五:确保类不可克隆

  Java提供一项功能,用于在需要时对自有类进行克隆。然而这项功能往往被黑客所利用,其能够使用java.lang.Cloneable从代码中复制代码实例并窃取必要信息。

  要解决这个问题,大家只需要在代码中的每个类中添加以下代码。

  public final void clone()throws

  java.lang.CloneNotSupportedException {

  thrownewjava.lang.CloneNotSupportedException();

  }

  如果大家希望自己的class具备可克隆性,同时仍然尽可能避免安全问题,那么则可自行定义克隆方法,并将其设置为final。

  如果大家在自己的某个超类中使用了nonfinal克隆方法,则请按以下方式定义该方法:

  public final void clone()

  throwsjava.lang.CloneNotSupportedException {

  super.clone(); }

  当然,没人能100%掌握Java的全部奥秘,但关注上述编程原则及实践,能够帮助大家更为有效地降低代码内bug数量。

WEB前端学习交流群21 598399936

转载于:https://www.cnblogs.com/luludehuhuan/p/6269223.html

五大原则让你的代码不再受bug的困扰相关推荐

  1. 关窗户和代码——学习12字原则:授之以欲,受之以愉,渔之以渔

    关于关纱窗关窗户事情引发的五个讨论: ● 关窗户和写代码什么关系? ● 软件设计原则,有什么? ● 为什么要有"开闭原则"? ● 学习的12字原则,都是什么? ● 迪米特法则,是什 ...

  2. 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP

    前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第2篇,开闭原则OCP(The Open/Closed Principle ). 开闭原则的描述是: Software ...

  3. 面向对象的三个基本特征是:封装、继承、多态及其五大原则

    阅读数:634 面向对象的三个基本特征是:封装.继承.多态 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方 ...

  4. java五大原则_Java成长第五集--面向对象设计的五大原则

    S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写.以下图说明: 下面就个人的理解来说说这五大原则的含义到 ...

  5. 设计模式原则(单一、开放封闭、里氏代换、依赖倒转、迪米特法则五大原则)...

    原文:设计模式原则(单一.开放封闭.里氏代换.依赖倒转.迪米特法则五大原则) 单一职责原则 单一职责原则,就一个类而言,应该仅有一个引起它变化的原因.   如果一个类承担的职责过多,就等于把这些职责耦 ...

  6. PHP面向对象设计的五大原则

    面向对象设计的五大原则:单一职责原则.接口隔离原则.开放-封闭原则.替换原则.依赖倒置原则.这些原则主要是由Robert C.Martin在<敏捷软件开发--原则.方法.与实践>一书中总结 ...

  7. 十分钟上手 React+MirrorX,从此前端大神代码不再难懂 | 原力计划

    作者 | 杨若瑜 来源 | CSDN博客,责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 随着React的普及,很多大厂的前端必备React相关知识,甚至已 ...

  8. solid 设计原则 php,面向对象设计SOLID五大原则

    今天我给大家带来的是面向对象设计SOLID五大原则的经典解说. 我们知道,面向对象对于设计出高扩展性.高复用性.高可维护性的软件起到很大的作用.我们常说的SOLID五大设计原则指的就是: S = 单一 ...

  9. 面向对象:三大特性与五大原则

    面向对象:三大特性与五大原则 面向对象(Object Oriented, OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布 ...

最新文章

  1. Leetcode 62. Unique Paths
  2. 判断一个数是否是2的平方
  3. SAP HANA Database Explorer 里 SQL console 的用法
  4. Event Organization Site - To be published on 4th August
  5. MySQL 8.0.12 有什么新内容?
  6. 6. 以下耦合度中最松散的耦合是_什么是程序设计中的高内聚、低耦合?
  7. centos6.5 x86_64安装rsyslog + loganalyzer
  8. 程序员得到的报酬与他们的生产力不成正比
  9. xp系统怎么定时锁定计算机,电脑怎么设置自动锁屏_XP系统电脑怎么设置自动锁屏...
  10. ArcGIS土地利用重分类(一)简单的reclass by table方法
  11. php库函数是什么,PHP常用库函数
  12. 注册apple id方法
  13. 五线舵机驱动程序_16路舵机驱动板程序使用说明
  14. 智慧城市投入与产出相关分析预评估模型研究
  15. Android系统定位获取经纬度
  16. amlogic logo amlogic rk tvbox 电视盒 定制化开发(一) 开机logo 定制
  17. X-Space二级(三级)域名配置
  18. 6、语句(if、switch、for、while、for...in/of、do-while、break、continue、label、return、throw、try-catch-finally、w
  19. Silvaco TCAD仿真9——半导体PN结仿真
  20. 蒲公英内测托管:从隐私合规开始,让我们的数据安全流通

热门文章

  1. 儿童手表怎么删除联系人_华为儿童手表4X体验:与你一起守护孩子的成长,带娃不再辛苦...
  2. kvm虚拟化_KVM 虚拟化环境搭建 - WebVirtMgr
  3. LeetCode 1024. 视频拼接(动态规划/贪心)
  4. LeetCode MySQL 185. 部门工资前三高的所有员工(dense_rank)
  5. 泰坦尼克号生存预测入门
  6. LeetCode 1016. 子串能表示从 1 到 N 数字的二进制串(bitset)
  7. 如何选择数据结构和算法(转)
  8. 自动化运维Shell课堂笔记
  9. Java基础10(反射)
  10. 征稿 | 软件学报专刊征文:知识赋能的信息系统