欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java代碼風格有哪些 java代碼風格規(guī)范

什么是良好的編程風格(Java編程)

首先,編程風格并不同于其他的style,目的并不是形成自己獨樹一幟的風格,而是為了讓你的程序易讀,有利于團隊合作以及別人幫你改錯。

創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計,察哈爾右翼前網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:察哈爾右翼前等地區(qū)。察哈爾右翼前做網(wǎng)站價格咨詢:028-86922220

風格是通用的

C語言和C++語言的編程風格 (Java見下)

第一章:縮進格式

Tab是8個字符,于是縮進也是8個字符.有很多怪異的風格,他們將縮進格式定義為4個字符(設(shè)置為2個字符!)的深度,這就象試圖將PI定義為3一樣讓人難以接受.

理由是:縮進的大小是為了清楚的定義一個塊的開始和結(jié)束.特別是當你已經(jīng)在計算機前面呆了20多個小時了以后,你會發(fā)現(xiàn)一個大的縮進格式使得你對程序的理解更容易.

現(xiàn)在,有一些人說,使用8個字符的縮進使得代碼離右邊很近,在80個字符寬度的終端屏幕上看程序很難受.回答是,但你的程序有3個以上的縮進的時候,你就應該修改你的程序.

總之,8個字符的縮進使得程序易讀,還有一個附加的好處,就是它能在你將程序變得嵌套層數(shù)太多的時候給你警告.這個時候,你應該修改你的程序.

第二章:大符號的位置

另外一個C程序編程風格的問題是對大括號的處理.同縮進大小不同,幾乎沒有什么理由去選擇一種而不選擇另外一種風格,但有一種推薦的風格,它是Kernighan和Ritchie的經(jīng)典的那本書帶來的,它將開始

的大括號放在一行的最后,而將結(jié)束大括號放在一行的第一位,如下所示:

if (x is true) { we do y }

然而,還有一種特殊的情況:命名函數(shù):開始的括號是放在下一行的第一位,如下:

int function(int x) { body of function }

所有非正統(tǒng)的人會非難這種不一致性,但是,所有思維正常的人明白: (第一) KR是___對___的,(第二)如果KR不對,請參見第一條. (:-))......另外,函數(shù)也是特殊的,不一定非得一致.

需要注意的是結(jié)束的括號在它所占的那一行是空的,__除了__它跟隨著同一條語句的繼續(xù)符號.如"while"在do-while循環(huán)中,或者"else"在if語句中.如下:

do { body of do-loop } while (condition);

以及

if (x == y) { .. } else if (x y) { ... } else { .... }

理由: KR.

另外,注意到這種大括號的放置方法減小了空行的數(shù)量,但卻沒有減少可讀性.于是,在屏幕大小受到限制的時候,你就可以有更多的空行來寫些注釋了.

第三章:命名系統(tǒng)

C是一種簡潔的語言,那么,命名也應該是簡潔的.同MODULE-2以及ASCAL語言不同的是,C程序員不使用諸如ThisVariableIsATemporaryCounter之類的命名方式.一個C語言的程序員會將之命名為"tmp",這很容易書寫,且并不是那么難以去理解.

然而,當混合類型的名字不得不出現(xiàn)的時候,描述性名字對全局變量來說是必要的了.調(diào)用一個名為"foo"全局的函數(shù)是很讓人惱火的.全局變量(只有你必須使用的時候才使用它) ,就象全局函數(shù)一樣,需要描述性的命名方式.假如你有一個函數(shù)用來計算活動用戶的數(shù)量,你應該這樣命名--"count_active_users()"--或另外的相近的形式,你不應命名為"cntusr()".

有一種稱為Hungarian命名方式,它將函數(shù)的類型編碼寫入變量名中,這種方式是腦子有毛病的一種表現(xiàn)---編譯器知道這個類型而且會去檢查它,而這樣只會迷惑程序員. --知道為什么Micro$oft為什么會生產(chǎn)這么多"臭蟲"程序了把!!.

