首页 > 编程语言 >javaScript 和 Java 的语法区别(有前端基础)

javaScript 和 Java 的语法区别(有前端基础)

时间:2024-11-02 18:17:44浏览次数:3  
标签:console name 示例 javaScript JS 语法 Java log

目录

一、语法风格

1.变量声明

2.代码块

3.分号

二、面向对象编程

1. 类和对象的定义

2. 方法和属性的访问修饰符

3. 继承方式

 三、数据类型和类型转换

1.数据类型

 2. 类型转换

四、异常处理

1. 语法结构

2. 异常类型

五、开发工具和生态系统

1.开发工具

2.运行环境


各位前端小伙伴工作中应该能经常看到后端同学的代码,虽然语法有一定的区别,但代码逻辑和思路让我们也能看懂一部分后端代码。如果对Java有兴趣的话,可以看看以下对两者区别的介绍,让你在和后端沟通中更为顺畅。

一、语法风格

1.变量声明

        JS: 

                使用varletconst声明变量。其中,var存在变量提升的现象,而letconst不存在变量提升,并且const声明的变量不能被重新赋值.

                示例:

       var x = 10;
       console.log(x); // 10
       console.log(y); // undefined
       var y = 20;

       let a = 30;
       const b = 40;

        Java:

                 必须明确指定变量的类型,如int num;String str;等。在 Java 中没有变量提升的概念。

                示例:

       int num;
       num = 10;

2.代码块

         JS:

                使用大括号{}来定义代码块,例如函数体、条件语句、循环语句等。

                示例:

       if (true) {
         console.log('This is inside the if block.');
       }

         Java: 

                同样使用大括号来定义代码块,但 Java 的代码块结构更加严谨,例如在类、方法、循环等结构中,代码块的作用范围和规则更加明确。

                示例:

       if (true) {
         System.out.println("This is inside the if block.");
       }

3.分号

        JS:

                 分号是可选的(可写可不写,不影响程序执行),但为了避免一些潜在的错误,通常建议加上分号。

                示例:

       let x = 10
       let y = 20;
       console.log(x + y)

         Java: 

                分号是必须的,用于结束一条语句。

                示例:

       int num = 10;
       System.out.println(num);

二、面向对象编程

1. 类和对象的定义

        JS:

                在 ES6 中引入了类的概念,但本质上是基于原型的面向对象编程。可以使用class关键字定义类,通过构造函数和原型链来实现继承。

                示例:

       class Person {
         constructor(name) {
           this.name = name;
         }
         sayHello() {
           console.log(`Hello, my name is ${this.name}.`);
         }
       }
       let person = new Person('John');
       person.sayHello();

        Java: 

                 是纯粹的面向对象编程语言,使用class关键字定义类,通过类的继承和接口实现多态性。Java 的面向对象编程更加严格和规范。

                示例:

       class Person {
         private String name;
         public Person(String name) {
           this.name = name;
         }
         public void sayHello() {
           System.out.println("Hello, my name is " + this.name + ".");
         }
       }
       Person person = new Person("John");
       person.sayHello();

2. 方法和属性的访问修饰符

         JS: 

                没有像 Java 那样严格的访问修饰符。虽然可以通过一些约定来模拟私有属性和方法,但并不是真正的访问限制。

                示例:

       class Person {
         constructor(name) {
           this._name = name; // 约定以 _ 开头的为私有属性
         }
         get name() {
           return this._name;
         }
         set name(newName) {
           this._name = newName;
         }
       }
       let person = new Person('John');
       console.log(person.name);
       person.name = 'Mike';
       console.log(person.name);

        Java: 

                 有publicprivateprotected等访问修饰符,可以严格控制类的成员的访问权限。

                示例:

       class Person {
         private String name;
         public Person(String name) {
           this.name = name;
         }
         public String getName() {
           return name;
         }
         public void setName(String newName) {
           this.name = newName;
         }
       }
       Person person = new Person("John");
       System.out.println(person.getName());
       person.setName("Mike");
       System.out.println(person.getName());

