當前位置:首頁 » 網頁前端 » javaweb編程規范
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javaweb編程規范

發布時間: 2022-07-24 08:31:49

A. 對於java web開發初學者,有什麼書需要看的

javaweb自學書籍推薦
第一部分:Java語言篇
1.《Java編程規范》 適合對象:初級、中級
介紹:這本書的作者是被譽為Java之父的James Gosling,入門者推薦閱讀,對基礎的講解很不錯。
2.《Java編程思想》 適合對象:初級、中級
介紹:豆瓣給出了9.1的評分,全球程序員廣泛贊譽。有人說這本書不適合初學者,不過小編認為作者並沒有對讀者已有的知識經驗有過多要求,只是要求讀者需要知道基本的程序語言。作者以通俗易懂及小而直接的實例解釋了一個個晦澀抽象的概念,需要花時間細細研讀。
3.《Java核心技術:卷I基礎知識》 適合對象:初級、中級
介紹:官方機構圖書,備一本總是沒錯的。這本書比較全面也通俗易懂。可以當字典的功能來用,學習入門必備。
4.《Java數據結構和演算法》 適合對象:初級、中級、高級
介紹:這本書目前基本斷貨,足以說明搶手程度。作者主要使用Java語言描述了我們常用的數據結構,值得一看。
5.《Java與模式》 適合對象:中級、高級
介紹:難得一見的國人寫的Java好書。主要講解設計原則以及最為常見的設計模式的實用教材。這本書出現的比較早,是初級到中高級必讀的圖書之一。
6.《SCJP學習指南》 適合對象:初級、中級
介紹:官方考試的必備圖書,對檢驗自己的Java學習情況很有幫助。這本書特別適合學生閱讀,這本書理解透了,找工作面試Java題目不會有任何問題。一些工作多年的工程師都會在里邊遇到一些不會做的題目。
第二部分:中級進階篇
1.《重構:改善既有代碼的設計》 適合對象:中級、高級
介紹:清晰揭示了重構的過程,解釋了重構的原理和最佳實踐方式,並給出了何時以及何地應該開始挖掘代碼以及改善。大師的傑作,讓你明白軟體是一步步改進的,不是一蹴而就的。
2.《XML入門經典》 適合對象:初級、中級、高級
介紹:很多人覺得沒必要買XML書籍,不過我還是覺得推薦一本給你作為工具書,而且看本書可以使得你對XML方方面面有個了解。裡面不少東西還是用到的。
3.《jQuery基礎教程》 適合對象:初級、中級、高級
介紹:從這個開始學習jQuery才是根本,不然以後遇到的很多奇怪問題不知所以然。jQuery個人感覺已經成為目前的javascript標准庫了,插件無數,大大簡化了前端工作。
4.《JavaScript權威指南》 適合對象:初級、中級、高級
介紹:一本從全新視角和層次來介紹JavaScript的參考書,填補了市場的空白。是學習js的必備參考工具書之一。
5.《代碼整潔之道》 適合對象:中級、高級
介紹:講述了一系列行之有效的整潔代碼操作實踐。軟體工程的理想編碼是無數人編出來的代碼像一個人寫的,這本書當作規范就不錯。
第三部分:高級篇
1.《Enterprise JavaBeans 3.0中文版》適合對象:中級,高級
介紹:EJB技術在大型系統中使用,主要有銀行等金融機構。是開發分布式程序的選項之一,不過我不喜歡,其實銀行使用的也不怎麼的。結合JavaEE容器使用,開源的有JBoss,商用的有IBM和Oracle支持。
2.《Java並發編程實踐》 適合對象:中級、高級
介紹:這本書名為《Java並發編程實踐》有些抹殺了它的價值,其中並非只講述了Java的多線程設施,對一般的並發編程的rationale也有相當透徹的闡述。市面上並發編程的書比較少,這一本推薦閱讀。
3.《Hadoop權威指南》 適合對象:中級、高級
介紹:雲計算必備圖書。作為分布式計算的工具,Hadoop目前可以說是市場上唯一成熟的產品,而且大家也都向其看齊。而起雲計算炙手可熱,你搞明白這本書就大概明白了什麼是雲以及怎麼做雲。
4.《Java消息服務》 適合對象:中級、高級
介紹:深入淺出地講解了JMS1.1規范的底層技術、Java類和介面、編程模型及其不同實現等Java消息服務(JMS)和消息傳送機制關鍵技術。講解簡單明了,偏向於如何使用以及設計的一些原則。排版相當不錯。

B. java做web開發都需要java的哪些知識