局部變量的命名應該短小精悍.假如你有一個隨機的整數(shù)循環(huán)計數(shù)器,它有可能有"i",如果沒有任何可能使得它能被誤解的話,將其寫作"loop_counter"是效率低下的.同樣的,""tmp"可以是任何臨時數(shù)值的函數(shù)變量.

如果你害怕混淆你的局部變量的名字,還有另外一個問題,就是稱

function-growth-hormone-imbalancesyndrome.

第四章:函數(shù)

函數(shù)應該短小而迷人,而且它只作一件事情.它應只覆蓋一到兩個屏幕(80*24一屏),并且只作一件事情,而且將它做好.(這不就是UNIX的風格嗎,譯者注).

一個函數(shù)的最大長度和函數(shù)的復雜程度以及縮進大小成反比.于是,如果你已經(jīng)寫了簡單但長度較長的的函數(shù),而且你已經(jīng)對不同的情況做了很多很小的事情,寫一個更長一點的函數(shù)也是無所謂的.

然而,假如你要寫一個很復雜的函數(shù),而且你已經(jīng)估計到假如一般人讀這個函數(shù),他可能都不知道這個函數(shù)在說些什么,這個時候,使用具有描述性名字的有幫助的函數(shù).

另外一個需要考慮的是局部變量的數(shù)量.他們不應該超過5-10個,否則你有可能會出錯.重新考慮這個函數(shù),將他們分割成更小的函數(shù).人的大腦通常可以很容易的記住7件不同的事情,超過這個數(shù)量會引起混亂.你知道你很聰明,但是你可能仍想去明白2周以前的做的事情.

第5章:注釋

注釋是一件很好的事情,但是過多的注釋也是危險的,不要試圖區(qū)解釋你的代碼是注釋如何如何的好:你應該將代碼寫得更好,而不是花費大量的時間去解釋那些糟糕的代碼.

通常情況下,你的注釋是說明你的代碼做些什么,而不是怎么做的.而且,要試圖避免將注釋插在一個函數(shù)體里:假如這個函數(shù)確實很復雜,你需要在其中有部分的注釋,你應該回到第四章看看.你可以寫些簡短的注釋來注明或警告那些你認為特別聰明(或極其丑陋)的部分,但是你必須要避免過多.取而代之的是,將注釋寫在函數(shù)前,告訴別人它做些什么事情,和可能為什么要這樣做.

第六章:你已經(jīng)深陷其中了.

不要著急.你有可能已經(jīng)被告之"GUN emacs"會自動的幫你處理C的源代碼格式,而且你已經(jīng)看到它確實如此,但是,缺省的情況下,它的作用還是不盡如人意(實際上,他們比隨便敲出來的東西還要難看- ainfinite number of monkeys typing into GNU emacs would never make a good program)

于是,你可以要么不要使用GUN emacs,要么讓它使用sanervalules.使用后者,你需要將如下的語句輸入到你的.emacs文件中.(defun linux-c-mode() "C mode with adjusted defaults for use with the Linux kernel."(interactive) (c-mode) (c-set-style"KR") (setq c-basic-offset8))

這會定義一個M-x Linux-c-mode的命令.當你hacking一個模塊的時候,如何你將-*- linux-c -*-輸入在最開始的兩行,這個模式會自動起作用.而且,你也許想加入如下