3. 继承方式

        JS:  

                主要通过原型链和构造函数的方式实现继承,相对比较灵活。

                示例:

       class Animal {
         constructor(name) {
           this.name = name;
         }
         makeSound() {
           console.log('Animal makes a sound.');
         }
       }
       class Dog extends Animal {
         constructor(name) {
           super(name);
         }
         makeSound() {
           console.log('Woof!');
         }
       }
       let dog = new Dog('Buddy');
       dog.makeSound();

        Java

                支持单继承和多实现,继承关系更加明确和严格 。

                示例:

       class Animal {
         public void makeSound() {
           System.out.println("Animal makes a sound.");
         }
       }
       class Dog extends Animal {
         @Override
         public void makeSound() {
           System.out.println("Woof!");
         }
       }
       Dog dog = new Dog();
       dog.makeSound();

 三、数据类型和类型转换

1.数据类型

        JS

                是一种弱类型语言,变量的数据类型可以动态改变。有基本数据类型(如numberstringbooleannullundefined等)和引用数据类型(如对象、数组等)。

                示例:

       let x = 10;
       x = 'Hello';
       x = true;

        Java

                是一种强类型语言,变量在声明时必须指定数据类型,并且不能随意改变。Java 有基本数据类型(如intdoublechar等)和引用数据类型(如类、接口、数组等) 。

                示例:

       int num = 10;
       // num = "Hello"; // 编译错误,不能将字符串赋值给整型变量

 2. 类型转换

        JS

                自动类型转换比较灵活,可能会在一些情况下自动进行类型转换,这可能会导致一些意想不到的结果。例如,"1" + 2的结果是"12",而不是3。

                示例:

       console.log("1" + 2); // "12"
       console.log(1 + "2"); // "12"
       console.log(true + 1); // 2

        Java

                类型转换相对比较严格,需要显式地进行类型转换,否则会编译错误。例如,将int类型转换为double类型需要使用强制类型转换符(double)。

                示例:

       int num1 = 10;
       double num2 = num1; // 自动类型转换,int 转换为 double
       int num3 = (int) 10.5; // 强制类型转换,double 转换为 int

四、异常处理

1. 语法结构

        JS

                使用try...catch...finally语句来处理异常。可以捕获同步代码中的异常,但对于异步代码中的异常处理相对比较复杂,需要使用promiseasync/await等方式来处理。

                示例:

       try {
         // 可能抛出异常的代码
         let result = 10 / 0;
       } catch (error) {
         console.log('An error occurred: ' + error.message);
       } finally {
         console.log('Finally block executed.');
       }

         Java

                同样使用try...catch...finally语句来处理异常。Java 的异常处理机制更加完善,可以捕获各种类型的异常,包括编译时异常和运行时异常。

                示例:

       try {
         // 可能抛出异常的代码
         int result = 10 / 0;
       } catch (ArithmeticException e) {
         System.out.println("An error occurred: " + e.getMessage());
       } finally {
         System.out.println("Finally block executed.");
       }

2. 异常类型

         JS

                有一些内置的异常类型,如ErrorTypeErrorReferenceError等,但也可以自定义异常。

                示例:

       function divide(a, b) {
         if (b === 0) {
           throw new Error('Division by zero is not allowed.');
         }
         return a / b;
       }
       try {
         let result = divide(10, 0);
       } catch (error) {
         console.log(error.message);
       }

         Java

                有丰富的内置异常类型,如IOExceptionSQLExceptionNullPointerException等,并且可以自定义异常类来满足特定的需求。

                示例:

       class CustomException extends Exception {
         public CustomException(String message) {
           super(message);
         }
       }
       public class Main {
         public static void main(String[] args) {
           try {
             throw new CustomException("This is a custom exception.");
           } catch (CustomException e) {
             System.out.println(e.getMessage());
           }
         }
       }

五、开发工具和生态系统

