java優(yōu)雅代碼例子 簡(jiǎn)短的java代碼

JAVA 類名.方法名(這里面寫的是什么)能不能寫個(gè)代碼例子我

要是類名直接調(diào)用的方法,那這個(gè)方法就是靜態(tài)的(static)方法,是不用new出新對(duì)象實(shí)例就可以直接調(diào)用的方法。例子如下:

為臨西等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及臨西網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、臨西網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

class A{

public static void Method1(int a, int b){

//方法體

}

類名的命名是有講究的,類名、屬性名、變量名一般是名詞,或者是形容詞+名詞。

方法一般是動(dòng)詞,或者是動(dòng)詞+名詞,以AnnotationTest作為類名和以TestAnnotation作為類名是有區(qū)別的,前者是注解的測(cè)試,符合名詞的特征,后者是測(cè)試注解,聽起來就是一個(gè)動(dòng)作名稱,是方法的命名特征。

擴(kuò)展資料

關(guān)鍵詞主要有static和abstract兩個(gè)關(guān)鍵詞。有static修飾的方法叫做靜態(tài)方法。沒有的則叫非靜態(tài)方法。其中我們最熟悉的main方法就有static 修飾。這個(gè)方法也是我最不熟悉搞不懂的方法。

static方法一般稱作靜態(tài)方法,由于靜態(tài)方法不依賴于任何對(duì)象就可以進(jìn)行訪問,因此對(duì)于靜態(tài)方法來說,是沒有this的。因?yàn)樗灰栏接谌魏螌?duì)象,既然都沒有對(duì)象,就談不上this了。

用static修飾的方法。由于類方法是屬于整個(gè)類的,所以類方法的方法體中不能有與類的對(duì)象有關(guān)的內(nèi)容。即類方法體有如下限制:

1、類方法中不能引用對(duì)象變量;

2、類方法中不能調(diào)用類的對(duì)象方法;

3、在類方法中不能調(diào)使用super,this關(guān)鍵字;

4、類方法不能被覆蓋。

Java代碼的優(yōu)化方法有哪些?

說到代碼優(yōu)化,每個(gè)人或多或少都掌握一到兩種方法,但是這樣的方法對(duì)提升代碼運(yùn)行效率效果不大,最重要是對(duì)代碼的重視和了解,這樣才能提升代碼的運(yùn)行效率。在進(jìn)行代碼優(yōu)化的過程中,方法是非常重要的,多掌握幾種方法,根據(jù)代碼的不同情況選擇適合的方法進(jìn)行優(yōu)化。下面電腦培訓(xùn)為大家介紹Java代碼優(yōu)化的幾種方法。

1、使用指定類、方法的final修飾符

具有final修飾符的類不可派生。在Java核心API中,有許多最終應(yīng)用程序的例子,例如java.lang.String,整個(gè)類都是final。為類指定final修飾符允許繼承類,并且為方法指定final修飾符允許覆蓋該方法。如果將類指定為final,IT培訓(xùn)認(rèn)為該類的所有方法都是final。Java編譯器將尋找內(nèi)聯(lián)所有最終方法的機(jī)會(huì)。內(nèi)聯(lián)對(duì)于提高Java操作的效率非常重要。這可以將性能平均提高50%。

2、重用對(duì)象

String對(duì)象的使用是非常重要的,StringBuilder/StringBuffer并不是字符串連接。由于Java虛擬機(jī)需要時(shí)間來生成對(duì)象,所以將來垃圾收集和處理這些對(duì)象可能需要一些時(shí)間。因此,生成太多對(duì)象將對(duì)程序的性能產(chǎn)生很大影響。

3、使用局部變量

調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在堆棧中,速度更快。其他變量(如靜態(tài)變量和實(shí)例變量)在堆中創(chuàng)建并且速度較慢。此外,回龍觀北大青鳥發(fā)現(xiàn)在堆棧中創(chuàng)建的變量,當(dāng)方法完成運(yùn)行時(shí),內(nèi)容消失,不需要進(jìn)行額外的垃圾收集。

4、及時(shí)關(guān)閉流

在Java編程過程中,在執(zhí)行數(shù)據(jù)庫連接和I/O流操作時(shí)要小心。使用后,北大青鳥回龍觀校區(qū)官網(wǎng)建議應(yīng)及時(shí)關(guān)閉以釋放資源。因?yàn)檫@些大型物體的操作會(huì)導(dǎo)致系統(tǒng)的大量開銷,稍微粗心會(huì)導(dǎo)致嚴(yán)重的后果。

求一個(gè)簡(jiǎn)單的java代碼

public class Message {

public static void main(String[] args){

String name;

int age;

System.out.println("請(qǐng)輸入姓名,回車結(jié)束:"); //提示輸入

Scanner sc = new Scanner(System.in);

name = sc.nextLine(); //為變量賦值

System.out.println("請(qǐng)輸入年齡,回車結(jié)束:");

age = sc.nextInt();

System.out.println("姓名:"+name+"\n年齡:"+age); //打印姓名及年齡

}

}

//不知道這樣行么?

如何寫出優(yōu)雅Java編程

一、不要使用魔法數(shù)字,盡量定義枚舉、常量、宏:

我常常見到表示各種狀態(tài)的數(shù)字,0,1,2....,我真的不知道這表示什么含義,如果

你在不在文檔中說明的話,這個(gè)東東過幾天連你自己都不知道個(gè)一二三了。

二、命名要具有描述力,盡量使用全名而不是自創(chuàng)的縮寫,除非地球人都這么用這個(gè)縮寫:

我常??吹揭恍┳詣?chuàng)的縮寫,這個(gè)縮寫或許只有你自己知道,類名,方法名,參數(shù)名

尤其要有好的描述里,局部變量尚可容忍。我寧可容忍超過40個(gè)字符的命令,也不愿意

看到只有一兩個(gè)字母的命名,當(dāng)然迭代用的i,j除外。當(dāng)然命名不要太長(zhǎng),太長(zhǎng)說明你的類和

方法要做的事情太多,請(qǐng)你拆分出更多細(xì)粒度功能單一的類和方法。

三、同一類東東命名方式盡可能統(tǒng)一,比如類名使用大寫字母開頭的單詞,變量使用

下劃線分割開來的小寫字母單詞,常量使用下滑線分割的開來的大寫字母單詞。不要

交替使用。

四、函數(shù)、類功能盡可能單一,不要試圖寫一個(gè)萬能/超級(jí)函數(shù)或者類。

一個(gè)類和方法要有單一的職責(zé),這樣的類和方法只做一件事,并且容易把他做好。

1、不要試圖寫一個(gè)強(qiáng)大無比的方法。

我常??吹揭恍┰噲D寫的多么“精妙”無比多么“強(qiáng)大”的函數(shù),事實(shí)上不是什么精妙,而是

代碼的臭味道。精妙強(qiáng)大無比萬能的方法往往你耗費(fèi)大量精力去設(shè)計(jì)算法,試圖覆蓋現(xiàn)在的各

種可能,而無法面對(duì)將來新的需求,隨著新的需求,你的這個(gè)精妙的方法需要的修改并且改起來

極其痛苦。在一次次的痛苦與精妙的演化中,你的方法越來越復(fù)雜,并且每一次修改你都會(huì)面

臨影響以前功能的風(fēng)險(xiǎn)。這個(gè)方法使用者需要小心的處理你的精妙之處,如果沒有精妙傳遞好參

數(shù),那么這個(gè)方法再也不精妙了,而是直接廢掉了。

KISS(keep it simple and stupid)原理就是這個(gè)道理,你要使你的代碼盡可能簡(jiǎn)單,讓人

看到有一目了然的清爽,而不是因?yàn)樵O(shè)計(jì)了一個(gè)精妙無比的萬能方法而沾沾自喜。這里的簡(jiǎn)單不是

簡(jiǎn)潔的代名字。有時(shí)候簡(jiǎn)潔是那種傳說的“精妙”的代碼。

2、不要寫做多件事情的方法和類,你做一件事情,你就寫一個(gè)對(duì)應(yīng)的方法,不要試圖通過參數(shù)來判定各種情況,然后做事情,并且做的事情和你方法描述的不一致。當(dāng)你發(fā)現(xiàn)你的方法名字想不出來好的名字了,或者要加or和and了,那么請(qǐng)你拆分出更多單一的方法。

不要舉一些linux完成多種功能系統(tǒng)調(diào)用,這是被迫的,因?yàn)橄到y(tǒng)調(diào)用的數(shù)量是有限制的,它只有有限的空間來描述系統(tǒng)調(diào)用號(hào)和系統(tǒng)調(diào)用的映射表,不要在應(yīng)用程序開發(fā)中效仿而誤以為優(yōu)雅強(qiáng)大。我最惡心根據(jù)參數(shù),然后一大堆的if..else 和switch..case判斷。

五、不要修改已有的類和方法而是擴(kuò)展它。

這是程序設(shè)計(jì)的一個(gè)重要原則,開閉原則,在面向?qū)ο蟮恼Z言中尤為重要。在面向過程中主要表現(xiàn)在,不要在一個(gè)函數(shù)要應(yīng)對(duì)和這個(gè)函數(shù)相似的一個(gè)需求了,就在這個(gè)加個(gè)if,來修改這個(gè)方法,試圖重用和避免重復(fù)。而是要把公用的部分抽出來成一個(gè)小的功能函數(shù),然后增加一個(gè)應(yīng)對(duì)新的類似這個(gè)需求的處理方法。在面向?qū)ο笾?,例如使用策略模式、訪問者模式、Extend Object模式。

六、不要重復(fù)你自己(DRY):

