当前位置: 首页 > backend >正文

2025.4.17学习日记 初识JavaScript 以及Java和JavaScript有什么区别

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()弹出框:

缺点:阻塞代码运行

console.log()控制台输出:

http://www.xdnf.cn/news/74.html

相关文章:

  • 什么是分布式锁?
  • Linux: 生产者消费者模型
  • 从零开始学A2A四:A2A 协议的安全性与多模态支持
  • 多个路由器互通(静态路由)无单臂路由(简单版)
  • STM32 时钟树
  • TCP连接建立:为什么是三次握手?
  • 正则表达式在爬虫中的应用:匹配 HTML 和 JSON 的技巧
  • 操作教程|通过DataEase制作MaxKB系统数据大屏
  • QML之Overlay
  • R4打卡——pytorch实现LSTM预测火灾
  • 《vue3学习手记4》
  • openai发布今天发布了o3和o4-mini。
  • Vue 3 reactive 和 ref 区别及 失去响应性问题
  • 大数据常见的模型定义及应用场景建议╮(╯▽╰)╭
  • 深入理解常见排序算法:从原理到实践
  • 视频剪辑入门
  • 深入了解v-model的原理:v-model拆分为value属性和input事件,表单类组件的封装并用v-model简化代码
  • 是德科技E5080B网络分析仪深度评测:5G/车载雷达测试实战指南
  • 零基础上手Python数据分析 (16):DataFrame 常用统计分析方法
  • 【2025“华中杯”大学生数学建模挑战赛】C题:就业状态分析与预测 详细解题思路
  • ffmpeg 添加 nvenc支持
  • Layout 路由
  • 202520读书笔记|《我要按自己喜欢的方式去生活》——面对可能到来的裁员,那就等正式通知吧
  • SAP系统青果糖无法报工
  • 前沿要塞:Vue组件安全工程的防御体系重构与技术突围
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
  • 第十六届蓝桥杯大赛软件赛省赛 C++ 大学 B 组 部分题解
  • 解锁智能制造:PLC远程下载如何让设备运维效率提升10倍?
  • 【APM】Build an environment for Traces, Metrics and Logs of App by OpenTelemetry
  • Python网络爬虫设计(二)