(setq auto-mode-alist (cons '("/usr/src/linux.*/.*.〖ch〗$" . linux-c-mode) auto-mode-alist))

到你的.emacs文件中,這樣的話,當你在/usr/src/linux下編輯文件的時候,它會自動切換到linux-c-mode .

但是,假如你還不能讓emaces去自動處理文件的格式,不要緊張,你還有一樣東西: "縮進" .

GNU的縮進格式也很死板,這就是你為什么需要加上幾行命令選項.然而,這還不算太壞,因為GNU縮進格式的創(chuàng)造者也記得KR的權(quán)威, (GNU沒有罪,他們僅僅是在這件事情上錯誤的引導了人們) ,你要做的就只有輸入選項"-kr -i8"(表示"KR,縮進8個字符).

"縮進"有很多功能,特別是當它建議你重新格式你的代碼的時候,你應該看看幫助.但要記住: "縮進"不是風格很差的程序的萬靈丹.

JAVA編程風格簡析

很久以來都在體會著JAVA的風格,現(xiàn)在做一簡單陳述,希望大家多提寶貴意見。

對于一種好的編程語言,學習它的編程風格是很重要的。每種語言都有自己的編寫和注釋約定,當然所有語言都建立在最基本的約定之上。編程中最重要的并不是讓代碼按自己希望的方式運行,而是程序中那種自明的編程風格(這對于程序員的益處相信眾多程序員都身有體會)!但這還不夠,程序還應該具有可讀、相對持久和可維護性。可讀性非常重要,因為你不希望自己以前的作品在之后的閱讀中給自己留下障礙,當然,更重要的是自己的程序能讓其他程序員讀懂并且修改。

下面我把工作中所理解的java風格做一簡單總結(jié),這是我所理解的好的編程風格和應用中我們應當如何使用java編寫自己的代碼的小Guide。這并不完全,希望大家?guī)臀谊懤m(xù)總結(jié)各自的經(jīng)驗。

一般性概述

好的編程風格固然重要,但是你一定聽說過一些程序員的個人風格。其實我們完全不必為那些所謂條條框框所累,但是作為原則是我們至少不能打破這些常規(guī)。我們應該在保持自己風格的同時盡量的把自己與編程潛原則靠攏。

可讀性很容易達到,比如,讓自己的代碼縮排排列、名字采用描述性但不要過長(短名應僅僅用在非遠程)、特殊名稱比如pi應當被定義為final類型。模塊性是編程需要注意的另一重點,把代碼劃分到類里,在類中把功能劃分到方法中,別讓一個類太大,否則在使用、修改和理解上都會造成不必要的麻煩,方法也一樣,如果一個方法長度超過50行,它產(chǎn)生錯誤的概率將接近100%,盡量把大方法劃分為小方法,編程中為避免重復編寫,還應盡量調(diào)用JAVA標準類庫。

盡量避免在寫代碼和注釋時使用不同語言,經(jīng)常見到論壇有朋友詢問諸如在java中調(diào)用c、調(diào)用php、調(diào)用shell之類的問題,其實在編程中,我們應盡量使用一種語言去完成事情。另外就是不必最優(yōu)化自己的代碼,應該選擇相對較優(yōu)的算法就可以了。

類、方法和fields

類應體現(xiàn)出某種物質(zhì)的基本概念,比如要編程實現(xiàn)“汽車”的組成,那么所有的汽車都可以用類Car實現(xiàn)。這個類應當包括域描述、屬性描述和car的狀態(tài)(color, number of doors, age等)和由car可完成的操作(getColor, setColor等)。為了提高類的可重用性,不要在類中有過多的描述,當然這也會增加錯誤產(chǎn)生的機會。

類名首字母大寫,比如Date, String, Hashtable等 ... ...

類如下定義:(未使用Javadoc做注釋):

public class Car {

/* Instance variables are placed either in the beginning

or at the end of the class */

private int age;

private Color color;

/* The constructor should be placed in the beginning */

public Car(int age, Color color) {

this.age = age;

this.color = color;

}

/* Example method */

public int getAge() {

return age;

}

/* The main method is optional, but looks like this.

If it exists, it is either the first or the last

method in the class */

public static void main(String [] args) {

...

}

}

注意類名和大括號間的空格!

方法

方法一般定義為public。當然,如果方法僅僅在當前類用到可以定義為private,而如果希望一個子類沿用這個方法則不同,這時候的方法應定義為protected。

java中的方法定義很有趣,它們一般小寫字母開頭,如果有兩個字組成,第二個字的首字母則大寫。因此名字的描述性是至關(guān)重要的。這使你不用閱讀整篇代碼來判斷這是一個什么方法。在給自己的方法取名時應盡量不要太短或者太長,另一個需要注意的是大多方法使用動詞(動賓短語)。

例如:

public void eat() {}

public void eatBananas() {}

Selector(選擇器)方法有g(shù)et前綴,后綴是它們將要get的,比如

public int getBananas() {}

Mutator(存取器)方法則有set前綴,后綴則是他們要set的,比如

public void setBananas(int amount) {}

注意mutators大多無返回值。

方法的參數(shù)應當以如下方式給出:

public void aMethod(type parameter1, type parameter2, ... , type parametern) {}

如果參數(shù)過長,也可以斷開為幾行,應對齊向下排列如:

public void aMethod(type parameter1, type parameter2,... ,

type parametern, type parameter n+1,... ,

type parameterm, type parameter m+1) {}

另外要注意類的左束括號應在方法的右束括號之后而非下一行:

public int aMethod() {

int i = 0;

if(i == 0)

System.out.println("success!");

}

為了文件可讀性好,還要注意語句最好寫在同一行,當然一行寫不下是可以斷行的,比如行字母超過80。

fields

比如變量,如果不希望它永久有效,應設(shè)為private。如果一個變量在類中不發(fā)生任何動作(比如數(shù)據(jù)結(jié)構(gòu)中的node)則可以設(shè)置為public,常量一般聲明為public。如果不能確定一個變量到底該聲明為什么,應暫且聲明為private。

field的名字一般使用小寫字母,不要使用下橫線或其他特殊字符。 如果變量包含兩個字,那么第二個字的首字母大寫。比如:

int i, j, k;

Date date;

double myField;

常量一般全部大寫,也可以包含下橫線:

public static final int MAX_SIZE_OF_DATABASE

fields的名字通常為名詞。較重要的fields更應具備描述性,比如程序中包含一個游戲的得分,那可以用score來代表。如果變量變化較頻繁,那使用一個單一字符來代表就ok了:

i, j, k 通常代表整數(shù)

r, t, u, v, w 通常代表實數(shù)

x, y, z 通常是并列出現(xiàn)或代表浮點數(shù)

s, s1, s2, 通常代表字符串

c, ch 通常代表字符

f, file 通常代表文件

tmp, temp 通常代表臨時變量

ctr, cnt, cntr 一般代表計數(shù)器(如果i, j, k這些變量已被使用)

dummy, foo, bar 一般代表啞元變量

args 是main-method的主參數(shù)名

縮排與換行

每行長度不得超過80字符。如果需要可以折行時,也應當與上一行有共同的縮排距離。代碼應如何交錯、如何建立新行、在哪里建立允許、哪里不允許都有一些一般約定,縮排空格一般為2個或4個空格。

條件表達式

如果見到如下語法表達式:

if (expr)

statement1;

else

statement2;

代碼行向右錯排兩個空格如上所示。

如果在一個表達式中有超過一條的聲明,則需要大括號:

if (expr){

statement1;

statement2;

} else{

statement3;

statement4;

}

有時我們會希望在表達式中使用表達式(比如條件嵌套),這時應注意else表達式,它的位置很容易出錯!如例:

if (expr1) {

statement1;

statement2;

} else if (expr2)

statement3;

else if (expr3) {

statement4;

statement5;

} else {

statement6;

statement7;

}

注意大括號位置!

Loops

while-loop語法如下:

while (expr) {

statement1;

statement2;

}

for-loop語法如下:

for (expr1; expr2; expr3){

statement1;

statement2;

}

注意大括號位置!僅一條聲明時大括號省略:

while (expr)

statement;

for (expr1; expr2; expr3)

statement;

例如,我們寫一個procedure寫出1到10這十個數(shù)字:

for (i = 1; i = 10; i++)

System.out.println(i);

try-catch語法形如:

try {

statements;

} catch (ExceptionClass e) {

statements;

}

如果try-catch語句后跟隨finally子句則形如:

try {

statements;

} catch (ExceptionClass e) {

statements;

} finally {

statements;

}

新行

每一行最好只闡述一件事情。比如,一行包含一個聲明、一個條件語句、一個循環(huán)等。不論多小,最好不要一行辦兩件事及以上。例如不要把一個if表達式或循環(huán)語句的主體放置在同一行,這樣的表達式斷行的易讀性會更高。通常,互相協(xié)作的代碼應放在一起,為保證代碼美觀可讀,我們應將代碼的不同代碼段放置在不同的段落。不過要牢記斷行不要太過分!比如:

public int factorial(int n) {

int result = 1;

for(int i = 1; i = n; i++)

result*=i;

return result;

}

給自己的代碼加入注釋

注釋就是類的描繪、方法存在的原因、它完成了什么以及它對它其中(變量)的作用域。假定閱讀你代碼的人已經(jīng)知道這是什么語言,所以不需要注釋語句功能,盡量使用簡短而有描述力的注釋。

Java有兩種類型的注釋:

//This is a comment that continues until the end of the line.

/* This is a comment. It goes on and on and on and on and on and on and on

and on and on and on and on and on and on and on and on and on and on and

on and on and on and on and on and on and on and on and ends like this: */

/**

* This is a JavaDoc comment. More about JavaDoc in the next section.

*/

如果在注釋中加入注釋則會出錯:

/* You are not allowed to do anything like this /* because the compiler will

complain, if you are lucky */ DON'T DO THIS! And don't write comments in

upper case either... */

注釋應放在它要解釋內(nèi)容上下,這樣會讓代碼更易于理解。

不要注釋一些語言的語句功能:

i++; // Add 1 to i

更不要讓自己的代碼處于這種狀態(tài):

for(int i = 1; i = n; i++)

/* don't place comments where

they don't belong */

result*=i;

較短的注釋既可被放在被注釋代碼上下,而長注釋則習慣性的放在代碼之上:

/* Comments can be placed before the

block that is to be commented */

for(int i = 1; i = n; i++)

result*=i;

或者:

for(int i = 1; i = n; i++){

result*=i; // short comments can be placed like this

tmp++; // if necessary, they continue here

}

不要寫沒用的注釋:

i++; // change this later

Excuse me,這句肯定是胡扯!

不要寫自己都看不懂的注釋:

i++; // BMW

BMW? 如果你能連續(xù)十天記住這是什么意思的話,那么你的記憶真是不錯了。所以不要寫沒人能看懂的注釋,ok?

最后重申一下:寫簡短而富于描述性的注釋,把它們放在該放的地方,而不要考驗你自己的記憶力!

JavaDoc - 文檔工具

JavaDoc不僅是另一種給代碼加注釋的仿佛咱,更是一個文檔工具。類、方法和一些重要地方需要用JavaDoc來注釋。這并不是說你可以放棄常規(guī)的注釋,這兩者在代碼中應該是相輔相成、互相彌補的關(guān)系。

類被注釋如:

/**

* Car represents cars ... A description of the class

* should be place here. Note that the description begins

* on the second line and that there is a space between

* the asterix and the text. Next we will add some fields

* indicating who the authors of the class are and

* other useful information. Notice the newline!

*

* @author Jerry Meng

* @version %I%, %G%

*/

public class Car {

注意JavaDoc結(jié)束和類開始間無空行。

方法被注釋如:

/**

* A description of what the method does...

*

* @param n a description of the parameter

* @return a description of the return value

*/

public int factorial(int n) {

某些不是全部,被JavaDoc注釋區(qū)域如:

/**

* Short description of the variable (one line)

*/

type variable;

什么應當使用JavaDoc做注釋?如何注釋的恰當呢?

可以這樣想,JavaDoc中所作的注釋都可以在類的文檔中看到。所有讀這個類的文檔的讀者都會明白這個類所完成的功能、它包括的方法、如何使用這些方法及方法的返回值。一些作用域,比如public的變量或常量將會一目了然。任何不了解這個類內(nèi)部結(jié)構(gòu)的人都可以輕松的調(diào)用它。這便是你用JavaDoc可以輕松提供的信息。而使用一般注釋的地方,一般是給那些可能修改你的類代碼的程序員,它們一般描述了類的內(nèi)部信息和結(jié)構(gòu)。

下面我寫一下car的類來描述一個編程風格好的java類應該是怎樣的。當然這僅僅是一個小例子(apart from selector and mutator methods),僅僅是在考慮JAVA編程風格上一個參考而已。

import java.awt.Color;

/**

* This is a class representing cars. A car has certain features, such

* as color, age, number of doors etc and a car can be repainted,

* the tank can be filled etc.

*

* @author Jerry Meng

* @version %I%, %G%

*/

public class Car {

/**

* The maximum size of the tank in litres.

*/

private static final double TANK_SIZE = 100.0;

/**

* The color of the car.

*/

private Color color;

/**

* The age of the car.

*/

private int age;

/**

* The number of doors of the car.

*/

private int doors;

/**

* The amount of gasoline in the tank.

*/

private double gasoline;

/**

* Class constructor, which constructs a brand new, black car with

* five doors and a full tank.

*/

public Car() {

this(Color.black, 0, 5, TANK_SIZE);

}

/**

* Class constructor specifying the color, age, number of doors

* and litres of gasoline

*

* @param color The color of the car

* @param age The age of the car

* @param doors The number of doors

* @param km Kilometres driven

* @param gasoline The litres of gasoline

*/

public Car(Color color, int age, int doors, double gasoline) {

this.color = color;

this.age = age;

this.doors = doors;

this.gasoline = gasoline;

}

/**

* Returns the color of the car

*/

public Color getColor() {

return color;

}

/**

* Repaints the car (i.e. changes its color)

*/

public void setColor(Color color) {

this.color = color;

}

/**

* Returns the age of the car

*/

public int getAge() {

return age;

}

/**

* Returns the number of doors of the car

*/

public int getDoors() {

return doors;

}

/**

* Returns the amount of gasoline in the tank

*/

public double getGasoline() {

return gasoline;

}

/**

* Fills the tank. The amount of gasoline cannot exceed

* the size of the tank. In that case, the tank will be

* filled to the maximum and the rest will run out in

* the sand.

*

* @param gas The amount of gasoline to put in the tank

*/

public void setGasoline(double gas) {

if(gasoline + gas = TANK_SIZE)

gasoline+=gas;

else

gasoline = TANK_SIZE;

}

}

Java的特點有哪些?

Java是一種優(yōu)秀的程序設(shè)計語言,它具有令人賞心悅目的語法和易于理解的語義。不僅如此,Java還是一個由一系列計算機軟件和規(guī)范形成的技術(shù)體系,這個技術(shù)體系提供了完整的用于軟件開發(fā)和跨平臺部署的支持環(huán)境,并廣泛應用于嵌入式系統(tǒng)、移動終端、企業(yè)服務器、大型機等各種場合。順便說一下,JavaScript和Java沒有任何關(guān)系,最開始JavaScript叫l(wèi)iveScript,當時Java太火了,于是乎 liveScript更名為JavaScript借勢宣傳了一波。

隨便搜搜近幾年的編程類語言排行榜,Java絕對都是當之無愧的老大哥。那么,Java究竟有什么特性能獲得 廣大程序員的一致青睞呢? 在此列出java的11個特性:

1.簡單性

Java語法是C++語法的一個“純凈版本”。這里沒有頭文件,指針運算(甚至指針語法),結(jié)構(gòu),聯(lián)合,操作符重載,虛基類等等。不僅如此,Java開發(fā)環(huán)境遠遠超出大多數(shù)其他編程語言的開發(fā)環(huán)境。

2.面向?qū)ο?/p>

什么是面向?qū)ο螅坑媚窘炒蛞粋€比方,一個“面向?qū)ο蟆钡哪窘呈冀K關(guān)注的是所制作的椅子,第二位才是所使用的工具;而一個“非面向?qū)ο蟆蹦窘呈紫瓤紤]的是所使用的工具。