開發JSP項目所需要的技能包括: Java 在使用JSP的時候,任何程序員都不可能不和Java打交道。JSP本身就是用一套Java對象編寫的。更重要的是,JSP的預設腳本語言就是Java。所以,一個JSP程序員必須理解Java的基礎概念。我建議程序員在開發JSP之前至少得有一個月開發Java的經驗。 HTML/XHTML 不管你怎麼看JSP,反正你最後要產生的結果中超過95%的比例將是HTML文件。因此,JSP程序員還得全面理解HTML技術。我建議程序員在考慮學習JSP之前應該有至少一個月的HTML/XHTML編程經驗。 了解Web伺服器 因為JSP是一種用以建立網路站點的編程技術,所以在某種程度上你應該了解一點你的站點所採用的Web伺服器的相關知識。Web伺服器處理HTML頁面,所以,它通常要與其它軟體聯合起來共同運行才可以處理JSP頁。這也是我們所遇到JSP難題之一。 了解運行JSP的容器 所謂容器(container)其實就是JSP伺服器。這是一種解釋軟體,負責解釋向JSP頁提出的請求,同時,把輸出結果送迴向JSP頁提出請求的用戶。容器很象Web伺服器,只不過後者處理HTML網頁而容器則為JSP頁提供服務。要學習JSP容器的細節所消耗的時間取決於你最後選擇的容器。某些容器很簡單,學習起來也很容易。而另一些容器則功能強大但學習和維護的時間很長。要了解更多的相關內容請參看有關JSP工具的FAQ。 JavaScript JSP產生的數據會被發送給客戶機,通常就是某種瀏覽器,也就是我們所說的「客戶端」。當前的大多數JSP輸出結果都建立在HTML基礎之上。JavaScript則是針對HTML的腳本語言。JavaScript允許程序員在客戶端執行條件邏輯。這就意味著客戶機和伺服器之間的聯系會少一些,客戶機的性能也就大大增強了。還有,JavaScript允許程序員修改HTML被顯示的方式以增加HTML的功能。JavaScript可不是Java。實際上,JavaScript僅僅在能看到HTML輸出的瀏覽器上運行。 有一點要特別注意:盡管JavaScript還是這種腳本語言所普遍接受的名字,但是JavaScript實際上擁有好多種具有不同名稱的不同版本(微軟推出的JavaScript就叫Jscript)。比如,現在歐洲推出的新型JavaScript標准就叫ECMAScript。所以如果有人把JavaScript稱作Jscript或者ECMAScript你可別犯糊塗啊! 學習JSP JSP並不是一種真正的編程語言而是: ¨—用Java編寫的一組對象的集合。 ¨—採用簡單的腳本語法用來在對象和JSP容器之間通信。 學習JSP技術需要你掌握一些簡單地腳本規范和組成JSP標準的對象。在程序員熟悉和了解Java之後,學習JSP的基礎知識就相當簡單了。 按JSP的思想進行思考 JSP是一種分布式的、基於Web的應用程序。這就是說,其邏輯處理被劃分在許多機器上進行。大多數處理過程發生在裝有JSP應用程序的伺服器上。還有一些時間則花在處理客戶機上的HTML頁面上,而這些客戶機就是察看Web應用程序的客戶機。還有許多項目會和資料庫伺服器一道協同工作來處理數據。更大的項目可能採用組件伺服器運行集中的EnterpriseJavaBean對象。如果一個Web應用程序足夠大,核心的JSP部分還可能實際上分布在若干JSP伺服器運行。所有這一切都意味著,你必須了解JSP應用程序的邏輯處理在許多機器上被恰當分布運行的原理。更重要的是,理解混合客戶端和伺服器端邏輯的Web應用程序這種雙重性是很關鍵的。所以,按JSP的思想進行思考在我看來絕對算得上是一門真正的藝術。 學習JSP語法和對象是最基礎的第一步。同時我們還採取其他一些重要的工作來完成掌握JSP這一過程,這些工作有: —了解這些不同技術之間是如何相互交流、協同運行的。 —了解這些邏輯處理過程在什麼時候、在什麼場合下發生。 分布式應用程序的平衡是最難掌握的技術之一。把這問題搞清楚了可以大大提高學習過程的速度。否則你可能在這一主題上花費大量的時間和精力。 開發JSP項目所需要的其他一些技能還包括: DHTML和層疊樣式表 我現在建立的的每個Web應用程序都使用了DHTML(動態HTML)和層疊樣式表CSS(CascadingStyleSheet)。這些工具對HTML頁面的功能而言是個極大的擴展。它們可以讓用戶建立模仿客戶機—伺服器結構的Web應用程序。我個人認為這些工具完全是我們必須掌握的技能,不過,很多簡單的項目或許並不需要這些工具。 Servlet 你不需要學習過多的servlet知識。當Sun開發了JSP的時候JSP曾被認為「servlet的簡化版」。

C. 想學習java web技術需要學習那些東西

需要學的東西不多,也就是一些java基礎和資料庫基礎的東西。不過要把每個點都寫出來,還是比較多,下面的列出來,分得比較細:

  • Java語言基礎:演算法基礎、常用數據結構、編程規范。

掌握常見的數據結構和實用演算法;培養良好的編程習慣。

  • Java面向對象:封裝、繼承、多態等,面向對象程序設計,基礎設計模式等。

掌握面向對象的基本原則以及在編程實踐中的意義;掌握Java面向對象編程基本實現原理。

  • JDK核心API:語言核心包、異常處理、常用工具包、集合框架。

熟練掌握JDK核心API編程技術;理解API設計原則;具備熟練的閱讀API文檔的能力。

  • JavaSE核心:異常處理、多線程基礎、IO系統、網路編程、Java反射機制、JVM性能調優(JVM內存結構剖析、GC分析及調優、JVM內存參數優化)、Java泛型、JDK新特性

熟練掌握JavaSE核心內容,特別是IO和多線程;初步具備面向對象設計和編程的能力;掌握基本的JVM優化策略。

  • sql語言:SQL語句基礎和提高、SQL語句調優。

