學習Java之前,我們需要了解一定的前端知識。畢竟頁面才是用戶真正看到的,而且也是體現Java后端邏輯結果的地方。
學習HTML后,能夠制作界面美觀大方的靜態網站(更復雜的功能需要JavaScript腳本一起來實現)。
HTML制作的網頁。
所需要的Html開發工具,可使用Hbuilder。
下載路徑:https://www.dcloud.io/
第一次寫文章,不知道鏈接會不會被屏蔽,如果看不到可以自行百度,直接搜索Hbuilder,進入官網下載安裝,安裝完打開軟件后,點擊暫不登陸,你懂的(免費使用)。
網頁一般使用Chrome,IE的兼容性比較差,學習建議使用Chrome。
下載路徑:https://www.google.cn/chrome/
作者推薦的學習用軟件,都為免費,放心下載使用。
一、在Hbuilder中如何來創建頁面
1、文件->新建->web項目
2、給項目起名(也可以修改路徑,命名用英文或者拼音縮寫,用中文可能開發會出錯)
Hbulider創建項目
3、完成
4、右擊新建的項目:新建->HTML文件
5、為新的文件重命名,以html作為后綴
6、完成
Hbuilder創建Html文件
7、選擇頁面,點擊在瀏覽器中運行按鈕
在瀏覽器中運行按鈕
以下新手筆試或者面試容易考
HTML是HyperText Markup Language縮寫,意為超文本標記語言,“超文本”就是指頁面內可以包含圖片、鏈接,甚至音樂、程序等非文字元素。
特點:
1、簡易性
2、可擴展性
3、平臺無關性
4、通用性
HTML的結構
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>Hello Java</h1>
<h2>Hello Html</h2>
</body>
</html>
HTML的結構詳解:(了解即可,一般開發軟件會自動生成,如不生成,那就找個會生成的軟件,復制黏貼)
<!DOCTYPE html>:文件類型聲明,H5中就這么一種寫法。
<html>:告知瀏覽器其自身是一個 HTML 文檔,限定了文檔的開始點和結束點
<head>:文檔的頭部描述了文檔的各種屬性和信息,包括文檔的標題、字符集等信息。絕大多數文檔頭部包含的數據都不會真正作為內容顯示給讀者。在head中可以定義樣式,引用樣式,也可以定義腳本和引用腳本
<body>:文檔的主體部分,包含文檔的所有內容(比如文本、超鏈接、圖像、表格和列表等等。),body部分的內容一般就是直接呈現給用戶的部分
網頁中的亂碼問題:
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<title></title>
</head>
<body>
<h1>Hello Java</h1>
<h2>Hello Html</h2>
你好
</body>
</html>
運行以上代碼,可以在網頁中看到,“你好”兩個字為亂碼。這是<meta charset="gb2312">搞的鬼。
當文件本身的字符集編碼以與網頁head部分指定的字符集編碼不一致時,就會產生亂碼問題,可以在head部分的meta標簽中指定和文件一樣的字符集編碼來解決這一問題。<meta charset="utf-8" />
從執行上面的代碼也可以看出,html是按從上到下的順序來顯示的。
下一篇內容:Html各種標簽的認識和使用。
節討論如何在瀏覽器中的JavaScript引擎中運行Java平臺。在瀏覽器中運行Java應用程序的標準方式是通過Java小程序。 Applets可以在Web瀏覽器中提供高級別的交互功能,這將超出HTML的普通功能。如果你想在Java中運行JavaScript,你應該參考nashorn JavaScript引擎。
在客戶端腳本方面,JavaScript沒有競爭對手。隨著現代網絡和瀏覽器的出現,JavaScript更加蓬勃發展。憑借良好的JavaScript技能以及像jQuery這樣的庫,我們可以輕松地在現在的市場中找到一份好工作。在這種情況下,我只是想了解在瀏覽器的JavaScript引擎中完全可以運行Java JVM。在這方面是否有任何工作正在進行以及提供這種支持的任何庫。
Orto JavaScript JVM
2008年,John Resig在Orto JavaScript JVM上發布了一篇博文。我們可以通過Orto運行Java字節碼,它生成一個JavaScript并且可以嵌入網頁中。我無法追蹤Orto的源項目URL,并且看起來像目前沒有被維護。幸運的是,一些好的撒瑪利亞人在GitHub上發布了Orto項目。沒有關于許可條款和文檔的信息都是日文版本。
Jainja Java轉為JavaScript
Jainja聲稱支持Java 1.5規范的所有主要特性。 Jainja JVM的演示版可用作Chrome應用程序。一個俄羅斯方塊游戲使用這個JVM托管在appspot中,它非常令人印象深刻。應用程序在瀏覽器中的響應緩慢。項目源可用并在SourceForge上托管。
BicaVM
這是構建JVM的一部分。這更像是一個概念驗證(POC),而不是一個完整的JVM。從這個意義上說,這很有吸引力,我們可以學習如何以及從哪里開始進行類似的項目。
LLVM,VMKit和emscripten組合
“LLVM項目是模塊化和可重用的編譯器,工具鏈技術的集合。” VMKit項目是構建在LLVM上的Java和.NET VM的實現。 VMKit目前尚未維護,但代碼可用查看其存儲庫。 emscripten是一個LLVM-to-JavaScript編譯器。它可以將LLVM位碼轉換為JavaScript。所以通過結合這三者,我們應該能夠在JavaScript引擎中運行Java。 VMKit目前沒有維護,并且考慮到使用這些組合,所以這不是一個有希望的想法。
其他類似的Java JVM
+script- 輔助大學課程的部分實施。
Bck2Brwsr - 這是列出的所有這些項目中最活躍的項目。這是來自NetBeans IDE的創始人之一。
Doppio - 是一個可以在JavaScript引擎中運行Java的Java JVM。它是用CoffeeScript編寫的。這是聲稱對功能支持最多的一個。
jarjvm - 完全是用JavaScript Java JVM編寫的。目前它基于GitHub中的提交而不是主動的。
node-jvm - 是純node.js中的Java虛擬機關于支持哪個版本的Java規范沒有太多可用的信息。看起來,它沒有積極維護。
在上面列出的所有項目中,Bck2Brwsr和Doppio是看起來很有前途的JavaScript Java JVM。這些項目趕上Java 8并不是一件容易的事情。
相信你對為你的項目生成Java API文檔(Javadoc)非常熟悉。我們可以通過命令行使用javadoc工具、通過IDE支持、通過Maven插件(maven-javadoc-plugin)等方式來生成Javadoc。
在編寫Javadoc時,一個常見的情況是添加代碼片段來舉例說明非平凡類或方法的使用。在JDK 18之前,可以通過`{@code...}`或`<pre>`標簽在文檔中添加代碼片段。添加的代碼被視為純文本,不會進行正確性驗證,也無法被其他工具發現。讓我們快速舉一個例子:
/**
* 一個帶有激光測距功能的測距儀,測距范圍從0到60英尺,
* 包括高精度計算表面積和體積
*
* <pre>{@code
* Telemeter.Calibrate.at(0.00001);
* Telemeter telemeter=new Telemeter(0.15, 2, "IP54");
* }</pre>
*/
public class Telemeter {
// ...
}
在捆綁的代碼中,你可以看到完整的示例。Javadoc是通過Maven插件(maven-javadoc-plugin)在構建時生成的,所以只需觸發構建即可。
從JDK 18開始,JEP 413 - Java API文檔中的代碼片段,我們通過全新的`{@snippet...}`標簽支持在文檔中添加代碼片段。通過`@snippet`添加的代碼可以被第三方工具發現和驗證(但不是javadoc工具本身)。
例如,之前的代碼片段可以通過`@snippet`添加如下:
/**
* 一個帶有激光測距功能的測距儀,測距范圍從0到60英尺,
* 包括高精度計算表面積和體積
*
* {@snippet :
* Telemeter.Calibrate.at(0.00001);
* Telemeter telemeter=new Telemeter(0.15, 2, "IP54");
* }
*/
public class Telemeter {
// ...
}
輸出的截圖如下所示:
圖2.13 - 來自`@snippet`的簡單輸出
有效的代碼從分號(:)后面的換行符開始,并在關閉右大括號(})之前結束。代碼的縮進與代碼塊中的縮進相同,因此編譯器會移除偶然的空白字符,我們可以根據關閉右大括號(})來縮進代碼。請查看以下圖表:
圖2.14 - 代碼片段的縮進
在上面的例子中,關閉右大括號與打開左大括號對齊,而在下面的例子中,我們將關閉右大括號向右移動了。
**添加屬性**
我們可以通過名稱=值對為`@snippet`指定屬性。例如,我們可以通過`lang`屬性為代碼片段提供編程語言提示。屬性的值可供外部工具使用,并出現在生成的HTML中。以下是兩個例子:
* {@snippet lang="java" :
* Telemeter.Calibrate.at(0.00001);
* Telemeter telemeter=new Telemeter(0.15, 2, "IP54");
* }
在生成的HTML中,你將很容易識別到這個屬性作為`<code class="language-java"> … </code>`。
如果代碼是結構化文本,如屬性文件,則可以遵循以下示例:
* {@snippet lang="properties" :
* telemeter.precision.default=42
* telemeter.clazz.default=2
* }
在生成的HTML中,你將得到`<code class="language-properties"></code>`。
接下來,讓我們看看如何更改代碼片段中顯示的內容。
**使用標記注釋和區域**
我們可以通過標記注釋來可視化地更改代碼片段。標記注釋出現在行尾,并包含一個或多個標記標簽,形式為`@name args`,其中args通常是name=value對。常見的標記注釋包括高亮顯示、鏈接和內容(文本)修改。
**高亮顯示**
可以通過不帶參數的`@highlight`來高亮顯示整行代碼,如下圖所示:
圖2.15 - 高亮顯示整行代碼
如你在此圖中看到的,第一行代碼被加粗了。如果我們想高亮顯示多行代碼,則可以定義區域。一個區域可以被視為匿名的或具有顯式名稱。匿名區域由標記標簽的參數中的單詞region界定,并在區域末尾放置`@end`標簽。以下是一個高亮顯示兩個區域(一個匿名的和一個名為R1的)的示例:
圖2.16 -使用區域高亮顯示代碼塊
正則表達式允許我們高亮顯示代碼的特定部分。例如,高亮顯示引號之間的所有內容可以通過`@highlight regex='".*"'`來實現。或者,僅高亮顯示單詞Calibrate可以通過substring="Calibrate"參數來實現,如下圖所示:
圖2.17 - 僅高亮顯示單詞"Calibrate"
接下來,讓我們談談在代碼中添加鏈接。
**鏈接**
可以通過`@link`標簽在代碼中添加鏈接。常見的參數是substring="…"和target="…"。例如,以下代碼片段為文本Calibrate提供了一個鏈接,該鏈接導航到Calibrate.at()方法的描述:
圖2.18 - 在代碼中添加鏈接
接下來,讓我們看看如何修改代碼的文本。
**修改代碼的文本**
有時我們可能需要更改代碼的文本。例如,我們想在文檔中渲染`Telemeter.Calibrate.at(eps, "HIGH");`而不是`Telemeter.Calibrate.at(0.00001, "HIGH");`。因此,我們需要將0.00001替換為eps。這正是`@replace`標簽的用途所在。常見參數包括substring="…"(或regex="…")和replacement="..."。以下是代碼片段:
圖2.19 - 替換代碼的文本
如果你需要在代碼塊中執行多個替換,則依賴于區域。在以下示例中,我們對代碼塊應用了一個簡單的正則表達式:
圖2.20 - 通過簡單正則表達式和匿名區域應用多個替換
如果你需要在同一行上執行更多替換,只需鏈式使用多個`@replace`標簽(此語句適用于所有標簽,如`@highlight`、`@link`等)。
**使用外部片段**
到目前為止,我們只使用了內聯片段。但是,有些情況下使用內聯片段不是一個方便的方法(例如,如果我們需要重復文檔中的某些部分)或無法使用它們(例如,如果我們要嵌入/*…*/注釋,這些注釋無法添加到內聯片段中)。
對于這些情況,我們可以使用外部片段。無需任何進一步配置,JDK會自動識別放置在包含片段標簽的包(文件夾)的子文件夾中的外部片段。這個子文件夾應命名為snippet-files,并且可以包含作為Java源代碼、純文本文件或屬性文件的外部片段。在以下圖表中,我們有一個名為MainSnippet.txt的單個外部文件:
圖2.21 - snippet-files中的外部片段
如果外部片段不是Java文件,則可以通過`{@snippet file …}`加載,如下所示:
{@snippet file=MainSnippet.txt}
{@snippet file="MainSnippet.txt"}
{@snippet file='MainSnippet.txt'}
但是,我們還可以自定義外部片段的位置和文件夾名稱。例如,讓我們將外部片段放置在名為snippet-src的文件夾中,如下所示:
圖2.22 - 自定義文件夾和位置中的外部片段
這次,我們需要指示編譯器在哪里找到外部片段。這是通過向javadoc傳遞`--snippet-path`選項來完成的。當然,你可以通過命令行、IDE或maven-javadoc-plugin來傳遞它,如下所示:
<additionalJOption>
--snippet-path C:\...\src\snippet-src
</additionalJOption>
這個路徑相對于你的機器,所以請根據你的pom.xml文件相應地調整它。接下來,可以像之前對MainSnippet.txt所做的那樣加載AtSnippet.txt和ParamDefaultSnippet.properties。但是,加載Java源代碼,如DistanceSnippet.java,可以通過`{@snippet class…}`來完成,如下所示:
{@snippet class=DistanceSnippet}
{@snippet class="DistanceSnippet"}
{@snippet class='DistanceSnippet'}
但是,不要明確添加.java擴展名,因為你會得到一個錯誤,指出在源代碼路徑或片段路徑上找不到文件:DistanceSnippet/java.java。
**外部片段中的區域**
外部片段通過`@start region=…`和`@end region=…`支持區域。例如,在AtSnippet.txt中,我們有以下區域:
// 這是文檔中使用的示例
// @start region=only-code
Telemeter.Calibrate.at(0.00001, "HIGH");
// @end region=only-code
現在,如果我們按如下方式加載區域:
{@snippet file=AtSnippet.txt region=only-code}
我們只會得到區域中的代碼,而不會得到文本`// 這是文檔中使用的示例`。以下是另一個帶有兩個區域的屬性文件的示例:
# @start region=dist
sc=[0,0]
ec=[0,0]
interpolation=false
# @end region=dist
# @start region=at
eps=0.1
type=null
# @end region=at
dist區域用于在文檔中顯示distance()方法參數的默認值:
圖2.23 - 使用dist區域展示了distance()方法參數的默認值
而at區域則用于在文檔中顯示at()方法參數的默認值:
圖2.24 - 使用'at'區域展示了at()方法參數的默認值
在外部片段中,我們可以使用與內聯片段中相同的標簽。例如,在以下圖表中,你可以看到AtSnippet.txt的完整源代碼:
圖2.25 - AtSnippet.txt的源代碼
請注意@highlight和@replace的存在。
從JDK 19開始,Javadoc的搜索功能也得到了改進。換句話說,JDK 19+可以生成一個獨立的搜索頁面,用于在Javadoc API文檔中搜索。此外,搜索語法也得到了增強,以支持多個搜索詞。
你可以在捆綁的代碼中練習這些示例。通過添加適當的代碼片段和標記,你可以為你的Java API文檔提供更加豐富和有用的內容,幫助讀者更好地理解和使用你的代碼庫。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。