在Java的世界里,一切皆對象。

Java的面向?qū)ο筇匦耘cC++旗鼓相當,與C++不同的點在于多重繼承。在Java中,取而代之的是更簡單的接口概念。而且與C++想比,Java提供了更豐富非運行時自省功能。

3.分布式(微服務)

Java有豐富的例程庫,用于處理HTTP和FTP之類的TCP/IP協(xié)議。Java應用程序能夠通過URL打開和訪問網(wǎng)絡(luò)上的對象,其便捷程度就好像訪問本地文件一樣。

4.健壯性

Java與C++最大的不同在于Java使用的指針模型可以消除重寫內(nèi)存和損壞數(shù)據(jù)的可能性(對于曾經(jīng)花費幾個小時來檢查由于指針bug而引起內(nèi)存沖突的人來說,一定很喜歡Java的這一特性)。不僅如此,Java編譯器能夠檢測許多在其他語言中僅在運行時才能夠檢測出來的問題。

5.安全性

Java適用于網(wǎng)絡(luò)/分式式環(huán)境。為了達到這個目標,在安全性方面投入了大量的精力。使用Java可以構(gòu)建防病毒,防篡改的系統(tǒng)。

從一開始,Java就設(shè)計出能夠防范常見的各種攻擊:

(1)運行時堆棧溢出。蠕蟲和病毒常用的攻擊手段。(2)破壞自己進程空間之外的內(nèi)存。(3)未經(jīng)授權(quán)讀寫文件。

