Java 和 JavaScript 虽然名字相似,但实际上是两种不同的编程语言。
1. 语言背景和设计目的
- Java:由 Sun Microsystems(现被 Oracle 收购)在 1995 年推出。设计初衷是为了实现 “一次编写,到处运行(Write Once, Run Anywhere)”,用于开发跨平台的企业级应用、大型系统、安卓应用等。
- JavaScript:由 Netscape 公司的 Brendan Eich 在 1995 年开发,最初的目的是为网页添加交互性,使网页不再是静态的信息展示。现在也广泛用于服务器端开发(Node.js)、桌面应用开发等。
2. 语法特点
- 类型系统
- Java:是强类型语言,变量在声明时必须指定类型,且在编译时会进行严格的类型检查。例如:
int num = 10;
- JavaScript:是弱类型语言,变量的类型由其值决定,在运行时才确定类型。例如:
let num = 10;
num = "Hello";
- 面向对象
- Java:是纯粹的面向对象编程语言,所有代码都必须写在类中,通过类和对象来组织代码。例如:
class Person {private String name;public Person(String name) {this.name = name;}public String getName() {return name;}
}
- JavaScript:是基于原型的面向对象语言,没有传统的类的概念,通过原型链来实现继承。不过 ES6 引入了
class
关键字,但本质上还是基于原型的。例如:
class Person {constructor(name) {this.name = name;}getName() {return this.name;}
}
}
3. 运行环境
- Java:需要 Java 虚拟机(JVM)来运行,Java 代码首先被编译成字节码(.class 文件),然后由 JVM 解释执行。可以在不同的操作系统上安装相应的 JVM 来运行 Java 程序,具有良好的跨平台性。
- JavaScript:最初是在浏览器中运行,现代浏览器都内置了 JavaScript 引擎(如 Chrome 的 V8 引擎)来解释执行 JavaScript 代码。此外,借助 Node.js,JavaScript 也可以在服务器端运行。
4. 应用场景
- Java:
- 企业级应用开发:如电商系统、金融系统等,因为 Java 的稳定性和安全性较高。
- 安卓应用开发:虽然现在有 Kotlin 等新语言,但 Java 仍然是安卓开发的重要语言之一。
- 大数据处理:如 Hadoop、Spark 等大数据框架都支持 Java 开发。
- JavaScript:
- 前端开发:是前端开发的核心语言,用于实现网页的交互效果、动态内容展示等。
- 服务器端开发:使用 Node.js 可以构建高性能的服务器端应用,如实时聊天系统、API 服务器等。
- 桌面应用开发:借助 Electron 等框架,可以使用 JavaScript 开发跨平台的桌面应用,如 VS Code。
5. 性能表现
- Java:由于 Java 是编译型语言,代码在运行前会被编译成字节码,然后由 JVM 进行优化和执行,因此在处理大规模数据和复杂计算时性能较好。
- JavaScript:是解释型语言,代码在运行时逐行解释执行,性能相对较低。不过现代 JavaScript 引擎(如 V8)进行了大量的优化,性能有了很大提升。
下面为我的课堂笔记:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body></body><script> //js一般写在body后面 因为加载顺序问题 js语言代码和java语言代码类似//注释方式:// /* *///数值:number (包括浮点和整数),NAN(表示不是数字 not a number)//字符串引用 "" ''//布尔:true false//数组:1.定义var arr = [1,3.14,true,null,undefined];var arr1 = new Array(1,3.14,true,null,undefined);// 2.获取 数组下表超过了最大值输出为undefinedconsole.log(arr[2]);// 3.存储类型// 4.长度可变arr[5]=666; //修改arr.join;//流程控制:for/if/switch/while和java一致// for(var index = 10;index < 200; index++){// document.write("<hr width = "+index+">")// }//方法:1.定义 var 方法名 = function(形参){}// 方法名 function(形参){}// 2.形参不需要定义类型// 3.不需要定义返回值类型// 4.使用,参数列表不惜要一致// var f1 = function(param1,param2){// var c = param1 + param2;// return c;// }// var result = f1(5,6);// alert("方法"+result);//面向对象: var obj = {};obj.name = "张三";obj.photo = "../VS files/29d8fac3-3d85-471b-8764-b8f0ac78283d.png";obj.weight = 20;obj.action = function(){alert("这是个方法");}var stus = "[{name:'张三',age:25},{name:'李四',age:30}]";var s = JSON.parse(stus); //用JSON.来转换回浏览器console.log(s);// var(表示通用数据类型) let(局部变量) const(常量)// var a = 3;// var b = 3.14;// var c = null;// var d = "hello world";// var e = true;// alert("a="+a); //弹出框 缺点:阻塞代码运行// console.log("b="+b);// var t1 = 1/3;// var t2 = 1 - 2/3;// alert(t1 === t2);//两个等号判断值,三个等号判断位置 值为不相等,分数转换为数字会丢失产生误差;</script>
</html>
alert()弹出框:
缺点:阻塞代码运行