LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Java 与 TypeScript 的核心对比

zhenglin
2025年11月5日 11:20 本文热度 177

Java 与 TypeScript 的核心对比

本文面向有 TypeScript 基础的开发者,通过实际代码示例,系统梳理 Java 与 TypeScript 在语法、结构、类型系统、运行方式等方面的主要差异。

内容聚焦于知识迁移和技术扩展,帮助你高效理解 Java 的开发模式和生态。


1. 语法与结构

Java 强调面向对象,所有代码都需写在类(class)中,包(package)声明与文件夹结构严格对应。

示例:


package org.example;

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("Hello, Java!");

    }

}

TypeScript 语法更灵活,可直接编写函数和变量,模块系统不依赖文件夹结构。

示例:


function helloWorld() {

    console.log("Hello, TypeScript!");

}

helloWorld();


2. 编译与运行方式

Java 代码需编译为字节码(.class),由 JVM 运行,main 方法为程序入口。

命令行示例:


javac HelloWorld.java

java org.example.HelloWorld

TypeScript 编译为 JavaScript,可直接在浏览器或 Node.js 运行,无固定入口。

命令行示例:

代码高亮:

tsc helloWorld.ts

node helloWorld.js


3. 类型系统

Java 是静态类型语言,类型检查严格,运行时类型不可变。

示例:


int num = 10;

num = "string"; // 编译错误

TypeScript 支持类型推断和断言,类型系统更灵活。

示例:


let num: number = 10;

num = "string"; // 编译错误

let anyValue: any = 10;

anyValue = "string"; // 允许


4. 访问修饰符

Java 提供 public、private、protected、包级等访问控制,成员默认包级可见。

示例:


public class Person {

    private String name;

    protected int age;

    String address; // 包级可见

    public void sayHello() {}

}

TypeScript 仅有 public、private、protected,成员默认 public。

示例:

代码高亮:

class Person {

    private name: string;

    protected age: number;

    public address: string;

    sayHello() {}

}


5. 异常处理

Java 强制异常处理(checked exception),需用 try-catch 或 throws 声明。

示例:


public void readFile() throws IOException {

    // ...

}

try {

    readFile();

} catch (IOException e) {

    e.printStackTrace();

}

TypeScript 仅有运行时异常,不强制处理。

示例:


function readFile() {

    throw new Error("IO error");

}

try {

    readFile();

} catch (e) {

    console.error(e);

}


6. 泛型与继承

Java 泛型为类型擦除,运行时不可用类型信息,仅支持单继承。

示例:

List<String> list = new ArrayList<>();

// 运行时无法获取泛型类型

class Animal {}

class Dog extends Animal {} // 单继承

TypeScript 泛型为编译期类型,支持多接口实现。

示例:

代码高亮:

function identity<T>(arg: T): T {

    return arg;

}

interface Animal {}

interface Pet {}

class Dog implements Animal, Pet {} // 多接口实现


7. 枚举

Java 枚举类型功能强大,可定义方法和属性。

示例:

enum Color {

    RED, GREEN, BLUE;

    public String hex() {

        switch(this) {

            case RED: return "#FF0000";

            case GREEN: return "#00FF00";

            case BLUE: return "#0000FF";

            default: return "#000000";

        }

    }

}

TypeScript 枚举仅为一组命名常量。

示例:


enum Color {

    Red = "#FF0000",

    Green = "#00FF00",

    Blue = "#0000FF"

}


8. 接口与抽象类

Java 接口可定义默认方法,抽象类可包含实现。

示例:


interface Animal {

    void speak();

    default void sleep() {

        System.out.println("Sleeping...");

    }

}

abstract class Pet {

    abstract void play();

    void feed() {

        System.out.println("Feeding...");

    }

}

TypeScript 接口只定义结构,抽象类可包含实现。

示例:

代码高亮:

interface Animal {

    speak(): void;

}

abstract class Pet {

    abstract play(): void;

    feed() {

        console.log("Feeding...");

    }

}


9. 注解与装饰器

Java 注解用于元数据和框架扩展。

示例:


@interface MyAnnotation {

    String value();

}

@MyAnnotation("test")

public class Demo {}

TypeScript 装饰器用于类、方法、属性的元编程。

示例:


function MyDecorator(target: Function) {

    // ...

}

@MyDecorator

class Demo {}


10. 并发与异步

Java 通过线程和并发库实现多线程。

示例:


class MyTask extends Thread {

    public void run() {

        System.out.println("Running in thread");

    }

}

new MyTask().start();

TypeScript 通过 Promise/async/await 实现异步。

示例:

代码高亮:

async function myTask() {

    await new Promise(resolve => setTimeout(resolve, 1000));

    console.log("Running async");

}

myTask();


11. 模块化与依赖管理

Java 使用 package/module 组织代码,依赖通过 Maven/Gradle 管理。 TypeScript 使用 ESModule/CommonJS,依赖通过 npm/yarn 管理。

12. 生态与应用场景

Java 主要用于后端服务、企业应用、Android 移动开发、大数据等。 TypeScript 主要用于前端开发、Node.js 服务、跨平台应用等。

13. 主流开发模式

Java 强调面向对象、设计模式、类型安全。 TypeScript 强调灵活性、类型推断、快速迭代。

14. 知识迁移与协同应用

本文聚焦于帮助 TypeScript 开发者理解 Java 的核心语法和特性,便于知识迁移和技术扩展。实际开发中,Java 和 TypeScript 常常协同应用,例如前端采用 TypeScript,后端采用 Java。通过对比学习,可以更高效地掌握 Java 的开发模式和生态,提升跨技术栈的开发能力。


参考文章:原文链接


该文章在 2025/11/5 11:20:25 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved