偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

五項最佳實踐讓您的Java代碼免受bug困擾

譯文
開發(fā) 后端
Java編程語言的人氣自然無需質(zhì)疑,不過在編寫代碼時,bug永遠(yuǎn)是困擾每一位從業(yè)者的頭號難題。在今天的文章中,我們將分享五貢最佳實踐,希望幫助大家更為輕松地減少Java開發(fā)中的bug數(shù)量。

【51CTO.com快譯】牢記以下各項基本原則,能夠幫助大家盡可能減少代碼中的bug。

Java編程語言的人氣自然無需質(zhì)疑,從Web應(yīng)用到Android應(yīng)用,這款語言已經(jīng)被廣泛用于開發(fā)各類應(yīng)用及代碼中的復(fù)雜功能。

[[176412]]

不過在編寫代碼時,bug永遠(yuǎn)是困擾每一位從業(yè)者的頭號難題。在今天的文章中,我們將分享五貢最佳實踐,希望幫助大家更為輕松地減少Java開發(fā)中的bug數(shù)量。

原則一:不要依賴初始化

在Java中,開發(fā)者常常依賴構(gòu)造函數(shù)進(jìn)行對象初始化。不過這其實是一種常見誤區(qū)。我們完全可以在無需調(diào)用構(gòu)造函數(shù)的情況下,通過多種方式實現(xiàn)對象分配。

下面來看幾種常用方式:

•    大家可以將所有變量聲明為私有。要訪問該類外的對象,大家可使用GET與SET方法。

•    對每個對象,編寫一個新的私有boolean變量并對其進(jìn)行初始化。

•    編寫一個非構(gòu)造函數(shù)類,其將確保每個對象會在接受調(diào)用之前進(jìn)行初始化。

原則二:保護(hù)類、方法與變量

在代碼當(dāng)中,類、方法與變量分為私有與公共兩類。私有類無法輕松進(jìn)行訪問,這使其成為代碼中的高安全性點。不過公共方法與變量則易于方法,也因此常常成為攻擊突破口。因此,請盡可能限制其范圍。

請記住,只在必要時開放類、方法與變量。

原則三:永遠(yuǎn)對范圍進(jìn)行預(yù)定義

大多數(shù)開發(fā)者完全依賴于軟件包自身的范圍設(shè)定,事實上我們應(yīng)當(dāng)堅持對代碼范圍進(jìn)行預(yù)定義。很多類本身并非完全封閉,這意味著攻擊者能夠?qū)ζ涫┮怨?。黑客可以利用單一漏洞插入自己的類,進(jìn)而從代碼中提取敏感信息。JVM在默認(rèn)情況下即不會封閉,不過允許大家在該軟件包內(nèi)進(jìn)行類封閉。

原則四:避免使用內(nèi)部類

一般來講,開發(fā)者會在同一軟件包內(nèi)其它類需要時使用內(nèi)部類。這些內(nèi)部類通??晒┩卉浖鼉?nèi)全部類進(jìn)行訪問,由此可能引發(fā)的問題在預(yù)定義代碼范圍部分已經(jīng)提到。因此,同樣請僅在必要時使用內(nèi)部類。

原則五:確保類不可克隆

Java提供一項功能,用于在需要時對自有類進(jìn)行克隆。然而這項功能往往被黑客所利用,其能夠使用java.lang.Cloneable從代碼中復(fù)制代碼實例并竊取必要信息。

要解決這個問題,大家只需要在代碼中的每個類中添加以下代碼。

 

  1. public final void clone()throws 
  2.  
  3. java.lang.CloneNotSupportedException { 
  4.  
  5.     thrownewjava.lang.CloneNotSupportedException(); 
  6.  

如果大家希望自己的class具備可克隆性,同時仍然盡可能避免安全問題,那么則可自行定義克隆方法,并將其設(shè)置為final。

如果大家在自己的某個超類中使用了nonfinal克隆方法,則請按以下方式定義該方法:

  1. public final void clone() 
  2.  
  3. throwsjava.lang.CloneNotSupportedException { 
  4.  
  5.     super.clone(); } 

當(dāng)然,沒人能100%掌握J(rèn)ava的全部奧秘,但關(guān)注上述編程原則及實踐,能夠幫助大家更為有效地降低代碼內(nèi)bug數(shù)量。

同志們,加油!

原文標(biāo)題:5 Best Practices For Writing Bug-Free Java Code      原文作者:Malini Somra

【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2017-04-12 22:19:20

2015-10-28 13:28:57

2015-09-21 09:21:07

2020-03-16 08:48:18

Kubernetes容器云原生

2019-07-30 09:00:00

Snowflake數(shù)據(jù)庫性能調(diào)優(yōu)

2017-12-14 08:31:41

DevOps數(shù)據(jù)職能JavaScript

2016-12-13 12:15:20

數(shù)據(jù)中心大數(shù)據(jù)

2012-05-08 16:40:46

Windows XP系統(tǒng)

2016-12-21 09:33:02

關(guān)鍵提示軟件Bug

2021-12-04 23:10:02

Java代碼開發(fā)

2010-09-30 14:51:02

保護(hù)數(shù)據(jù)安全

2022-05-12 15:43:08

數(shù)據(jù)安全數(shù)字化黑客

2021-06-29 16:12:21

詞: 云架構(gòu)混合云云計算

2025-10-22 14:42:50

CIOAIIT

2010-09-09 13:15:59

提高VPN質(zhì)量

2022-09-07 14:44:55

物聯(lián)網(wǎng)網(wǎng)絡(luò)安全

2023-03-02 08:47:31

IT預(yù)算熱點

2016-04-18 10:25:53

DevOps自動化

2022-02-13 00:24:33

開發(fā)VueJavaScrip

2023-06-27 10:21:14

點贊
收藏

51CTO技術(shù)棧公眾號