熟練的掌握SQL語句;掌握一定的資料庫查詢技巧及SQL語句優化技巧。

  • Oracle資料庫:Oracle體系結構及系統管理、Oracle資料庫高級編程、資料庫設計基礎。

掌握Oracle體系結構及核心編程技術

  • XML:XML語法、XML解析(SAX、DOM)、Dom4j組件、Digester組件。

熟練掌握XML語法規則;理解DOM模型;熟悉Java對XML的各種解析方式。

  • HTML/CSS:TML基本文檔結構、掌握CSS基礎語法、關於HTML文檔塊、鏈接、列表、表格、表單等

掌握HTML基本原理;掌握CSS各種選擇器及常見樣式設置;熟練使用HTML常用元素。

  • JavaScript核心:JavaScript語言基礎(數據類型、函數、對象、閉包)、Java DOM編程、事件模型、JavaScript面向對象編程。

深入理解JavaScript語言原理;熟練的使用JavaScript對HTML DOM進行編程;熟練掌握JavaScript對象對象封裝技巧,為後續的JavaScript學習打下堅實的基礎。

  • Servlet/JSP:Servlet生命周期及Servlet伺服器、Tomcat部署配置、JSP語法、自定義標記、JSTL和EL表達式、JSP 新特性、Java Web 設計模式。

透徹理解Servlet核心原理;熟練掌握Servlet API;透徹理解JSP引擎工作原理;透徹理解標記庫原理;熟悉常見的Java Web設計模式;為後續的Java Web開發打下堅實的理論基礎。

  • Ajax:Ajax基礎、XHR對象、Ajax設計模式、JSON技術。

掌握Ajax的基本通信原理;掌握基於XML和JSON的Ajax數據規則。

D. java編程規范!!!

名稱 Java語言編碼規范(Java Code Conventions)
簡介 本文檔講述了Java語言的編碼規范,較之陳世忠先生《c++編碼規范》的浩繁詳盡,此文當屬短小精悍了。而其中所列之各項條款,從編碼風格,到注意事項,不單只Java,對於其他語言,也都很有借鑒意義。因為簡短,所以易記,大家不妨將此作為handbook,常備案頭,逐一對驗。
1 介紹
1.1 為什麼要有編碼規范
1.2 版權聲明
2 文件名
2.1 文件後綴
2.2 常用文件名
3 文件組織
3.1 Java源文件
3.1.1 開頭注釋
3.1.2 包和引入語句
3.1.3 類和介面聲明
4 縮進排版
4.1 行長度
4.2 換行
5 注釋
5.1 實現注釋的格式
5.1.1 塊注釋
5.1.2 單行注釋
5.1.3 尾端注釋
5.1.4 行末注釋
5.2 文擋注釋
6 聲明
6.1 每行聲明變數的數量
6.2 初始化
6.3 布局
6.4 類和介面的聲明
7 語句
7.1 簡單語句
7.2 復合語句
7.3 返回語句
7.4 if,if-else,if else-if else語句
7.5 for語句
7.6 while語句
7.7 do-while語句
7.8 switch語句
7.9 try-catch語句
8 空白
8.1 空行
8.2 空格
9 命名規范
10 編程慣例
10.1 提供對實例以及類變數的訪問控制
10.2 引用類變數和類方法
10.3 常量
10.4 變數賦值
10.5 其它慣例
10.5.1 圓括弧
10.5.2 返回值
10.5.3 條件運算符"?"前的表達式"?"前的表達式
10.5.4 特殊注釋
11 代碼範例
11.1 Java源文件範例

1 介紹(Introction)

1.1 為什麼要有編碼規范(Why Have Code Conventions)

編碼規范對於程序員而言尤為重要,有以下幾個原因:

- 一個軟體的生命周期中,80%的花費在於維護
- 幾乎沒有任何一個軟體,在其整個生命周期中,均由最初的開發人員來維護
- 編碼規范可以改善軟體的可讀性,可以讓程序員盡快而徹底地理解新的代碼
- 如果你將源碼作為產品發布,就需要確任它是否被很好的打包並且清晰無誤,一如你已構建的其它任何產品

為了執行規范,每個軟體開發人員必須一致遵守編碼規范。每個人。

1.2 版權聲明(Acknowledgments)

本文檔反映的是Sun MicroSystems公司,Java語言規范中的編碼標准部分。主要貢獻者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。

本文檔現由Scott Hommel維護,有關評論意見請發至[email protected]

2 文件名(File Names)

這部分列出了常用的文件名及其後綴。

2.1 文件後綴(File Suffixes)

Java程序使用下列文件後綴:

文件類別 文件後綴
Java源文件 .java
Java位元組碼文件 .class

2.2 常用文件名(Common File Names)

常用的文件名包括:

文件名 用途
GNUmakefile makefiles的首選文件名。我們採用gnumake來創建(build)軟體。
README 概述特定目錄下所含內容的文件的首選文件名

3 文件組織(File Organization)

一個文件由被空行分割而成的段落以及標識每個段落的可選注釋共同組成。超過2000行的程序難以閱讀,應該盡量避免。"Java源文件範例"提供了一個布局合理的Java程序範例。

3.1 Java源文件(Java Source Files)

