Java 起源

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: Java 是由美国 Sun Microsystems 公司(现为 Oracle 公司子公司)的詹姆斯·高斯林(James Gosling)等人于1995年开发的一门编程语言。当时,Sun 公司希望开发一种支持跨平台、具有移植性的语言,可以适用于各种计算机硬件和操作系统。于是,詹姆斯·高斯林领导的研发团队开发了 Java 语言,它既可以在 Windows、Linux 和 MacOS 等桌面操作系统上运行,也可以在服务器端和嵌入式系统上运行,具备非常好的跨平台能力,并且易于开发和维护。

Java 起源

一,介绍

Java 是由美国 Sun Microsystems 公司(现为 Oracle 公司子公司)的詹姆斯·高斯林(James Gosling)等人于1995年开发的一门编程语言。

当时,Sun 公司希望开发一种支持跨平台、具有移植性的语言,可以适用于各种计算机硬件和操作系统。于是,詹姆斯·高斯林领导的研发团队开发了 Java 语言,它既可以在 Windows、Linux 和 MacOS 等桌面操作系统上运行,也可以在服务器端和嵌入式系统上运行,具备非常好的跨平台能力,并且易于开发和维护。

Java 最初被称为 Oak(橡树),这是因为在 Sun 公司研发 Java 语言的时候,他们正好看到了窗外的一棵橡树,于是就决定以 Oak 作为 Java 的代号。但是后来发现 Oak 是另一家计算机公司已注册的商标,因此 Sun 公司只好将其改名为 Java。

Java 语言从诞生之初就备受瞩目,它采用了面向对象、垃圾回收等先进的编程思想和技术,在业界广泛应用,成为了当时最流行的编程语言之一。随着互联网的快速发展,Java 语言也逐渐成为了 Web 开发和服务器端开发的主流技术,例如 Java Servlet、JSP、Struts、Spring 等框架和技术逐渐成熟,使得 Java 在企业级应用开发中发挥了重要作用。而今天,Java 仍然是全球最广泛使用的编程语言之一,其应用范围涵盖了各个领域,例如移动应用程序、游戏、嵌入式设备、大数据处理、机器学习等各种应用场景。

二,Java 发展史

Java 的发展史可分为以下几个阶段:

  1. Java 1.0(1996年):Java 1.0 是最早发布的 Java 版本,引入了基本的语言特性和类库,包括面向对象编程、垃圾回收机制等。

  2. Java 2(1998年):Java 2(也称为 Java 1.2)是一个重要的版本,引入了许多新特性和改进,如内部类、反射、集合框架、Swing 图形界面库等。

  3. Java 5(2004年):Java 5(也称为 Java 1.5)是一个里程碑版本,引入了许多重要的语言特性,如泛型、自动装箱/拆箱、枚举、可变参数等。此外,还引入了重要的库改进,如并发库 (java.util.concurrent) 和增强的 for-each 循环。

  4. Java 6(2006年):Java 6 引入了一些小的改进和优化,如脚本语言支持、JDBC 4.0(Java 数据库连接)等。此版本在性能、稳定性和安全性上有所提升。

  5. Java 7(2011年):Java 7 引入了一些新特性,如字符串对象在 switch 语句中的支持、try-with-resources 语句、钻石操作符(菱形操作符)等。此外,还有一些库的改进,如 Fork/Join 框架、NIO.2(新的 I/O API)、ConcurrentLinkedDeque 等。

  6. Java 8(2014年):Java 8 是一个重要版本,引入了函数式编程的特性,包括Lambda 表达式和函数式接口。此外,还引入了新的日期和时间 API、Stream API(流式操作集合数据)等。

  7. Java 9(2017年):Java 9 引入了模块化系统,通过模块化可以更好地组织和管理代码。此外,还包括一些小的语言和库改进,如 REPL(交互式编程环境)、新的 HTTP 客户端 API、改进的 Javadoc 等。

  8. Java 10(2018年):Java 10 引入了局部变量类型推断,通过 var 关键字可以在声明变量时省略类型。此外,还包括一些小的改进和优化。

  9. Java 11(2018年):Java 11 是 Oracle 公司推出的首个长期支持(LTS)版本,它在性能、安全性和稳定性方面进行了许多改进。此外,还移除了一些过时的 API,引入了新的 HTTP 客户端、嵌套的访问控制、Unix 域套接字等功能。

