一次new就會為相應(yīng)的對象開辟一個空間
目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、巫山網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
連續(xù)new,值是改變a1的指向,之前對象由于沒有引用指向,將會變?yōu)椤袄薄?/p>
java的垃圾回收機(jī)制,會在適當(dāng)?shù)臅r機(jī),回收這塊內(nèi)存。
解析惡意代碼的危害機(jī)制與防范
摘要:在當(dāng)今互聯(lián)網(wǎng)時代,很多人還在受著網(wǎng)頁惡意代碼的困擾,在網(wǎng)站代碼編輯過程中,更會因為惡意代碼的轉(zhuǎn)載使用導(dǎo)致整個網(wǎng)頁的癱瘓。本文就“惡意代碼”的危害和防范來進(jìn)行深入解析,以激發(fā)我們的安全防范意識,積極應(yīng)對來自網(wǎng)絡(luò)的安全威脅。
關(guān)鍵詞:惡意代碼Java Applet JavaScript ActiveX
一、惡意代碼綜述
惡意代碼主要包括計算機(jī)病毒(Virus)、蠕蟲(Worm)、木馬程序(Trojan Horse)、后門程序(Backdoor)、邏輯炸彈(Logic Bomb)等等。它使用SCRIPT語言編寫的一些惡意代碼利用IE的漏洞來實現(xiàn)病毒植入。當(dāng)用戶登錄某些含有網(wǎng)頁病毒的網(wǎng)站時,網(wǎng)頁病毒便被悄悄激活,這些病毒一旦激活,可以利用系統(tǒng)的一些資源進(jìn)行破壞。
隨著互聯(lián)網(wǎng)信息技術(shù)的不斷發(fā)展,代碼的“惡意”性質(zhì)及其給用戶造成的危害已經(jīng)引起普遍的關(guān)注,因此我們有必要對惡意代碼進(jìn)行一番了解,讓其危害降低至最低程度。
二、惡意代碼的表現(xiàn)形式
(一)網(wǎng)頁病毒類惡意代碼
網(wǎng)頁病毒類惡意代碼,顧名思義就是利用軟件或系統(tǒng)操作平臺的安全漏洞,通過嵌入在網(wǎng)頁上HTML標(biāo)記語言內(nèi)的Java Applet 應(yīng)用程序、JavaScript 腳本程序、ActiveX 網(wǎng)絡(luò)交互支持自動執(zhí)行,強(qiáng)行修改用戶注冊表及系統(tǒng)配置,或非法控制用戶系統(tǒng)資源、盜取用戶文件、惡意刪除文件,甚至格式化硬盤的非法惡意程序。
根據(jù)目前較流行的常見網(wǎng)頁病毒的作用對象及表現(xiàn)特征,網(wǎng)頁病毒可以歸納為以下兩大種類:
(1)通過Java Script、Applet、ActiveX 編輯的腳本程序修改IE 瀏覽器,表現(xiàn)為:
A 默認(rèn)主頁(首頁)被修改;B 主頁設(shè)置被屏蔽鎖定,且設(shè)置選項無效不可修改;C 默認(rèn)的IE 搜索引擎被修改;D 鼠標(biāo)右鍵菜單被添加非法網(wǎng)站廣告鏈接等。
(2)通過Java Script、Applet、ActiveX 編輯的腳本程序修改用戶操作系統(tǒng),表現(xiàn)為:
A 開機(jī)出現(xiàn)對話框(通常都是用戶不知所云的內(nèi)容);B 系統(tǒng)正常啟動后,但I(xiàn)E 被鎖定網(wǎng)址自動調(diào)用打開;C 格式化硬盤;D 非法讀取或盜取用戶文件;E 鎖定禁用注冊表,編輯reg,轉(zhuǎn)自[星論文網(wǎng)] 注冊表文件格式時出現(xiàn)打開方式錯誤。
(二)腳本類惡意代碼
腳本實際上就是程序,一般都是由應(yīng)用程序提供的編輯語言。應(yīng)用程序包括Java Script、VBScript、應(yīng)用程序的宏和操作系統(tǒng)的批處理語言等。腳本在每一種應(yīng)用程序中所起的作用都是不相同的,比如在網(wǎng)頁中可實現(xiàn)各種動態(tài)效果,在OFFICE 中通常是以“宏”來執(zhí)行一系列命令和指令,可以實現(xiàn)任務(wù)執(zhí)行的自動化,以提供效率,或者制造宏病毒。
(三)漏洞攻擊類代碼
是利用軟件或者操作系統(tǒng)的漏洞而編寫的程序,對用戶系統(tǒng)或者網(wǎng)絡(luò)服務(wù)器進(jìn)行攻擊。比如黑客利用微軟IE 瀏覽器漏洞,編寫漏洞攻擊代碼對用戶進(jìn)行攻擊。
三、惡意代碼的實現(xiàn)機(jī)制
惡意代碼的行為表現(xiàn)各異,破壞程序千差萬別,但基本作用機(jī)制大體相同,其整個作用過程分為6個部分:
①侵入系統(tǒng)。侵入系統(tǒng)是惡意代碼實現(xiàn)其惡意目的的必要條件。惡意代碼入侵的途徑很多,如:從互聯(lián)網(wǎng)下載的程序本身就可能含有惡意代碼;接受已經(jīng)感染惡意代碼的電子郵件;從光盤或U盤往系統(tǒng)上安裝未經(jīng)審查的軟件;黑客或者攻擊者故意將惡意代碼植入系統(tǒng)等。
②維持或提升現(xiàn)有特權(quán)。惡意代碼的傳播與破壞必須盜用用戶或者進(jìn)程的合法權(quán)限才能完成。
③隱蔽策略。為了不讓系統(tǒng)發(fā)現(xiàn)惡意代碼已經(jīng)侵入系統(tǒng),惡意代碼可能會改名、刪除源文件或者修改系統(tǒng)的安全策略來隱藏自己。
④潛伏。惡意代碼侵入系統(tǒng)后,等待一定的條件,病毒具有足夠的權(quán)限時,就發(fā)作進(jìn)行破壞活動。
⑤破壞。惡意代碼的本質(zhì)具有破壞性,其目的是造成信息丟失、泄密,破壞系統(tǒng)完整性等。
⑥重復(fù)1至5對新的目標(biāo)實施攻擊過程。
四、惡意代碼的防范方法
目前,惡意代碼防范方法主要分為兩方面:基于主機(jī)的惡意代碼防范方法和基于網(wǎng)絡(luò)的惡意代碼防范方法。
(一)基于主機(jī)的惡意代碼防范方法
①基于特征的掃描技術(shù):基于主機(jī)的惡意代碼防范方法是目前檢測惡意代碼最常用的技術(shù)。掃描程序工作之前,必須先建立惡意代碼的特征文件,根據(jù)特征文件中的特征串,在掃描文件中進(jìn)行匹配查找。用戶通過更新特征文件更新掃描軟件,查找最新的惡意代碼版本。這種技術(shù)廣泛地應(yīng)用于目前的反病毒引擎中。
②校驗和:校驗和是一種保護(hù)信息資源完整性的控制技術(shù),例如Hash 值和循環(huán)冗余碼等。只要文件內(nèi)部有一個比特發(fā)生了變化,校驗和值就會改變。未被惡意代碼感染的系統(tǒng)首先會生成檢測數(shù)據(jù),然后周期性地使用校驗和法檢測文件的改變情況。
③安全操作系統(tǒng)對惡意代碼的防范:惡意代碼成功入侵的重要一環(huán)是,獲得系統(tǒng)的控制權(quán),使操作系統(tǒng)為它分配系統(tǒng)資源。無論哪種惡意代碼,無論要達(dá)到何種惡意目的,都必須具有相應(yīng)的權(quán)限。否則它將不能實現(xiàn)其預(yù)定的惡意目標(biāo),或者僅能夠?qū)崿F(xiàn)其部分惡意目標(biāo)。
(二)基于網(wǎng)絡(luò)的惡意代碼防范方法
由于惡意代碼具有相當(dāng)?shù)膹?fù)雜性和行為不確定性,惡意代碼的防范需要多種技術(shù)綜合應(yīng)用,包括惡意代碼監(jiān)測與預(yù)警、惡意代碼傳播抑制、惡意代碼漏洞自動修復(fù)、惡意代碼阻斷等?;诰W(wǎng)絡(luò)的惡意代碼防范方法包括:惡意代碼檢測防御和惡意代碼預(yù)警。
這些主要是網(wǎng)頁惡意代碼,也就是網(wǎng)頁病毒造成的危害。而用腳本編寫的蠕蟲病毒的危害就更大了,它不再是針對一臺計算機(jī),而是迅速傳播,對網(wǎng)絡(luò)上所有計算機(jī)造成危害,直至網(wǎng)絡(luò)被拖垮最后崩潰。
五、結(jié)語
在互聯(lián)網(wǎng)信息化高速發(fā)展的今天,任何軟件在編寫時或多或少都有自己的漏洞,為此我們應(yīng)該做到:
1)安全設(shè)置。我們上網(wǎng)瀏覽時不能抱有僥幸心理,不關(guān)心安全設(shè)置,認(rèn)為惡意代碼與我無緣,對最基本的瀏覽器安全設(shè)置問題也不關(guān)心,從而降低了系統(tǒng)抵御惡意代碼的免疫能力,致使系統(tǒng)在遭遇惡意代碼時不能幸免于難。
2)不瀏覽來歷不明的網(wǎng)站。不要輕易去瀏覽一些來歷不明的網(wǎng)站和下載相關(guān)內(nèi)容。
3)軟件升級,安裝系統(tǒng)補(bǔ)丁。軟件要及時更新版本,尤其是操作系統(tǒng),一定要?!按颉毖a(bǔ)丁常升級。
4)安裝殺毒軟件(防火墻)。安裝并及時將殺毒軟件(防火墻)升級至最新版本,同時開啟實時監(jiān)控功能并不定期殺毒,最大限度地把惡意代碼拒之門外。 本文出自: http://,轉(zhuǎn)自[星論文網(wǎng)]
對于每個編碼人員來說,避免重復(fù)代碼可能是大家都想做的。對于有一定經(jīng)驗(對基本的OO原則有一定經(jīng)驗)的開發(fā)人員來說,大部分情況下都能比較自然地避免重復(fù)代碼的問題,寫代碼的時候,感覺有邏輯重復(fù)的情況,會很自然的憑感覺經(jīng)驗做相應(yīng)的處理和復(fù)用。以下是個人經(jīng)驗,供新手參考。 既然我們在用Java之類的面向?qū)ο蟮恼Z言編碼,那么重復(fù)代碼可以大致分為如下兩種情況: 1、類型體系之內(nèi)(父類型和子類型、子類型之間)存在重復(fù)邏輯代碼 2、類型體系之外的重復(fù)代碼 【類型體系內(nèi)的重復(fù)代碼處理】 1、如果重復(fù)代碼屬于類型本身操作(即應(yīng)該是以實例方法存在),則很自然的應(yīng)用重構(gòu)技巧,公共代碼往上走。如果Sub Type之間有這種重復(fù)代碼,把重復(fù)代碼遷移到DefaultAdatper中。 2、如果重復(fù)代碼不屬于類型本身操作(即應(yīng)該是以靜態(tài)方法存在),則需要判斷一下這種靜態(tài)代碼的功能使用范圍: A、如果是非常全局性的,例如有關(guān)java流的輔助操作,則應(yīng)該果斷的抽取出來,封裝到一個Utility工具類中,例如可以叫做IOUtil。把這個Utility類放置到非常底層模塊中,這樣上層很多功能模塊中都可以使用,否則可能會導(dǎo)致上層多個模塊中都有類似IOUtil的類,又是重復(fù)代碼。1publicclassIOUtil{2/**3 *工具類,不需要產(chǎn)生實例。但是也不需要應(yīng)用單態(tài)!??!4*/5privateIOUtil(){}67publicstaticInputStreambuildInputSteam(Filefile){//}89//其他公共靜態(tài)操作10} B、如果這種靜態(tài)操作只對本類型體系有意義,則有兩種常用的處理方法:第一種是把這種靜態(tài)方法遷移到基類DefaultAdapter中,但是不要在DefaultAdapter中放置過多的類似靜態(tài)方法;第二種是把這種靜態(tài)方法封裝到一個helper助手類中,例如MyTypeHelper,其中放置了MyType類型體系中需要使用的一些靜態(tài)方法。如果第一種DefaultAdapter中堆放了較多的靜態(tài)方法,則可以用helper助手類的方式。1publicclassMyTypeHelper{2/**3 *助手類,不需要產(chǎn)生實例。但是也不需要應(yīng)用單態(tài)!??!4*/5privateMyTypeHelper(){}67publicstaticbooleanvalidateParamer(Objectparamer){//}89//其他公共靜態(tài)操作10} 這個helper一般需要和接口、默認(rèn)適配類一起暴露,便于擴(kuò)展子類型使用。示意圖如下: 【類型體系之外的重復(fù)代碼處理】 類型體系之外的重復(fù)代碼處理相對就很簡單了,根據(jù)重復(fù)代碼功能適用范圍,封裝到對應(yīng)的Util類或者Helper類中。這里就不細(xì)講了~_~ 【有關(guān)公用代碼的幾個概念】 個人意見,僅供參考。 助手類(Helper class) :我覺得首先這個類產(chǎn)生的目的是為特定模塊或者特定功能服務(wù)的(助手嗎~_~),不是全局的。而且完全可以隱藏在特定模塊內(nèi)部,很多時候不需要暴露。Helper類的命名要有針對性,不能搞成一個麻辣燙,里面的靜態(tài)操作既為這種功能服務(wù),又為那種功能服務(wù),盡量做個忠臣,不要同時當(dāng)多個主子的助手。 工具類(Utility class) :一般是全局的,往往有一定普世價值,也就是說往往是全局通用的。 例如你在做一個模塊,這個模塊功能是處理表單,則關(guān)于處理表單的一些公用靜態(tài)操作就應(yīng)該放置到該模塊的一個助手類中,名稱類似于FormProcesserHelper。再有一個導(dǎo)出報表的功能,則對應(yīng)的助手類可以稱之為ExportReportHelper,建議這兩個helper不要混在一起。有人可能會說,這樣會不會導(dǎo)致大量的助手類呢?這邊有個粒度把握的問題(經(jīng)驗會發(fā)生作用~_~),但是只要是助手類命名規(guī)范,則一個助手類的名字就基本上可以告訴用戶你提供什么樣的服務(wù)了。 假如你現(xiàn)在處理的是有關(guān)IO操作的重復(fù)代碼,則需要遷移到全局的工具類中,因為這樣的操作往往適應(yīng)于全局的。 Facade class(門面類) :這個乍看起來和助手類有點(diǎn)像,往往是綁定于特定模塊。但是,要搞清楚,門面類是用來封裝子系統(tǒng)的,代理對模塊常用核心功能的訪問的,針對用戶需要的常用場景提供一些輔助操作,幫助用戶更好的使用此模塊的主要功能。 面向客戶端或者其他子系統(tǒng)或模塊的,不是用來處理對應(yīng)模塊中重復(fù)代碼的 ?。?!有關(guān)詳細(xì)信息,請參加Facade設(shè)計模式的文檔。 【注意】Helper class、Utility class、Facade class一般都不需要生實例,暴露的都是靜態(tài)操作,更不需要誤寫成單態(tài),別濫用單態(tài)?。?!后記:: 關(guān)于重復(fù)代碼的處理,個人以為既需要技巧(別人總結(jié)出來的技巧),更需要經(jīng)驗(經(jīng)驗往往給你感覺,跟著感覺走一般就不會太離譜~_~)。 希望對開發(fā)新手有作用~_~
重復(fù)代碼很容易產(chǎn)生,主要是因為開發(fā)的本質(zhì)就是復(fù)制粘貼,找一段類似的邏輯做一個簡單的額修改就上線了。這樣做在開發(fā)的時候可能沒啥問題,但是一旦重復(fù)代碼變多,面對一個簡單的修改修改就要在整個項目中不斷地找,一個個修改,這樣速度和效率不能保證,而且很容易出錯。因而,使用能放棄死代碼的編譯器可以使模板代碼產(chǎn)生更小的二進(jìn)制
分享標(biāo)題:java重復(fù)代碼的危害 java去重復(fù)代碼
URL分享:http://sd-ha.com/article28/hhesjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站制作、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)