Java和JavaScript之间的区别
<h2><strong>1.简介</strong></h2><p class="p"><span style="font-family: Tahoma">通过优锐课核心java学习笔记中,我们可以看到,Java和JavaScript之间的区别.我们将在本文中比较</span>Java语言和JavaScript语言。JavaScript由Netscape开发。它最初是用于客户端的脚本语言,后来又用作客户端和服务器脚本的语言。Java由James Gosling由Sun Microsystems开发。这些天来,JavaScript在服务器中以<strong>node.js</strong><span style="font-family: Tahoma">的形式使用。</span>Java和JavaScript之间在程序编码,编译和运行方式方面存在许多差异。码了很多专业的相关知识, 分享给大家参考学习。</p>
<p class="p">JavaScript首先被称为Mocha,然后被称为LiveScript。现在它被称为当前名称。Java被称为Oak,然后称为Green。</p>
<h2><strong>2. Java和JavaScript之间的区别</strong></h2>
<h3><strong>2.1先决条件</strong></h3>
<p class="p"><span style="font-family: Tahoma">在</span>Linux,Windows或Mac操作系统上需要<strong>Java 8</strong><span style="font-family: Tahoma">。</span>Eclipse Oxygen可以用于此示例。<strong> </strong>Node.js与Eclipse安装捆绑在一起。</p>
<h3><strong>2.2下载</strong></h3>
<p class="p"><span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以从甲骨文网站下载</span>Java 8 <span style="font-family: Tahoma">网站</span> 。可以从eclipse网站上<span style="font-family: Tahoma">下载</span>Eclipse Oxygen 。<strong>Node.js的</strong><span style="font-family: Tahoma">可以从这个下载</span><span style="font-family: Tahoma">网站</span><span style="font-family: Tahoma">。</span></p>
<h3><strong>2.3设置</strong></h3>
<h4><strong>2.3.1 Java设置</strong></h4>
<p class="p"><span style="font-family: Tahoma">以下是</span>Java环境所需的设置命令。</p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">设定</span></span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="14">
<p align="right">1个</p>
<p align="right">2</p>
<p align="right">3</p>
<p align="right">4</p>
</td>
<td valign="top" width="539">
<p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">JAVA_HOME =“ / desktop / jdk1.8.0_73”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></p>
<p>导出JAVA_HOME</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></p>
<p>PATH = $ JAVA_HOME / bin:$ PATH</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></p>
<p>导出路径</font></font><font></font></p>
</td>
</tr>
</tbody>
</table>
<h3><strong>2.4 IDE</strong></h3>
<h4><strong>2.4.1 Eclipse氧气设置</strong></h4>
<p class="p"><span style="font-family: Tahoma">可以从</span>eclipse网站上下载“ eclipse-java-oxygen-2-macosx-cocoa-x86_64.tar”。双击打开tar文件。使用存档实用程序将tar文件解压缩。解压缩后,<span style="font-family: 宋体">你</span><span style="font-family: Tahoma">会在文件夹中找到</span>Eclipse图标。<span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以通过拖动图标将</span>Eclipse图标从文件夹移动到应用程序。</p>
<h3><strong>2.5启动IDE</strong></h3>
<h4><strong>2.5.1 Eclipse Java</strong></h4>
<p class="p">Eclipse具有与语言支持,定制和扩展有关的功能。<span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以单击</span>Eclipse图标以启动Eclipse。蚀屏幕弹出,如下图所示:</p>
<p>Eclipse欢迎屏幕</p>
<p class="p"><span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以从弹出的屏幕中选择工作区。所附图像显示了如何选择它。</span></p>
<p>Eclipse工作区</p>
<p class="p"><span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以在屏幕上看到</span>Eclipse工作台。所附的屏幕快照显示了Eclipse项目屏幕。</p>
<p>Eclipse工作台</p>
<p class="p">Java Hello World 类输出问候语。添加了下面的屏幕快照,以显示Eclipse中的类和执行。</p>
<p class="p"><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109102459406-1248950131.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p>Java Hello</p>
<p class="p"><span style="font-family: 宋体">你</span><span style="font-family: Tahoma">可以从菜单创建一个</span>JavaScript项目,并命名该项目,如以下屏幕快照所示:</p>
<p>JavaScript专案</p>
<p class="p">JavaScript(Node.js)hello程序在IDE中执行。输出“问候”显示在下面的屏幕截图中。</p>
<p><span style="font-family: 宋体">你好</span>js</p>
<h3><strong>2.6内存管理</strong></h3>
<p class="p">Java语言具有与内存管理相关的功能,并且是一种内存安全的语言。垃圾收集是一项有助于收集免费和已释放资源的功能。Java开发人员不能超出分配的内存。在Java中,当内存消耗超出分配范围时,它将引发错误。与Java相比,JavaScript需要更少的内存。它广泛用于网页中的客户端脚本编写。</p>
<h3><strong>2.7异常处理</strong></h3>
<p class="p"><span style="font-family: Tahoma">在</span>Java中,可以通过使用try,catch和finally块来进行异常处理。</p>
<p><span style="text-decoration: underline">Java异常处理</span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
<p align="right">15</p>
<p align="right">16</p>
<p align="right">17</p>
<p align="right">18岁</p>
</td>
<td valign="top" width="538">
<p><strong>public</strong> <strong>class</strong> ExceptionExample{ <font></font></p>
<p> <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[]) <strong>throws</strong> Exception{ <font></font></p>
<p> <strong>try</strong>{ <font></font></p>
<p> <strong>int</strong> result=36/0; <font></font></p>
<p> System.out.println(" the result is "+result); <font></font></p>
<p> } <font></font></p>
<p> <strong>catch</strong>(ArithmeticException exception)<font></font></p>
<p> {<font></font></p>
<p> System.out.println(exception);<font></font></p>
<p> <font></font></p>
<p> <strong>throw</strong> <strong>new</strong> Exception("division by zero"); <font></font></p>
<p> } <font></font></p>
<p> <strong>finally</strong><font></font></p>
<p> {<font></font></p>
<p> System.out.println("finally block is executed at the end");} <font></font></p>
<p> System.out.println("code below is used for next steps"); <font></font></p>
<p> } <font></font></p>
<p>}<font></font></p>
</td>
</tr>
</tbody>
</table>
<p class="p">JavaScript具有try,catch,throw和finally块来处理异常处理。</p>
<p><span style="text-decoration: underline">Javascript异常处理</span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
<p align="right">15</p>
<p align="right">16</p>
<p align="right">17</p>
<p align="right">18岁</p>
<p align="right">19</p>
</td>
<td valign="top" width="538">
<p>console.log("entering try-catch statement");<font></font></p>
<p><font></font></p>
<p><strong>try</strong> {<font></font></p>
<p> console.log("entering try block");<font></font></p>
<p> <strong>throw</strong> "thrown message";<font></font></p>
<p> console.log("this message is never seen");<font></font></p>
<p>}<font></font></p>
<p><strong>catch</strong> (e) {<font></font></p>
<p> console.log("entering catch block");<font></font></p>
<p> console.log(e);<font></font></p>
<p> console.log("leaving catch block");<font></font></p>
<p>}<font></font></p>
<p><strong>finally</strong> {<font></font></p>
<p> console.log("entering and leaving the finally block");<font></font></p>
<p>}<font></font></p>
<p><font></font></p>
<p>console.log("leaving try-catch statement");<font></font></p>
<p><font></font></p>
<p><font></font></p>
</td>
</tr>
</tbody>
</table>
<h3><strong>2.8多重继承</strong></h3>
<p class="p"><span style="font-family: Tahoma">让我们举一个例子,看看如何用</span>Java和JavaScript处理它。卡车是车辆和机器。</p>
<p class="p"><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109103317357-2117620064.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>多重继承</p>
<p class="p">Java不支持多重继承。每个类只能在一个类上扩展,但可以实现多个接口。示例代码显示下面的 Truck 类实现接口 Machine 和 Vehicle<span style="font-family: Tahoma">接口</span></p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">多重继承的例子</span></span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
<p align="right">15</p>
<p align="right">16</p>
<p align="right">17</p>
<p align="right">18岁</p>
<p align="right">19</p>
<p align="right">20</p>
<p align="right">21</p>
<p align="right">22</p>
<p align="right">23</p>
<p align="right">24</p>
<p align="right">25</p>
<p align="right">26</p>
<p align="right">27</p>
<p align="right">28</p>
<p align="right">29</p>
<p align="right">30</p>
<p align="right">31</p>
<p align="right">32</p>
<p align="right">33</p>
<p align="right">34</p>
<p align="right">35</p>
<p align="right">36</p>
<p align="right">37</p>
<p align="right">38</p>
<p align="right">39</p>
<p align="right">40</p>
<p align="right">41</p>
<p align="right">42</p>
<p align="right">43</p>
<p align="right">44</p>
</td>
<td valign="top" width="538">
<p><strong>interface</strong> Machine<font></font></p>
<p>{<font></font></p>
<p> <font></font></p>
<p> <strong>int</strong> distanceTravelled=100;<font></font></p>
<p> <strong>public</strong> <strong>int</strong> getDistance();<font></font></p>
<p>}<font></font></p>
<p><strong>interface</strong> Vehicle<font></font></p>
<p>{<font></font></p>
<p> <strong>int</strong> velocity=50;<font></font></p>
<p> <strong>public</strong> <strong>int</strong> getVelocity();<font></font></p>
<p>}<font></font></p>
<p><strong>public</strong> <strong>class</strong> Truck <strong>implements</strong> Machine, Vehicle<font></font></p>
<p>{<font></font></p>
<p> <strong>int</strong> time;<font></font></p>
<p> <strong>int</strong> velocity;<font></font></p>
<p> <strong>int</strong> distanceTravelled;<font></font></p>
<p> <font></font></p>
<p> <font></font></p>
<p> <strong>public</strong> Truck(<strong>int</strong> velocity, <strong>int</strong> time)<font></font></p>
<p> {<font></font></p>
<p> <strong>this</strong>.velocity = velocity;<font></font></p>
<p> <strong>this</strong>.time = time;<font></font></p>
<p> }<font></font></p>
<p> <font></font></p>
<p> <strong>public</strong> <strong>int</strong> getDistance()<font></font></p>
<p> {<font></font></p>
<p> distanceTravelled= velocity*time; <font></font></p>
<p> System.out.println("Total Distance is : "+distanceTravelled);<font></font></p>
<p> <strong>return</strong> distanceTravelled;<font></font></p>
<p> }<font></font></p>
<p> <strong>public</strong> <strong>int</strong> getVelocity()<font></font></p>
<p> {<font></font></p>
<p> <strong>int</strong> velocity=distanceTravelled/time;<font></font></p>
<p> System.out.println("Velocity is : "+ velocity);<font></font></p>
<p> <strong>return</strong> velocity;<font></font></p>
<p> }<font></font></p>
<p> <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[])<font></font></p>
<p> {<font></font></p>
<p> Truck truck = <strong>new</strong> Truck(50,2);<font></font></p>
<p> truck.getDistance();<font></font></p>
<p> truck.getVelocity();<font></font></p>
<p> }<font></font></p>
<p>}<font></font></p>
<p><font></font></p>
</td>
</tr>
</tbody>
</table>
<p class="p">JavaScript支持使用inheritsMultipleObjects<span style="font-family: Tahoma">函数的多重继承。以下示例显示了</span>Truck如何分别从Vehicle和Machine继承函数getDistance和getVelocity。</p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">多重继承</span>-Javascript</span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
<p align="right">15</p>
<p align="right">16</p>
<p align="right">17</p>
<p align="right">18岁</p>
<p align="right">19</p>
<p align="right">20</p>
<p align="right">21</p>
<p align="right">22</p>
<p align="right">23</p>
<p align="right">24</p>
<p align="right">25</p>
<p align="right">26</p>
<p align="right">27</p>
<p align="right">28</p>
<p align="right">29</p>
<p align="right">30</p>
<p align="right">31</p>
<p align="right">32</p>
<p align="right">33</p>
<p align="right">34</p>
<p align="right">35</p>
<p align="right">36</p>
<p align="right">37</p>
<p align="right">38</p>
<p align="right">39</p>
<p align="right">40</p>
<p align="right">41</p>
<p align="right">42</p>
<p align="right">43</p>
<p align="right">44</p>
<p align="right">45</p>
<p align="right">46</p>
<p align="right">47</p>
<p align="right">48</p>
<p align="right">49</p>
<p align="right">50</p>
<p align="right">51</p>
</td>
<td valign="top" width="538">
<p>function inheritsMultipleObjects(baseObject, superObjects) {<font></font></p>
<p> <strong>return</strong> <strong>new</strong> Proxy(<font></font></p>
<p> baseObject,<font></font></p>
<p> {<font></font></p>
<p> get(target, key, rec) {<font></font></p>
<p> <strong>if</strong> (Reflect.ownKeys(target).includes(key)) {<font></font></p>
<p> <strong>return</strong> Reflect.get(target, key);<font></font></p>
<p> }<font></font></p>
<p> <strong>const</strong> parent = superObjects.find(<font></font></p>
<p> _parent => Reflect.has(_parent, key)<font></font></p>
<p> );<font></font></p>
<p> <strong>if</strong> (parent !== undefined) {<font></font></p>
<p> <strong>return</strong> Reflect.get(parent, key);<font></font></p>
<p> }<font></font></p>
<p> <strong>return</strong> undefined;<font></font></p>
<p> },<font></font></p>
<p> has(target, key) {<font></font></p>
<p> <strong>if</strong> (Reflect.ownKeys(target).includes(key)) {<font></font></p>
<p> <strong>return</strong> <strong>true</strong>;<font></font></p>
<p> }<font></font></p>
<p> <strong>const</strong> parentHasKey = superObjects.some(<font></font></p>
<p> _parent => Reflect.has(_parent, key)<font></font></p>
<p> );<font></font></p>
<p> <strong>if</strong> (parentHasKey) {<font></font></p>
<p> <strong>return</strong> <strong>true</strong>;<font></font></p>
<p> }<font></font></p>
<p> <strong>return</strong> <strong>false</strong>;<font></font></p>
<p> }<font></font></p>
<p> }<font></font></p>
<p> );<font></font></p>
<p>}<font></font></p>
<p><font></font></p>
<p><strong>class</strong> Vehicle {<font></font></p>
<p> getDistance() {<font></font></p>
<p> <strong>return</strong> 100;<font></font></p>
<p> }<font></font></p>
<p>}<font></font></p>
<p><strong>class</strong> Machine {<font></font></p>
<p> getVelocity() {<font></font></p>
<p> <strong>return</strong> 50;<font></font></p>
<p> }<font></font></p>
<p>}<font></font></p>
<p><strong>class</strong> Truck {}<font></font></p>
<p><strong>const</strong> _truck = <strong>new</strong> Truck();<font></font></p>
<p><strong>const</strong> truck = inheritsMultipleObjects(<font></font></p>
<p> _truck,<font></font></p>
<p> <font></font></p>
<p>);<font></font></p>
<p>console.log(truck.getDistance()); <font></font></p>
<p>console.log(truck.getVelocity()); <font></font></p>
<p>console.log(truck.constructor); <font></font></p>
</td>
</tr>
</tbody>
</table>
<h3><strong>2.9线程</strong></h3>
<p class="p">Java具有内置的类来创建线程。要创建一个新线程,一个类必须扩展一个 Thread 类,并且必须重写run方法。</p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">线程示例</span></span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
</td>
<td valign="top" width="538">
<p><strong>public</strong> <strong>class</strong> NewThread <strong>extends</strong> Thread<font></font></p>
<p>{ <font></font></p>
<p> <strong>public</strong> <strong>void</strong> run()<font></font></p>
<p> { <font></font></p>
<p> System.out.println("Thread running now"); <font></font></p>
<p> }<font></font></p>
<p> <font></font></p>
<p> <strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[])<font></font></p>
<p> { <font></font></p>
<p> NewThread newThread =<strong>new</strong> NewThread(); <font></font></p>
<p> newThread.start(); <font></font></p>
<p> } <font></font></p>
<p>} <font></font></p>
</td>
</tr>
</tbody>
</table>
<p class="p">Java提供了另一种创建线程的方法。Runnable 可以实例化实现的类, 并将其作为参数传递给 Thread 该类。下面提供了示例代码:</p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">线程对象</span>–可运行</span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
</td>
<td valign="top" width="538">
<p><strong>public</strong> <strong>class</strong> ThreadObject <strong>implements</strong> Runnable<font></font></p>
<p>{ <font></font></p>
<p> <strong>public</strong> <strong>void</strong> run()<font></font></p>
<p> { <font></font></p>
<p> System.out.println("ThreadObject running"); <font></font></p>
<p> } <font></font></p>
<p> <font></font></p>
<p><strong>public</strong> <strong>static</strong> <strong>void</strong> main(String args[])<font></font></p>
<p>{ <font></font></p>
<p> ThreadObject threadObject =<strong>new</strong> ThreadObject(); <font></font></p>
<p> Thread thread =<strong>new</strong> Thread(threadObject); <font></font></p>
<p> thread.start(); <font></font></p>
<p> } <font></font></p>
<p>}<font></font></p>
</td>
</tr>
</tbody>
</table>
<p class="p">JavaScript具有基于事件的机制来处理并发。Node.js是一种单线程语言。它使用多个线程在后台异步执行代码。让我们看一下下面代码中的派生线程示例:</p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">分叉线程</span></span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
<p align="right">12</p>
<p align="right">13</p>
<p align="right">14</p>
</td>
<td valign="top" width="538">
<p><strong>const</strong> { fork } = require('child_process');<font></font></p>
<p>var express = require('express');<font></font></p>
<p>var app = express();<font></font></p>
<p>app.get('/endpoint', (request, response) => {<font></font></p>
<p> <font></font></p>
<p> <strong>const</strong> process = fork('./mail.js');<font></font></p>
<p> <strong>const</strong> mail_messages = request.body.emails;<font></font></p>
<p><font></font></p>
<p> process.send({ mail_messages });<font></font></p>
<p> process.on('sendmail', (message) => {<font></font></p>
<p> log.info(` mail count ${message.counter}`);<font></font></p>
<p> });<font></font></p>
<p> <strong>return</strong> response.json({ status: <strong>true</strong>, sent: <strong>true</strong> });<font></font></p>
<p>});<font></font></p>
</td>
</tr>
</tbody>
</table>
<p class="p"><span style="font-family: Tahoma">下面的代码显示了如何</span>sendMultiplemails<span style="font-family: Tahoma">异步执行。</span></p>
<p><span style="text-decoration: underline"><span style="font-family: Tahoma">发送邮件</span></span></p>
<table border="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="15">
<p align="right">01</p>
<p align="right">02</p>
<p align="right">03</p>
<p align="right">04</p>
<p align="right">05</p>
<p align="right">06</p>
<p align="right">07</p>
<p align="right">08</p>
<p align="right">09</p>
<p align="right">10</p>
<p align="right">11</p>
</td>
<td valign="top" width="538">
<p>async function sendMultipleMails(mails) {<font></font></p>
<p> let sendMails = 0;<font></font></p>
<p> // code for sending multiple mails<font></font></p>
<p> <strong>return</strong> sendMails;<font></font></p>
<p>}<font></font></p>
<p><font></font></p>
<p>process.on('sendmail', async (message) => {<font></font></p>
<p> <strong>const</strong> countOfMailsSent = await sendMultipleMails(message.mails); <font></font></p>
<p> <font></font></p>
<p> process.send({ counter: countOfMailsSent });<font></font></p>
<p>});<font></font></p>
</td>
</tr>
</tbody>
</table>
<h3><strong>2.10便携性</strong></h3>
<p class="p">Java语言由计算机上的Java解释器解释,与操作系统无关。Java程序在Java虚拟机上作为字节代码执行。Java代码位于扩展名为.java的程序中</p>
<p class="p"><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109103247634-767646405.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Java可移植性</p>
<p class="p">HTML页面中将JavaScript用于客户端脚本,该脚本在浏览器上执行。基于Node.js的服务器端脚本由特定操作系统上的版本8(ECMAScript)JavaScript引擎执行。该代码写在扩展名为.js的文件中。</p>
<p>节点运行时</p>
<h3><strong>2.11类型</strong></h3>
<p><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109103143525-2038371771.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p class="p">Java是一种静态类型的语言。Java语言具有原始类型和对象类型。Java具有与自动装箱相关的功能,该功能可自动转换类型。的 java.lang.Object 类是所有的类的基类和Java如下命令的单根链条。</p>
<p>Java类型</p>
<p class="p">JavaScript是一种动态类型的语言。在编译期间,使用var<span style="font-family: Tahoma">关键字声明变量。在检查相等性或任何其他运算符时,将动态处理这些类型。</span></p>
<p>JavaScript类型</p>
<h3><strong>2.12库</strong></h3>
<p class="p">Java包有助于打包类。包范围是Java语言的另一个功能。Java归档文件有助于对类包进行分组,以用于执行和安装。</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109103033760-486755378.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Java档案</p>
<p class="p">JavaScript模块和软件包由node.js和客户端Web归档文件中的JavaScript文件组成。</p>
<p>JavaScript模块</p>
<h3><strong>2.13运行时错误</strong></h3>
<p class="p"><span style="font-family: Tahoma">在</span>Java中,运行时错误由编译器和解释器提供。</p>
<p class="p"><img src="https://img2018.cnblogs.com/i-beta/1899512/202001/1899512-20200109102954129-41284884.png"></p>
<p> </p>
<p> </p>
<p> </p>
<p>Java运行时错误</p>
<p class="p">JavaScript是一种动态类型的语言,因此可以处理任何类型的数据。空指针异常不会在JavaScript中发生。使用运行时(node.js)或在浏览器中运行代码时,会发生运行时错误。</p>
<p>JavaScript运行时错误</p>
<h3><strong>2.14文档</strong></h3>
<p class="p">Java具有支持注释的功能,可用于文档生成器。JavaScript还支持可用于文档生成的注释。</p>
<h3><strong>2.15移动与网络与桌面</strong></h3>
<p class="p">Java语言可用于移动,Web和桌面应用程序开发。Android支持Java。JavaScript用于在Android,IOS和其他移动操作系统中构建HTML5(网络)和混合移动应用程序。</p>
<h3><strong>2.16编程范例</strong></h3>
<p class="p">Java是一种面向对象的类和并发编程语言。Java当前支持版本8中的功能编程功能。JavaScript是一种多范例语言,支持面向对象,过程和功能范例。</p>
<h2><strong>3.结论</strong></h2>
<p class="p"><span style="font-family: Tahoma">总体而言,</span>Java比JavaScript具有很多优势。下面的比较表捕获了Java和JavaScript之间的差异。</p>
<p class="p"><strong><span style="font-family: Tahoma">比较表</span></strong></p>
<table border="0" cellspacing="2">
<tbody>
<tr>
<td valign="top" width="54">
<p><strong>特征</strong></p>
</td>
<td valign="top" width="282">
<p><strong>java</strong></p>
</td>
<td valign="top" width="317">
<p><strong>JavaScript</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>内存管理</p>
</td>
<td valign="top" width="282">
<p>垃圾收集是<span style="font-family: Arial">Java</span><span style="font-family: 宋体">中的一项功能。</span><span style="font-family: Arial">Java</span><span style="font-family: 宋体">中没有指针。</span><span style="font-family: Arial">Java</span><span style="font-family: 宋体">程序消耗更多内存</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">需要更少的内存。它在网页中广泛使用</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>遗产</p>
</td>
<td valign="top" width="282">
<p>接口可用于多重继承。<span style="font-family: Arial">Java</span><span style="font-family: 宋体">支持单继承。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">使用</span><span style="font-family: Arial">InheritsMultipleObjects</span><span style="font-family: 宋体">函数支持多重继承</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>线程数</p>
</td>
<td valign="top" width="282">
<p>Java<span style="font-family: 宋体">具有</span><span style="font-family: Arial">Thread</span><span style="font-family: 宋体">类和</span><span style="font-family: Arial">Runnable</span><span style="font-family: 宋体">接口以使用线程。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">(</span><span style="font-family: Arial">Node.js</span><span style="font-family: 宋体">)是一种单线程语言,可派生一个线程以异步运行多个线程。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>可移植性</p>
</td>
<td valign="top" width="282">
<p>Java<span style="font-family: 宋体">字节码取决于平台。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">是与平台无关的。运行时(节点运行时)取决于平台。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>访问控制</p>
</td>
<td valign="top" width="282">
<p>封装有助于对<span style="font-family: Arial">Java</span><span style="font-family: 宋体">中的类变量和属性进行访问控制。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">具有对象属性以提供对变量的访问控制。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>种类</p>
</td>
<td valign="top" width="282">
<p>Java<span style="font-family: 宋体">中使用单个命令模式根链。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">是一种弱类型语言。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>图书馆</p>
</td>
<td valign="top" width="282">
<p>Java<span style="font-family: 宋体">归档文件用于构建</span><span style="font-family: Arial">Java</span><span style="font-family: 宋体">库。</span></p>
</td>
<td valign="top" width="317">
<p>JavaScript<span style="font-family: 宋体">(</span><span style="font-family: Arial">Node.js</span><span style="font-family: 宋体">)具有模块和包。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>运行时错误</p>
</td>
<td valign="top" width="282">
<p>在<span style="font-family: Arial">Java</span><span style="font-family: 宋体">的编译和执行阶段检测到运行时错误</span></p>
</td>
<td valign="top" width="317">
<p>在执行阶段会检测到<span style="font-family: Arial">JavaScript</span><span style="font-family: 宋体">运行时错误。</span></p>
</td>
</tr>
<tr>
<td valign="top" width="54">
<p>性能</p>
</td>
<td valign="top" width="282">
<p>与<span style="font-family: Arial">JavaScript</span><span style="font-family: 宋体">相比,</span><span style="font-family: Arial">Java</span><span style="font-family: 宋体">性能要慢一些。</span></p>
</td>
<td valign="top" width="317">
<p>与<span style="font-family: Arial">Java</span><span style="font-family: 宋体">相比,</span><span style="font-family: Arial">JavaScript</span><span style="font-family: 宋体">性能更快,因为解释器自己运行</span><span style="font-family: Arial">JavaScript</span><span style="font-family: 宋体">代码。</span></p>
</td>
</tr>
</tbody>
</table>
<p>总结</p>
<p>文章写道这里,欢迎补充评论!另外近期整理了一套完整的java架构思维导图心得,分享给大家对照所属知识点参照学习。</p>
<p><img src="https://img2018.cnblogs.com/common/1899512/202001/1899512-20200109103817936-1374091982.jpg"></p><br><br>
来源:https://www.cnblogs.com/youruike1/p/12170120.html
頁:
[1]