每個Java源文件都包含一個單一的公共類或介面。若私有類和介面與一個公共類相關聯,可以將它們和公共類放入同一個源文件。公共類必須是這個文件中的第一個類或介面。

Java源文件還遵循以下規則:

- 開頭注釋(參見"開頭注釋")
- 包和引入語句(參見"包和引入語句")
- 類和介面聲明(參見"類和介面聲明")

3.1.1 開頭注釋(Beginning Comments)

所有的源文件都應該在開頭有一個C語言風格的注釋,其中列出類名、版本信息、日期和版權聲明:

/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/

3.1.2 包和引入語句(Package and Import Statements)

在多數Java源文件中,第一個非注釋行是包語句。在它之後可以跟引入語句。例如:

package java.awt;

import java.awt.peer.CanvasPeer;

3.1.3 類和介面聲明(Class and Interface Declarations)

下表描述了類和介面聲明的各個部分以及它們出現的先後次序。參見"Java源文件範例"中一個包含注釋的例子。

類/介面聲明的各部分 註解
1 類/介面文檔注釋(/**……*/) 該注釋中所需包含的信息,參見"文檔注釋"
2 類或介面的聲明
3 類/介面實現的注釋(/*……*/)如果有必要的話 該注釋應包含任何有關整個類或介面的信息,而這些信息又不適合作為類/介面文檔注釋。
4 類的(靜態)變數 首先是類的公共變數,隨後是保護變數,再後是包一級別的變數(沒有訪問修飾符,access modifier),最後是私有變數。
5 實例變數 首先是公共級別的,隨後是保護級別的,再後是包一級別的(沒有訪問修飾符),最後是私有級別的。
6 構造器
7 方法 這些方法應該按功能,而非作用域或訪問許可權,分組。例如,一個私有的類方法可以置於兩個公有的實例方法之間。其目的是為了更便於閱讀和理解代碼。

4 縮進排版(Indentation)

4個空格常被作為縮進排版的一個單位。縮進的確切解釋並未詳細指定(空格 vs. 製表符)。一個製表符等於8個空格(而非4個)。

4.1 行長度(Line Length)

盡量避免一行的長度超過80個字元,因為很多終端和工具不能很好處理之。

注意:用於文檔中的例子應該使用更短的行長,長度一般不超過70個字元。

4.2 換行(Wrapping Lines)

當一個表達式無法容納在一行內時,可以依據如下一般規則斷開之:

- 在一個逗號後面斷開
- 在一個操作符前面斷開
- 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開
- 新的一行應該與上一行同一級別表達式的開頭處對齊
- 如果以上規則導致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進8個空格。

以下是斷開方法調用的一些例子:

someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);

var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));

以下是兩個斷開算術表達式的例子。前者更好,因為斷開處位於括弧表達式的外邊,這是個較高級別的斷開。

longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER

longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID

以下是兩個縮進方法聲明的例子。前者是常規情形。後者若使用常規的縮進方式將會使第二行和第三行移得很靠右,所以代之以縮進8個空格

//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}

if語句的換行通常使用8個空格的規則,因為常規縮進(4個空格)會使語句體看起來比較費勁。比如:

//DON』T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}

//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}

這里有三種可行的方法用於處理三元運算表達式:

alpha = (aLongBooleanExpression) ? beta : gamma;

alpha = (aLongBooleanExpression) ? beta
: gamma;

alpha = (aLongBooleanExpression)
? beta
: gamma;

5 注釋(Comments)

Java程序有兩類注釋:實現注釋(implementation comments)和文檔注釋(document comments)。實現注釋是那些在C++中見過的,使用/*...*/和//界定的注釋。文檔注釋(被稱為"doc comments")是Java獨有的,並由/**...*/界定。文檔注釋可以通過javadoc工具轉換成HTML文件。

實現注釋用以注釋代碼或者實現細節。文檔注釋從實現自由(implementation-free)的角度描述代碼的規范。它可以被那些手頭沒有源碼的開發人員讀懂。

注釋應被用來給出代碼的總括,並提供代碼自身沒有提供的附加信息。注釋應該僅包含與閱讀和理解程序有關的信息。例如,相應的包如何被建立或位於哪個目錄下之類的信息不應包括在注釋中。

在注釋里,對設計決策中重要的或者不是顯而易見的地方進行說明是可以的,但應避免提供代碼中己清晰表達出來的重復信息。多餘的的注釋很容易過時。通常應避免那些代碼更新就可能過時的注釋。

注意:頻繁的注釋有時反映出代碼的低質量。當你覺得被迫要加註釋的時候,考慮一下重寫代碼使其更清晰。

注釋不應寫在用星號或其他字元畫出來的大框里。注釋不應包括諸如製表符和回退符之類的特殊字元。

5.1 實現注釋的格式(Implementation Comment Formats)

程序可以有4種實現注釋的風格:塊(block)、單行(single-line)、尾端(trailing)和行末(end-of-line)。

5.1.1 塊注釋(Block Comments)

塊注釋通常用於提供對文件,方法,數據結構和演算法的描述。塊注釋被置於每個文件的開始處以及每個方法之前。它們也可以被用於其他地方,比如方法內部。在功能和方法內部的塊注釋應該和它們所描述的代碼具有一樣的縮進格式。