从 Java 11 开始,Oracle 公司决定每六个月发布一个新的 Java 主版本,这意味着用户可以更快地获得新特性和改进。同时,每三年发布的一个主版本将成为长期支持(LTS)版本,提供更长时间的支持和更新。

Java 的发展一直在不断演进,不仅语言本身有所改进,还有许多重要的库和框架的发展,使得 Java 在各个领域都有广泛的应用。

三,Java 所普及的领域

Java 是一种广泛应用于各个领域的编程语言,以下是 Java 常见的领域:

  1. 企业级应用开发:由于 Java 具有良好的跨平台性和可移植性,因此被广泛应用于企业级应用开发,如电子商务、ERP、CRM 等。

  2. 移动开发:Java 也是移动应用程序开发的主要编程语言之一。Android 平台采用 Java 作为其主要开发语言。

  3. Web 开发:Java 在 Web 开发领域具有强大的地位,Java 技术可用于构建 Web 应用程序,其中包括 Java Server Pages (JSP)、Servlets、Spring 框架等。

  4. 大数据处理:Java 技术也在大数据处理领域得到了广泛应用,包括 Apache Hadoop 生态系统、Apache Spark 等。

  5. 游戏开发:Java 技术还可用于游戏开发,其中一些游戏框架如 LibGDX、jMonkeyEngine 等,都是采用 Java 编写的。

  6. 人工智能和机器学习:Java 技术还广泛应用于人工智能和机器学习领域,尤其在开发大规模机器学习应用程序时特别有帮助。

总之,Java 是一门非常通用的编程语言,广泛应用于各种领域,包括企业级应用、移动应用、Web 开发、大数据处理、游戏开发、人工智能和机器学习等。

四,用Java开发的游戏有哪些

Java 在游戏开发领域也有一些知名的游戏,以下是其中一些例子:

  1. Minecraft(我的世界):Minecraft 是一款全球知名的沙盒建造游戏,由瑞典开发者 Markus Persson 使用 Java 编写。这款游戏在全球范围内都享有极高的人气和影响力。

  2. RuneScape(传奇):RuneScape 是一款长寿的 MMORPG(大型多人在线角色扮演游戏),由英国的 Jagex 公司开发。游戏使用 Java 技术,并在全球拥有大量的玩家。

  3. Spiral Knights(螺旋骑士):Spiral Knights 是一款由美国的 Three Rings Design 公司开发的动作冒险游戏,游戏采用 Java 技术编写。

  4. Puzzle Pirates(盗贼神谭):Puzzle Pirates 是一款由 Three Rings Design 公司开发的在线海盗游戏,采用 Java 技术开发。

  5. Minecraft: Dungeons(我的世界:地牢):这是 Minecraft 系列的衍生作品,是一款探险类游戏,由 Mojang Studios 开发,同样采用 Java 技术。

  6. Wurm Online(沃姆在线):Wurm Online 是一款由瑞典的 Code Club AB 公司开发的沙盒类游戏,采用 Java 技术。

这只是一小部分使用 Java 开发的知名游戏示例,Java 在游戏开发领域还有许多其他优秀的作品。这些游戏证明了 Java 在实现复杂逻辑、图形渲染和网络通信方面的强大能力。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
自然语言处理 Java 程序员
编程小趣文:Python与Java名字的起源由来
编程小趣文:Python与Java名字的起源由来
134 1
|
Java C#
Java名称的历史起源
Java名称的历史起源
97 0
|
11天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
13天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
13天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
13天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
37 3
|
13天前
|
存储 安全 Java
Java多线程编程秘籍:各种方案一网打尽,不要错过!
Java 中实现多线程的方式主要有四种:继承 Thread 类、实现 Runnable 接口、实现 Callable 接口和使用线程池。每种方式各有优缺点,适用于不同的场景。继承 Thread 类最简单,实现 Runnable 接口更灵活,Callable 接口支持返回结果,线程池则便于管理和复用线程。实际应用中可根据需求选择合适的方式。此外,还介绍了多线程相关的常见面试问题及答案,涵盖线程概念、线程安全、线程池等知识点。
93 2
|
21天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
46 6
|
2月前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
1月前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####