学习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小时内与您取得联系。