6.體系結(jié)構(gòu)中立

編譯器生成一個體系結(jié)構(gòu)中立的目標文件格式,這是一種編譯過的代碼,只要有Java運行時系統(tǒng),這些編譯后的代碼就可以在許多處理器上運行。Java編譯器通過生成與特定計算機體系結(jié)構(gòu)無關(guān)的字節(jié)碼指令來實現(xiàn)這一特性。精心設(shè)計的字節(jié)碼不僅可以很容易的在任何機器上解釋執(zhí)行,而且還可以動態(tài)地翻譯成本地機器代碼。

7.可移植性

與C/C++不同,Java規(guī)范中沒有“依賴具體實現(xiàn)的地方”?;緮?shù)據(jù)類型的大小以及有關(guān)運算都做了明確的說明。例如,Java中的int永遠是32位的整數(shù),二在C/C++中,int可能是16位整數(shù),32位整數(shù),也可能是編譯器提供商指定的其他大小。在Java中,數(shù)據(jù)類型具有固定的大小,這消除了代碼代碼移植時令人頭疼的主要問題。

8.解釋型

Java解釋器可以再任何移植了解解釋器的機器上執(zhí)行Java字節(jié)碼。由于鏈接是一個增量式且輕量級的過程。所以開發(fā)過程也變得更加快捷,更加具有探索性。