塊注釋之首應該有一個空行,用於把塊注釋和代碼分割開來,比如:

/*
* Here is a block comment.
*/

塊注釋可以以/*-開頭,這樣indent(1)就可以將之識別為一個代碼塊的開始,而不會重排它。

/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/

注意:如果你不使用indent(1),就不必在代碼中使用/*-,或為他人可能對你的代碼運行indent(1)作讓步。

參見"文檔注釋"

5.1.2 單行注釋(Single-Line Comments)

短注釋可以顯示在一行內,並與其後的代碼具有一樣的縮進層級。如果一個注釋不能在一行內寫完,就該採用塊注釋(參見"塊注釋")。單行注釋之前應該有一個空行。以下是一個Java代碼中單行注釋的例子:

if (condition) {

/* Handle the condition. */
...
}

5.1.3 尾端注釋(Trailing Comments)

極短的注釋可以與它們所要描述的代碼位於同一行,但是應該有足夠的空白來分開代碼和注釋。若有多個短注釋出現於大段代碼中,它們應該具有相同的縮進。

以下是一個Java代碼中尾端注釋的例子:

if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}

5.1.4 行末注釋(End-Of-Line Comments)

注釋界定符"//",可以注釋掉整行或者一行中的一部分。它一般不用於連續多行的注釋文本;然而,它可以用來注釋掉連續多行的代碼段。以下是所有三種風格的例子:

if (foo > 1) {

// Do a double-flip.
...
}
else {
return false; // Explain why here.
}

//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}

5.2 文檔注釋(Documentation Comments)

注意:此處描述的注釋格式之範例,參見"Java源文件範例"

若想了解更多,參見"How to Write Doc Comments for Javadoc",其中包含了有關文檔注釋標記的信息(@return, @param, @see):

http://java.sun.com/javadoc/writingdoccomments/index.html

若想了解更多有關文檔注釋和javadoc的詳細資料,參見javadoc的主頁:

http://java.sun.com/javadoc/index.html

文檔注釋描述Java的類、介面、構造器,方法,以及欄位(field)。每個文檔注釋都會被置於注釋定界符/**...*/之中,一個注釋對應一個類、介面或成員。該注釋應位於聲明之前:

