Java、Javascript、Javaweb三者的区别-程序员宅基地

技术标签: java  java se  java web  javascript  

首先,我们来说一下java 与 javaweb之间的关系 :
我们平常说的Java一般指Java SE,也就是Java Standard Edition,Java的标准版,一般用来开发桌面应用程序,但是在开发桌面应用程序上相对VB,Delphi,VC++并没有什么优势。
JavaWeb则到了Java EE领域了,也就是Java Enterprise Edition,Java的企业版,看那个web就应该想到是与Internet有关的,其实开发JavaWeb应用程序,初级的一般是用JSP(Java Server Pages)+servlet+Javabean来开发的,对大型的网站一般是使用框架来开发的,例如struts,hibernate,spring,例如校内,你在登陆的时候会在地址栏看见Login.do,登陆以后会看见Home.do这样的请求,典型的struts框架结构。
Java还有一个版本是JavaME,Java Micro Edition,Java的微型版,诺基亚手机上运行的Java程序就是指用这个版本开发的程序。

再者,我们来说一下Java与Javascript之间的关系:
一、什么是Javascript?
它是运行在浏览器中的一种脚本语言,在web页面中,Javascript可谓是无所不能:
1. 可以操作HTML,提供了一种运行时改变HTML的工具;
2. 可以附加并执行事件,符合面向事件编程的思想;
3. 数据验证功能,在提交表单时对表单数据进行合法性验证;
4. 对客户浏览器的操作,前进、后退、刷新、跳转、打开新窗口、打印等;
5. 可以创建并使用Cookies.

二、什么是Java?
Java是Sun公司推出的一种编程语言。它是一种通过解释方式来执行的语言,语法规则和C++类似。同时,Java也是一种跨平台的程序设计语言。用Java语言编写的程序叫做“Applet”(小应用程序),用编译器将它编译成类文件后,将它存在WWW页面中,并在HTML档上作好相应标记,用户端只要装上Java的客户软件就可以在网上直接运行“Applet”。

Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。Java摒弃了C++中各种弊大于利的功能和许多很少用到的功能。 Jave可以运行于任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。

三、Javascript名字的由来
JavaScript最早是被称为Mocha(魔卡)的,这是这个项目的代码名。这个名字一直用到Netscape2.0 beta 2发布之前(95.11.04)——包括在beta 1中弹出的错误框上,还可以看到Mocha的名字。不过,早在此前的9月18号,netscape就已经发布消息将在LiveWire中启用一种服务器端脚本(未提及名称)。又因为我们前面提到的“前后端通用脚本”的设计,该语言在beta 2发布时就使用了内部名称LiveScript。

但同样混乱的事情是,事实上这时Netscape已经决定将该语言命名为“JavaScript”。因此在beta 2的发布备忘中该语言称为JavaScript,而界面上却从Mocha改为了LiveScript。这一局面一直持续到12月4日,netscape与sun共同发布声明,正式启用了JavaScript这个名字。随后beta 4发布(95.12.20),界面和文档上就统一了。

所以事实上“LiveScript”这个名字可以考证的生命周期,也就只有一个月的时间(在95.11.04- 12.04)。但Mocha毕竟只是项目代码名,而非产品名,所以后来人们追溯JavaScript的历史,大多只提到LiveScript为止。

四、Java与Javascript的区别
1、javascript与Java是由不同的公司开发的不同产品。javascript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言;而Java是SUN Microsystems公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发。实际上,javascript最初的名字并不是javascript,而是LiveScript,名字中的“Java”是经过SUN Microsystems公司授权的。

2、javascript是基于对象的,它是一种脚本语言,是一种基于对象和事件驱动的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。而Java是面向对象的,即Java是一种真正的面向对象的语言,即使是开发简单的程序也必须设计对象。

3、javascript与Java嵌入方式不一样。在HTML文档中,两种编程语言的标识不同,javascript使用来标识,而Java使用Applet来标识。

4、javascript与Java在浏览器中所执行的方式不一样。javascript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户,即javascript语句本身随Web页面一起下载下来,由浏览器解释执行。而Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码。

5、javascript与Java代码格式不一样。javascript的代码是一种谋咀址格式,可以直接嵌入HTML文档中,并且可动态装载,编写HTML文档就像编辑文本文件一样方便,其独立文件的格式为X.js。java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中,其独立文件的格式为X.class。

6、javascript与Java所采取的变量是不一样的。javascript中的变量声明采用弱类型,即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。Java采用强类型变量检查,即所有变量在编译之前必须作声明。

7、javascript采用动态联编,即javascript的对象引用在运行时进行检查。Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。

8、javascript不直接对文本和图形进行操作,它在Web页面中与HTML元素组合一起发挥作用,但它可以控制浏览器,让浏览器直接对文本和图形进行处理。而Java则可以直接对文本和图形进行操作。


摘自百度:
首先,这两个家伙没有任何的血缘关系,java是由Sun 公司于1995年5月推出的,而javascript是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为JavaScript。
其次,这两个家伙的本质也不一样,java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,即使是开发简单的程序,也必须设计对象;而JavaScript是一种直译式脚本语言,它本身提供了非常丰富的内部对象供设计人员使用。
并且它们的执行方式也是不一样的,Java是介于解释型和编译型语言之间的一种语言,java的源代码在传递到客户端执行之前,必须经过编译,通过相应平台上的解释器,实现独立于某个特定的平台编译代码的束缚。JavaScript是一种解释性编程语言,其源代码在发往客户执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。
再其次两者的用途也不一样,java广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,而Javascript的用途是:1.嵌入动态文本于HTML页面;2.对浏览器事件做出响应; 3.读写HTML元素;4.在数据被提交到服务器之前验证数据;5.检测访客的浏览器信息; 6.控制cookies,包括创建和修改等。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38628915/article/details/74908446

