在javascript中:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合,都[不相等]。
二者区别在于:java文件是源程序,class文件是编译后的代码。
关于源程序
未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。
源程序可以是以书籍或磁带或其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。
将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”。
java文件就是这样一个未经编译的源程序,一般是给程序员看的。
编译程序
编译程序(Compiler,compiling program)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。
编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。
编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
class文件就是被编译器编译过的java文件,通常是给计算机看的。
扩展资料:
JAVA工作原理:
使用文字编辑软件或集成开发环境在Java源文件中定义不同的类 ;
通过调用类中的方法来访问资源系统;
把源文件编译生成一种二进制中间码,存储在class文件中;
然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
参考资料:
源程序-百度百科
编译程序-百度百科
.net和Java的区别:
1、在web开发方面,java比.net好,因为java比.net、php更加稳定、安全、开发效率高、功能更加强大。java 在web 应用方面 光java服务器就有好多(tomcat,jboss,weblogic,websphere),这些都可以运行java项目,而.net 只可以在微软的IIS服务器上运行局限性很大。
2、在单机软件开发方面,如果开发windows应用那还是.net 好一些,因为windows和.net都是微软的产品,所以在开发window应用方面.net更兼容一些。
3、在智能设备软件开发上,java更强,你该知道 android 智能手机,它的应用都是用java 开发的。
4、java简单强大,不需要一个一个自己编写,直接调用组件即可。
5、.net是微软的王牌,运行时,速度和Java基本不相上下,但是.net的开发速度很快,在.net中的线程很难控制.
6、性能上,中小级的运用,.net效率更高一些,浏览下载速度更快,但是百万级后不如java。
.NET是微软下一代的操作平台,它允许人们在其上构建各种应用方式,使人们尽可能通过简单的方式,多样化地、最大限度地从网站获取信息,解决网站之间的协同工作,并打破计算机、设备、网站、各大机构和工业界间的障碍--即所谓的“数字孤岛”,从而实现因特网的全部潜能,搭建起 第三代互联网平台。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。