/**
* The Example class provides ...
*/
public class Example { ...

注意頂層(top-level)的類和介面是不縮進的,而其成員是縮進的。描述類和介面的文檔注釋的第一行(/**)不需縮進;隨後的文檔注釋每行都縮進1格(使星號縱向對齊)。成員,包括構造函數在內,其文檔注釋的第一行縮進4格,隨後每行都縮進5格。

若你想給出有關類、介面、變數或方法的信息,而這些信息又不適合寫在文檔中,則可使用實現塊注釋(見5.1.1)或緊跟在聲明後面的單行注釋(見5.1.2)。例如,有關一個類實現的細節,應放入緊跟在類聲明後面的實現塊注釋中,而不是放在文檔注釋中。

文檔注釋不能放在一個方法或構造器的定義塊中,因為Java會將位於文檔注釋之後的第一個聲明與其相關聯。

6 聲明(Declarations)

6.1 每行聲明變數的數量(Number Per Line)

推薦一行一個聲明,因為這樣以利於寫注釋。亦即,

int level; // indentation level
int size; // size of table

要優於,

int level, size;

不要將不同類型變數的聲明放在同一行,例如:

int foo, fooarray[]; //WRONG!

注意:上面的例子中,在類型和標識符之間放了一個空格,另一種被允許的替代方式是使用製表符:

int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry

6.2 初始化(Initialization)

盡量在聲明局部變數的同時初始化。唯一不這么做的理由是變數的初始值依賴於某些先前發生的計算。

6.3 布局(Placement)

只在代碼塊的開始處聲明變數。(一個塊是指任何被包含在大括弧"{"和"}"中間的代碼。)不要在首次用到該變數時才聲明之。這會把注意力不集中的程序員搞糊塗,同時會妨礙代碼在該作用域內的可移植性。

void myMethod() {
int int1 = 0; // beginning of method block

if (condition) {
int int2 = 0; // beginning of "if" block
...
}
}

該規則的一個例外是for循環的索引變數

for (int i = 0; i < maxLoops; i++) { ... }

避免聲明的局部變數覆蓋上一級聲明的變數。例如,不要在內部代碼塊中聲明相同的變數名:

int count;
...
myMethod() {
if (condition) {
int count = 0; // AVOID!
...
}
...
}

6.4 類和介面的聲明(Class and Interface Declarations)

當編寫類和介面是,應該遵守以下格式規則:

- 在方法名與其參數列表之前的左括弧"("間不要有空格
- 左大括弧"{"位於聲明語句同行的末尾
- 右大括弧"}"另起一行,與相應的聲明語句對齊,除非是一個空語句,"}"應緊跟在"{"之後

class Sample extends Object {
int ivar1;
int ivar2;

Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}

int emptyMethod() {}

...
}

- 方法與方法之間以空行分隔

7 語句(Statements)

7.1 簡單語句(Simple Statements)

每行至多包含一條語句,例如:

argv++; // Correct
argc--; // Correct
argv++; argc--; // AVOID!

7.2 復合語句(Compound Statements)

復合語句是包含在大括弧中的語句序列,形如"{ 語句 }"。例如下面各段。

- 被括其中的語句應該較之復合語句縮進一個層次
- 左大括弧"{"應位於復合語句起始行的行尾;右大括弧"}"應另起一行並與復合語句首行對齊。
- 大括弧可以被用於所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結構的一部分。這樣便於添加語句而無需擔心由於忘了加括弧而引入bug。

7.3 返回語句(return Statements)

一個帶返回值的return語句不使用小括弧"()",除非它們以某種方式使返回值更為顯見。例如:

return;

return myDisk.size();

return (size ? size : defaultSize);

7.4 if,if-else,if else-if else語句(if, if-else, if else-if else Statements)

if-else語句應該具有如下格式:

if (condition) {
statements;
}

if (condition) {
statements;
} else {
statements;
}

if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}

注意:if語句總是用"{"和"}"括起來,避免使用如下容易引起錯誤的格式:

if (condition) //AVOID! THIS OMITS THE BRACES {}!
statement;

7.5 for語句(for Statements)

一個for語句應該具有如下格式:

for (initialization; condition; update) {
statements;
}

一個空的for語句(所有工作都在初始化,條件判斷,更新子句中完成)應該具有如下格式:

for (initialization; condition; update);

當在for語句的初始化或更新子句中使用逗號時,避免因使用三個以上變數,而導致復雜度提高。若需要,可以在for循環之前(為初始化子句)或for循環末尾(為更新子句)使用單獨的語句。

7.6 while語句(while Statements)

一個while語句應該具有如下格式

while (condition) {
statements;
}

一個空的while語句應該具有如下格式:

while (condition);

7.7 do-while語句(do-while Statements)

一個do-while語句應該具有如下格式:

do {
statements;
} while (condition);

7.8 switch語句(switch Statements)

一個switch語句應該具有如下格式:

switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;

case XYZ:
statements;
break;

default:
statements;
break;
}

每當一個case順著往下執行時(因為沒有break語句),通常應在break語句的位置添加註釋。上面的示例代碼中就包含注釋/* falls through */。

7.9 try-catch語句(try-catch Statements)

一個try-catch語句應該具有如下格式:

try {
statements;
} catch (ExceptionClass e) {
statements;
}

一個try-catch語句後面也可能跟著一個finally語句,不論try代碼塊是否順利執行完,它都會被執行。

try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}

8 空白(White Space)

8.1 空行(Blank Lines)

空行將邏輯相關的代碼段分隔開,以提高可讀性。

下列情況應該總是使用兩個空行:

- 一個源文件的兩個片段(section)之間
- 類聲明和介面聲明之間

下列情況應該總是使用一個空行:

- 兩個方法之間
- 方法內的局部變數和方法的第一條語句之間
- 塊注釋(參見"5.1.1")或單行注釋(參見"5.1.2")之前
- 一個方法內的兩個邏輯段之間,用以提高可讀性

8.2 空格(Blank Spaces)

下列情況應該使用空格:

- 一個緊跟著括弧的關鍵字應該被空格分開,例如:

while (true) {
...
}

注意:空格不應該置於方法名與其左括弧之間。這將有助於區分關鍵字和方法調用。
- 空白應該位於參數列表中逗號的後面
- 所有的二元運算符,除了".",應該使用空格將之與操作數分開。一元操作符和操作數之間不因該加空格,比如:負號("-")、自增("++")和自減("--")。例如:
a += c + d;
a = (a + b) / (c * d);

while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");

- for語句中的表達式應該被空格分開,例如:
for (expr1; expr2; expr3)

- 強制轉型後應該跟一個空格,例如:
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);

9 命名規范(Naming Conventions)

命名規范使程序更易讀,從而更易於理解。它們也可以提供一些有關標識符功能的信息,以助於理解代碼,例如,不論它是一個常量,包,還是類。

標識符類型 命名規則 例子
包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母並且是一個頂級域名,通常是com,e,gov,mil,net,org,或1981年ISO 3166標准所指定的標識國家的英文雙字元代碼。包名的後續部分根據不同機構各自內部的命名規范而不盡相同。這類命名規范可能以特定目錄名的組成來區分部門(department),項目(project),機器(machine),或注冊名(login names)。 com.sun.eng
com.apple.quicktime.v2
e.cmu.cs.bovik.cheese
類(Classes) 命名規則:類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) class Raster;
class ImageSprite;
介面(Interfaces) 命名規則:大小寫規則與類名相似 interface RasterDelegate;
interface Storing;
方法(Methods) 方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。 run();
runFast();
getBackground();
變數(Variables) 除了變數名外,所有實例,包括類,類常量,均採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變數名不應以下劃線或美元符號開頭,盡管這在語法上是允許的。
變數名應簡短且富於描述。變數名的選用應該易於記憶,即,能夠指出其用途。盡量避免單個字元的變數名,除非是一次性的臨時變數。臨時變數通常被取名為i,j,k,m和n,它們一般用於整型;c,d,e,它們一般用於字元型。 char c;
int i;
float myWidth;
實例變數(Instance Variables) 大小寫規則和變數名相似,除了前面需要一個下劃線 int _employeeId;
String _name;
Customer _customer;
常量(Constants) 類常量和ANSI常量的聲明,應該全部大寫,單詞間用下劃線隔開。(盡量避免ANSI常量,容易引起錯誤) static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;