程序最怕的是copy,paste,到處是重復(fù)的代碼。copy,paste經(jīng)常被誤以為快速完成需要用的功能的高效方式而被到處使用。你每重復(fù)一次,你就得負(fù)責(zé)保持他們的一致性,你就得在一處增加新的功能時(shí),你就的把這個(gè)的功能加到其他地方。還在我剛會(huì)寫代碼的時(shí)候去了一個(gè)小公司,他們的代碼到處是copy,paste的痕跡,當(dāng)要在現(xiàn)有的功能增加審計(jì)功能是,他們開始下命令了,每個(gè)人加幾行代碼來做審計(jì),真不知道那么多人寫的審計(jì)版本,分散到那么多處,這個(gè)審計(jì)功能是否可信有用。

避免DRY的方法就是抽象,分離變化。不管是面向?qū)ο筮€是面向過程,分離變化并抽象之是最主要的設(shè)計(jì)原則。設(shè)計(jì)模式中的模板方法,我們常用的回調(diào)都是我們常用的方法。

我發(fā)現(xiàn)越是提供更多回調(diào)處理的語言和框架,就越具有靈活性和易用性。ruby語言之所以有如此的威力,主要是因?yàn)樗峁┝烁嗟幕卣{(diào)處理。它可以在動(dòng)態(tài)的給一個(gè)類增加方法,這樣可以在超類中定義增加方法的方法,然后再子類調(diào)用,子類就具有無比的能力。它的block提供了強(qiáng)大的回調(diào)機(jī)制,我只要不知道如何處理了我就yield出來,method missing機(jī)制更是神秘?zé)o比,你可以寫出像find_by_name_and_age,2.days.ago這樣像自然語言一樣易讀的代碼。

七、不要跨越邊界,在適合的地方寫代碼。

在分層的架構(gòu)中,不要跨越層的邊界。例如web開發(fā)的三層架構(gòu):

數(shù)據(jù)訪問層(DAO)、業(yè)務(wù)層(Service)、表現(xiàn)層。

不要在業(yè)務(wù)層裸寫SQL來做事情,不要在業(yè)務(wù)層摻和進(jìn)來表現(xiàn)層的東東,不要在表現(xiàn)層/控制器中寫業(yè)務(wù)的東東。既然已經(jīng)分層了,那么就要好好的遵守它,如果到處跨越邊界的話,那么和不分層沒有什么區(qū)別,使得每一層都不倫不類。例如你應(yīng)該在業(yè)務(wù)層進(jìn)行事務(wù)管理,而你的控制器到處是業(yè)務(wù)代碼,那將無法控制。如果你的業(yè)務(wù)層到處是SQL,我不知道你的DAO存在的意義了。

八、分層的web架構(gòu):

DAO層最好按照模型來劃分dao類,如果業(yè)務(wù)很簡(jiǎn)單,也可以將相關(guān)的模型合并為一個(gè)DAO。

Service層,不要按照DAO和Service一一對(duì)應(yīng)的方式劃分,而是要按照業(yè)務(wù)的類別和實(shí)際情況來劃分。事實(shí)上Service層通常是用來處理涉及到多個(gè)模型的業(yè)務(wù),而涉及到一個(gè)模型的業(yè)務(wù),常常被放在模型中,這是一種自然而更面向?qū)ο蟮脑O(shè)計(jì)方法。只有數(shù)據(jù)的模型被稱為貧血型模型,這種模型被認(rèn)為是對(duì)面向?qū)ο蟮囊环N背離,而在模型中放置專有的業(yè)務(wù)方法,不僅有利于公用,而且模型更具有描述力。

九、關(guān)于MVC:

MVC是一種松耦合的設(shè)計(jì)方案,最容易誤用的就是控制器(c)。控制器只負(fù)責(zé)調(diào)用業(yè)務(wù)方法,準(zhǔn)備好數(shù)據(jù)供View去展現(xiàn)。而不要把業(yè)務(wù)和如何展示的東東放在里面。我常常看到有人在控制器中拼html片段和寫一些業(yè)務(wù)相關(guān)的代碼。

十、順便說一下異常的使用。

如果你是使用語言支持異常機(jī)制,那么盡可能的使用異常機(jī)制和定義好與自己業(yè)務(wù)相關(guān)的異常,而不是通過返回值表示正確和錯(cuò)誤。如果你使用的語言支持異常機(jī)制,請(qǐng)不要寫類linux下c似的代碼形式,每寫一個(gè)函數(shù),我就寫一個(gè)判斷返回值調(diào)用是否成功,嚴(yán)重分離了我對(duì)核心業(yè)務(wù)的關(guān)注。異常提供了優(yōu)雅的處理錯(cuò)誤的方法。

標(biāo)題名稱:java優(yōu)雅代碼例子 簡(jiǎn)短的java代碼
鏈接分享:http://muchs.cn/article14/ddiggde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)小程序開發(fā)、建站公司、用戶體驗(yàn)做網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司