智能推荐

CentOS在线和离线安装PostgreSQL-程序员宅基地

文章浏览阅读320次。postgresql在线安装很简单进入官网:https://www.posthttps://www.postgresql.org/gresql.org/如文档所示,在线安装步骤与命令:sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-..._pgdg-centos95-9.5-3.noarch.rpm

【PrimeTime 基本命令】_这个命令可以创建符合要求的library cell集合,可以将它传递给另一个命令-程序员宅基地

文章浏览阅读950次。https://www.micro-ip.com/drchip.php?mode=2&cid=17_这个命令可以创建符合要求的library cell集合,可以将它传递给另一个命令

ELasticsearch的安装以及与spring-data-elasticsearch的整合使用_lorg/elasticsearch/common/settings/settings;ljava/-程序员宅基地

文章浏览阅读3.1k次。#Elasticsearch安装这里本人使用的是docker镜像安装,至于怎么安装就不说了,贴一下配置最基本的配置文件就好#集群名称,默认为elasticsearch, 命名规则为 es-产品名-ES版本cluster.name: luckyqing#节点名称,es启动时会自动创建节点名称,但你也可进行配置node.name: es-46-68-76#设置索引的分片数#index..._lorg/elasticsearch/common/settings/settings;ljava/lang/string;)v

oracle 判断是否为小数,Oracle 判断是否为数字型(金额型)-程序员宅基地

文章浏览阅读5k次。在sql server,校验数据是否为数字型比较容易,有提供的方法可以使用:ISNUMERIC当是数字型,方法返回值为1;否则返回值为0例:select * from tablename where isnumeric(data) = 1在Oracle中没有这样的方法,要实现判断是否为数字型需要自己写一个方法来实现。但也可以用其它方法:方法一,用正则的方法:使用 regexp_like例:sele..._oracle判断是否是数字,包括小数

python中的event_Python event-程序员宅基地

文章浏览阅读591次。最新项目游戏感用于SteelSeries GameSense 3.8.x+的Python库安装这个包有两个不同的版本。一个支持普通的同步函数调用,另一个支持python的异步功能。要安装同步版本,请运 ...2021-03-02已阅读: n次此模块验证事件模块中的电话号码,就像base_phone合作伙伴表单中的模块有效电话号码。请参考有关详细信息,请参阅base_phone模块的说明。此模块独立..._python event

android 大前端,大前端 Android 开发日记 10:微信分享-程序员宅基地

文章浏览阅读87次。与之前的微博分享相比,微信分享就没有那么容易了——微信官方的 SDK 太差劲了。文章也写得像一坨屎——因为文档里的代码都是截图的。。。微信分享 SDK 接入按照官方的指南,添加对应的依赖dependencies{compile'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'}对应的权限:相关的混淆代码配置:-keepclas..._wxapifactory.createwxapi.sendreq

随便推点

LATEX(2)增大表格名称与表格间距_latex中表格名字和表格距离调整-程序员宅基地

文章浏览阅读2.6w次,点赞12次,收藏19次。LaTeX的表格环境是默认把表格名称放在表格底部的,如果我们把表格名称放置在表格开头就会发现名称与表格的距离十分接近,非常不好看,就像下图显示的一样: 但是我们如果习惯把表格名称放置在表头又该怎么办呢?下面给大家提供两种方法。 版本一:在文中使用命令”\caption”前添加增大间距的命令,具体如下:\begin{table}[H]\centering\setlength{\aboveca_latex中表格名字和表格距离调整

oracle行标识是什么,oraclerowid在表行中的物理标识-程序员宅基地

文章浏览阅读143次。欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 当然最常用的是用rowid去除重复: 查出重复数据: select a.rowid,a.* from 表名 a where a.rowid != ( select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 ) 删欢迎进入Oracle社区论坛..._oracle 中 每行 数据的 标记

CMPT1.ConfigMgr Prerequisites Tool简介-程序员宅基地

文章浏览阅读230次。ConfigMgr Prerequisites Tool 使用指南系列-1:ConfigMgr Prerequisites Tool简介Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk实战培训视频课程:https://edu.51cto.com/lectur..._configmgr tool

elasticsearch update 无结果_es updaterequest没有更新-程序员宅基地

文章浏览阅读2.8k次。 这个一直不能用:for id in data_front: res=es.update(index=index, doc_type=doc_type, id=id, body={"doc": {"flag":0}}) print(id,res) break {'total': 0, 'successful'..._es updaterequest没有更新

linux/module.h_module_firmware-程序员宅基地

文章浏览阅读741次。动态加载模块到内核中1、相关的结构体struct kernel_symbolstruct modversion_infostruct module_attributestructmodule_version_attributestruct module_kobjectstruct module// 模块结构体,将上面的变量放到结构体中,有的值进行了初始化2、加载、卸载、以及注册、注销等函数..._module_firmware

『Flutter开发实战』十分钟入门Dart语言_dart语言实战-程序员宅基地

文章浏览阅读441次。参考自:https://dart.cn/samplesDart 编程语言概览本文向你展示的 Dart 语言用法并不全面—这里只是对那些喜欢通过示例了解语言的人提供一个简单的介绍。你也许会对Dart 语言的速查表 CodeLab或 Dart 语言概览和库概览更感兴趣。语言概览包含示例的 Dart 语言全面概览。本文中大部分的阅读更多链接均会跳转到此概览中。库概览通过各种示例向你介绍 Dart 的核心库。通过此概览你可以了解更多关于内置类型、集合、日期时间、异步 Stream..._dart语言实战