10 編程慣例(Programming Practices)

10.1 提供對實例以及類變數的訪問控制(Providing Access to Instance and Class Variables)

若沒有足夠理由,不要把實例或類變數聲明為公有。通常,實例變數無需顯式的設置(set)和獲取(gotten),通常這作為方法調用的邊緣效應 (side effect)而產生。

一個具有公有實例變數的恰當例子,是類僅作為數據結構,沒有行為。亦即,若你要使用一個結構(struct)而非一個類(如果java支持結構的話),那麼把類的實例變數聲明為公有是合適的。

E. java學習路線

個人覺得這個java學習路線還可以,算是2018年比較新穎的java學習路線,比較符合企業用人的標准。

因為大部分的人都是從零基礎進行學習的,所以我建議大家一定要跟著大綱走,不然非常容易走偏,最後放棄,這是我以一個過來的經驗給大家說的,希望大家引以為戒,多練習永遠是學習Java的最佳捷徑。

文章來源:悟空問答

F. javaweb和jsp的區別

JAVA是一種編程語言,可以編寫應用程序,主要應用在網路編程上。JSP是建立在JAVA基礎上的一種網路編程語言,只能在網頁上應用。

可以把jsp理解為腳本,java為面向對象語言。jsp作用主要是負責頁面展現,java負責邏輯,業務處理

jsp本質是servlet,servlet本質是java類,就是這么個關系。

(6)javaweb編程規范擴展閱讀

JAVA和JSP之間的關系,以及JAVA的完整認識

JAVA分為J2EE,J2SE,J2ME下面分別介紹:

一、J2EE:Java 2 Platform Enterprise Edition 企業版,用於企業應用,支持分布式部署。

J2EE平台由一整套服務(Services)、應用程序介面(APIs)和協議構成,

它對開發基於Web的多層應用提供了功能上的支持。它包含13種核心技術規范:

1、Java Database Connectivity (JDBC)

以一種統一的方式來對各種各樣的資料庫進行存取

2、Java Naming and Directory Interface (JNDI)

用於名字和目錄服務,它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統等

3、Enterprise Java Beans (EJB)

提供了一個框架來開發和實施分布式商務邏輯,顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發

4、JavaServer Pages (JSPs) 這里就是你所說的JSP!!!!!!

用以創建動態網頁

5、Java servlets

提供的功能大多與JSP類似,不過實現的方式不同

6、Remote Method Invocation (RMI)

在遠程對象上調用一些方法,使用了連續序列方式在客戶端和伺服器端傳遞數據

7、Interface Description Language (IDL)

將Java和CORBA集成在一起

8、Java Transaction Architecture (JTA)

可以存取各種事務

9、Java Transaction Service (JTS)

規定了事務管理器的實現方式

10、JavaMail

用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類

11、JavaBeans Activation Framework(JAF)

JavaMmail利用JAF來處理MIME-編碼的郵件附件,MIME的位元組流可以被轉換成JAVA對象,或者轉換自JAVA對象

12、Java Messaging Service (JMS)

是用於和面向消息的中間件相互通信的應用程序介面(API)

13、Extensible Markup Language (XML)

XML是一種可以用來定義其它標記語言的語言

上面的JSP是主流,基於MVC的實現,最流行使用,也最安全(比較其他語言做的網站)

其中EJB是java最難學的東西

但是現在的sun公司出來一種新的技術:java FX,

可以像FLASH一樣在瀏覽器中執行,但是也要安裝插件,具體可以參見www.sun.com

二、J2SE:Java 2 Platform Standard Edition 標准版,用於桌面應用,也是J2EE的基礎。

包括JAVA基礎,IO,Swing,AWT,線程,集合等知識.也是學習JAVA的必經之路(基礎)!

三、J2ME:Java 2 Platform Micro Edition 移動版用於小型設備,是J2SE的一個子集。

G. 請問J2EE、Java EE、Java Web究竟有什麼不同啊哪位大神詳細解釋一下

J2EE =Java2.0 EE 也可以叫Java EE,這個區別不大。
Java分類包括J2SE J2EE J2ME ,其中J2SE是標准包,主要用於Application或Apple開發;J2ME是嵌入式系統,不要是手機、PAD這類的開發包;J2EE就比較麻煩理論上包含了JavaBeans EJB Servlet/JSP還有一些其他的比如XML的分析器等等,說白了J2EE就是個大雜燴,SUN自己也說不清楚的東西都放進來了。
至於Java web不見於官方的規范,只能說是一種俗稱,主要只Java對web互聯網編程的應用,包含J2SE中的Applet客戶端以及J2EE的Servlet/JSP等等,後台也可能使用EJB等。

H. 怎麼寫好Java(或者Java web)代碼