1.开发工具

        JS:前端开发主要使用文本编辑器(如 Visual Studio Code、Sublime Text 等)和浏览器开发者工具进行调试。也有一些专门的前端框架和工具,如 React、Vue、Angular 等,以及包管理工具 npm 和 yarn。

        Java:通常使用集成开发环境(如 IntelliJ IDEA、Eclipse 等)进行开发,这些 IDE 提供了强大的代码编辑、调试、构建和项目管理功能。Java 也有丰富的开发框架和库,如 Spring、MyBatis 等,以及包管理工具 Maven 和 Gradle。

2.运行环境

        JS:主要在浏览器和 Node.js 环境中运行。浏览器提供了 DOM 和 BOM 等 API,用于网页开发;Node.js 是一个基于 Chrome V8 引擎的服务器端 JavaScript 运行环境,可以进行服务器端开发。

        Java:可以在各种平台上运行,包括服务器、桌面应用、移动设备等。Java 虚拟机(JVM)提供了跨平台的运行环境,使得 Java 程序可以在不同的操作系统上运行。

         

标签:console,name,示例,javaScript,JS,语法,Java,log
From: https://blog.csdn.net/jxnd123456/article/details/143436759

相关文章

  • JavaScript。—关于语法基础的理解—
    一、程序控制语句JavaScript提供了if、if else 和 switch 3种条件语句,条件语句也可以嵌套。(一)、条件语句1、单向判断: if...(1)概述<if>元素用于在判断该语句是否满足特定条件。如果条件不成立,<if>元素内的语句不会被执行。(2)语法格式if(条件){......
  • Java 虚拟线程:高并发编程的新纪元(Java 21)
    Java虚拟线程:高并发编程的新纪元前言在现代软件开发中,高并发编程一直是一个具有挑战性的问题。传统的线程模型虽然强大,但在高并发场景下会引发性能瓶颈和资源耗尽等问题。为了应对这些挑战,Java引入了虚拟线程(VirtualThreads),它为高并发编程带来了全新的解决方案。虚拟......
  • Java 继承机制的笔记 1
    Java继承机制的笔记_1笔记的来源:CS61B-2024春季的课程课程主要内容:数据结构与算法分析课程运用语言:Java这个课有6个Homework,10个Lab,9个Project。其中第一个project是一个完整的2024游戏的实现,很有意思。此文章对应的是课程8-9节的内容。由于内容较多......
  • java.数据流.study
         (紧接输出流代码,需要与输入流代码中类型对应)  对象字节输入流与对象字节输出流:     可以使用transient可以实现变量不会序列化:  ......
  • java.IO打印流.study
            ......
  • java.IO转换流.study
            ......
  • Java.IO流.study
       IO流的体系结构: FileInputStream(文件字节输入流): 方法:   文件字节输入流(一次读取多个数据):   注意事项:  使用文件字节输入流一次读取完文件的全部字节。    文件字节输出流:     ......
  • java.file文件与IO流.study
     但断电后后数据消失。 而IO流就是对数据进行读写File创建对象: 绝对路径与相对路径:  File提供的判断文件类型,获取文件信息功能:   File创建和删除文件相关方法:   File遍历文件夹的方法:  代码实现: 文件搜索,实现遍历文件夹下的多级目录:......
  • Java中“=”克隆理解
    在Java中,对于基本类型可以使用“="来进行克隆,此时两个变量除了相等是没有任何关系的。而对于引用类型却不能简单地使用”=“进行克隆,这与java的内存空间使用有关。Java将内存空间分成两块,即栈和堆。在栈中保存基本类型和引用变量;在堆中保存对象。对于引用变量而言,使用”=“......
  • Java面向对象简述
    Java是一门面向对象的编程语言,那么我们要先了解什么是面向对象。编程语言分为:面向机器语言(例如汇编语言),面向过程语言(例如c语言),以及面向对象语言。而面向对象编程主要体现在:封装性,继承性和多态性。封装性:将数据和对数据的操作封装在一起,通过抽象,形成一般概念(类)。举例而言,公......