9.高能性

盡管對解釋后的字節(jié)碼性能已經(jīng)比較滿意,但是在某些場合下可能需要更加高效的性能。字節(jié)碼可以(在運行時刻)動態(tài)的翻譯成對應運行這個應用的特定CPU的機器碼。

10.多線程

Java在當時很超前,他是第一個支持并發(fā)程序設(shè)計的主流語言,多線程可以帶來更好的交互影響和實時行為。并發(fā)程序設(shè)計絕非易事,但是Java在這方面表現(xiàn)出色,可以很好的管理這個工作。

11.動態(tài)性

Java與C/C++相比更具有動態(tài)性。它能夠適應不斷發(fā)展的環(huán)境。庫中可以自由的添加新方法和實例變量,而對客戶端沒有任何影響。在Java中找出運行時類型信息十分簡單。

什么是Java?

Java是一種可以撰寫跨平臺應用程序的面向?qū)ο蟮某绦蛟O(shè)計語言。

Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。JAVA戰(zhàn)狼班它最初被命名為Oak,目標設(shè)定在家用電器等小型系統(tǒng)的編程語言,來解決諸如電視機、電話、鬧鐘、烤面包機等家用電器的控制和通訊問題。由于這些智能化家電的市場需求沒有預期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計算機網(wǎng)絡(luò)上的廣闊應用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。

Java 編程語言的風格十分接近C、C++語言。Java是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了 C++ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C ++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。

Java 不同于一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯成二進制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大幅提升。

網(wǎng)站名稱:java代碼風格有哪些 java代碼風格規(guī)范
網(wǎng)站地址:http://chinadenli.net/article18/dodcodp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、標簽優(yōu)化虛擬主機、靜態(tài)網(wǎng)站做網(wǎng)站、動態(tài)網(wǎng)站

廣告

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

外貿(mào)網(wǎng)站制作