作為一個Java開發攻城獅(lao si ji),我可以負責任地告訴你,多看多寫~
首先,鑒於題主你說你是剛接觸地階段,我並不推薦你你上來就要寫工業級或者企業級的代碼,當下的話應該是迅速積累項目經驗,快速掌握java web的開發流程為主,可以網上看看什麼視頻教程,有些還是能學到規范的。
分享一下我的經歷吧~
讀大學的時候我接一些外包【朋友介紹】,一開始也很虛啊,覺得這里不對,那裡不對的。寫得多了,慢慢理解整個開發流程後,就覺得也就是增刪改查嘛,沒什麼的。每次都要寫,好麻煩啊,既然這樣,不如自己造一些輪子,後來就是項目多了,又造了一些輪子,然後做了系列的封裝。期間穿插讀了 重構和effective java兩本書,代碼方法保持整潔,但一些代碼上還是不規范。
再後來,學習了java的一些高級特性,反射、自省【提高了寫代碼250%的效率】以及參考了部分阿里的規范,感覺逐漸能寫出比以前看上去優雅的代碼了。
接下來的一段時間,因為興趣的原因,研究了一下三大框架,自己強行擼了三個閹割版。回去看源碼的時候,發現spring寫得真的太優雅了,然後又小小改了一下風格。
最後,出來工作了,哦謝特~ 大家寫得什麼鬼啊~ 什麼規范都不參照~ 簡直內心爆炸,一萬點傷害~ 好吧,我還是照著我原先的思路,搞一搞~
所以說,工業級、企業級代碼不是每個公司都有,但是對自身有要求是好事啊~ 你也別急,慢慢寫,也能逐漸規范起來~ 只是現在,不合適~ 加油~
還有問題的話,歡迎聯系我~

I. 學習javaweb,需要掌握什麼技能到公司一般都做什麼

1、語言方面,javaweb的話 java功底肯定要扎實,html比較簡單,熟悉基本標簽,開發時會基本格式,結合幫助文檔,開發多了還是比較容易的,jsp的配置原理要搞清楚
2、平台,一般的javaweb開發都使用myeclipse,多用,掌握基本的調式、排錯,主要在實際開發中積累工具使用的經驗,以及排錯能力。tomcat是網路容器,要會配置部署,也比較簡單,內容較少,會基本的配置部署就行了,但是初學者經常會出一些莫名其妙的錯誤,多自己動手解決,看文檔,要學的東西不多。
3、框架的使用是企業為規范團隊開發都會規定一個項目使用某個框架,掌握其中的一款就行了,具體那款比較好,就不好評判了,目前我們團隊使用的是struts框架,熟練掌握一類框架,其他都有共通之處,以後用到了要學也很快。
4、MVC模式是基本開發理念,在設計自己的功能代碼頁面的時候有這樣的思想使代碼層次清晰就好。
5、資料庫也是開發者不可缺少的技能之一,SQL查詢語句是都要使用的,盡量多掌握,具體資料庫類型的化mysql、oracle比較主流,可以選擇一種進行開發,能夠基本建庫建表及基本查詢排錯就差不多了。

6、腳本語言javascript、jquery也是網頁開發廣泛使用的腳本語言,是動態網頁實現的總要技術。具體學習的化寫幾個小程序熟悉基本使用格式入門,要想精通的話就得在實際工作中不斷積累總結了。

學習階段主要是基本的東西,有人說理論不重要,但是沒有理論的話,永遠只能模仿別人的代碼,軟體工程師是設計者,不是模仿者,所有在理論的基礎上多練多思考,找份工作不難,然後在工作中積累經驗,不斷提高完善,這是我作為一名程序員的感悟,希望對你有所幫助。

J. java web 和 jsp 是什麼

http://ke..com/w?ct=17&lm=0&tn=WikiSearch&pn=0&rn=10&word=jsp
這是在網路中查到的jsp的詳細介紹。
其實不用全看的,我給樓主簡單說一下就行了。
java web 是指java技術中的開發網站的技術,其實真的用java做網站我個人並不推薦,不如直接用asp,php,java很多時候由於其出色的代碼書寫規范和高效的資料庫調用技術從而開發一些用一定難度的基於瀏覽器的系統,如內部oa,erp等基於intenet的系統。
舉個最簡單的例子,比如你是一個葯房的老闆,葯房肯定要有一個收費系統,收費系統必須綁定一個資料庫。這個收費系統肯定是基於桌面軟體開發的,如delphi開發的等,不然運行速度太慢了。
但是由於你是老闆,要經常出差,無法及時看到要點資料庫內容,所以你可以使用java web技術開發一個基於intenet互聯網的「老闆查詢系統」。這樣你就可以在任何可以上網的地方看到你需要的數據,當然,速度要比所面軟體開發的要慢一些。
至於jsp,是java web技術中的一種,他的爸爸叫servlet,由於大量由asp,php轉過來的程序員看不懂servlet代碼,所以sun才開發了基於servlet的,代碼編寫類似asp,php的jsp。
不過現在很多人將jsp和servlet一起使用,包括我也是這樣用的,效果非常好,雖然遠比不了struts。
樓主可以這樣理解,java web是一種技術理念,而jsp是java web理念的一個實現。
如:大規模殺傷性武器是一種技術理念,而原子彈,氫彈就是這種技術的實現,明白否?
至於教程,建議樓主先看張孝祥的java就業培訓教程後(這個教程樓主課下載迅雷後在www.gougou.com中搜索到),在去www.gougou.com搜索關於jsp的教程,jsp學起來有一定難度,需要學資料庫中的sql語句以及基本的html,還有如tomcat伺服器,weblogic,jboss等伺服器的任意一個,建議樓主學tomcat就可以了,免費的,上手快,功能除了ejb都可以。
最後祝福樓主成功吧!