Windows系统及Ubuntu系统安装Java

Java语言简介

Java是一种高级编程语言,Java语言的创始可以追溯到1990年代初,当时任职于Sun Microsystems(后来被甲骨文公司收购)的詹姆斯·高斯林(James Gosling)等人开始开发一种名为“Oak”(名字来源于詹姆斯·高斯林办公室前的一棵橡树)的编程语言。这一项目的初衷是设计一个可以在各种消费电子产品上运行的编程语言,以便更好地控制和通信。然而,随着互联网的兴起,他们意识到Oak在互联网上的应用前景,于是对Oak进行了改造,由于“Oak”已被其他公司注册,因此Sun公司不得不为这门新语言寻找一个新的名字。并最终于1995年5月以Java(Java的中文名叫“爪哇”,这个名字来源于盛产咖啡的爪哇岛。因此Java语言的Logo也被设计为一杯热气腾腾的咖啡)的名称正式发布。
Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行,接下来介绍下Java语言的几个关键概念:

  • JDK

Java Development Kit(JDK)是Java语言的软件开发工具包,主要用于开发Java应用程序。JDK主要由Java开发工具(JDT)、Java平台标准类库(Java ClassLibrary)和Java虚拟机(JVM)等部分组成。其中,JDT提供了Java开发所需的各种工具,如编译器、调试器、重构工具等;Java平台标准类库则提供了Java应用程序所需的类库和接口,包括输入输出、网络通信、多线程等功能;JVM则是Java运行环境的核心,负责执行Java字节码。JDK具有跨平台性、面向对象、安全性、多线程和丰富的API等特点,是Java开发的核心工具包。

  • JRE

Java Runtime Environment(JRE)是Java的运行环境,不是开发环境,所以不包括任何开发工具(如编译器和调试器)。JRE包括Java虚拟机(JVM)、运行时类库(runtime class libraries)和Java应用程序启动器(Javapplicationlancher),这些都是运行Java程序的必要组成部分。通过JRE,Java开发人员可以向用户发布他们开发的程序,供用户使用。JRE是Java程序运行的基础环境,只要安装了JRE,Java应用程序就可以正确运行。

  • JVM

Java Virtual Machine(JVM)是Java虚拟机的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

  • Java SE

Java SE(Java Standard Edition,Java标准版)是Java技术的核心和基础,由Sun Microsystems公司于1995年推出。Java SE是Java ME和Java EE编程的基础,提供了一个程序开发环境,包括开发与运行Java软件的编译器等开发工具、软件库及Java虚拟机。Java SE广泛应用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序,并为Java EE和Java ME提供了基础。

  • Java EE

Java EE(Java Platform, Enterprise Edition)是sun公司(现Oracle公司)推出的企业级应用程序版本,以前称为J2EE。Java EE是在Java SE的基础上构建的,提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web 3.0应用程序。Java EE提供了丰富的API和框架,如JDBC、EJB、Java RMI、JNDI、JMS等,用于开发、部署和管理企业级分布式系统、Web应用等。随着技术的发展,Java EE在2018年被更名为Jakarta EE,由开源组织Eclipse基金会管理。

  • Java ME
    Java ME(Java Platform, Micro Edition),是专为嵌入式消费电子设备优化的Java技术子集。它通过对Java技术的裁剪和优化,提供了适应资源受限设备(如移动电话、机顶盒等)的编程环境。Java ME具备资源限制优化、性能要求优化、API优化及工具支持等特点,尽管在移动设备领域的应用逐渐减少,但在特定嵌入式设备开发中仍发挥重要作用。

  • 长期支持版本
    长期支持的Java版本(LTS,Long-Term Support)是Java社区为开发者提供的具有长期维护和更新支持的Java版本,其中Java 8、Java 11和Java 17是关键的LTS版本。这些版本不仅引入了诸如Lambda表达式、Stream API、HTTP Client API、密封类、模式匹配等重要特性,还享受了长期的安全更新和关键补丁支持。Java 8的支持周期直到2025年,Java 11则至2026年,而Java 17作为当前最新的LTS版本,也将根据Oracle的官方政策获得至少三年的支持。选择LTS版本进行开发,有助于确保应用程序的稳定性和安全性,同时降低企业的维护成本。

总结来说,JDK是Java开发工具包,JRE是Java运行环境,JVM是Java虚拟机,Java SE是Java标准版,Java EE是Java企业级版本。这些组成部分共同构成了Java技术的生态系统,支持Java应用程序的开发、部署和运行。

Windows系统安装Java

直接进入官网,直接点击.msi文件的下载链接即可,在安装时勾选上自动添加环境变量
JDK17 .msi文件下载链接:JDK17 Download
JDK官方下载地址:JDK Download
在这里插入图片描述
安装完成后在cmd中输入命令即可查看是否安装成功:

java --version

Ubuntu系统安装Java

在Ubuntu系统中,安装JDK更为方便,先输入命令使系统连接到配置的软件源(repositories),下载并更新这些源中最新可用的软件包列表。随后更新的软件包列表,检查系统中已安装的软件包是否有新版本可用。如果有,它会下载并安装这些新版本,同时处理任何必要的依赖关系变化。

sudo apt update

随后更新的软件包列表,检查系统中已安装的软件包是否有新版本可用。如果有的话会下载并安装这些新版本,同时处理任何必要的依赖关系变化。

sudo apt upgrade

接下来安装OpenJDK,这里我安装的java17:

sudo apt install openjdk-17-jdk

安装完成后输入命令查看是否安装成功:

java --version

在这里插入图片描述

运行一段测试代码

这里先介绍下常见的Java开发工具(IDE),在选择Java IDE时,开发者需要考虑多个因素,包括个人偏好、项目需求、团队协作等。不同的IDE在用户界面设计、插件生态系统、社区支持等方面各有千秋,因此选择适合自己的IDE:

  1. IntelliJ IDEA

    • 由JetBrains开发,以其智能的代码辅助、强大的重构功能和与Git等版本控制系统的无缝集成而闻名。
    • 支持多种编程语言和框架,特别适合Java开发者使用,能够极大提高开发效率。
    • 提供了旗舰版(付费)和社区版(免费)两种版本。
  2. Eclipse

    • 一款免费开源的集成开发环境(IDE),最初由IBM开发,现由Eclipse基金会管理。
    • 支持多种编程语言,如Java、C/C++、PHP等,通过插件可以支持更多语言和框架。
    • 拥有丰富的插件生态系统,几乎任何想要的功能都可以通过安装相应的插件来实现。
    • 在学术和研究环境中特别受欢迎。
  3. NetBeans

    • 另一个免费开源的IDE,支持多种编程语言,包括Java、PHP、C/C++等。
    • 以其对Maven项目的出色支持而闻名,提供了便捷的项目配置、依赖管理和构建自动化功能。
    • 特别适合使用Maven的Java开发者,以及需要快速开发GUI应用的开发者。
    • 其GUI构建器允许开发者通过拖放组件来设计图形界面,降低了GUI开发的复杂性。
  4. Visual Studio Code (VS Code)

    • 由微软开发的一款轻量级、跨平台的代码编辑器,虽然不是传统意义上的IDE,但通过插件可以支持Java等多种编程语言和框架。
    • 提供了智能的代码补全、调试、版本控制等功能,是前端开发者的常用工具之一。
    • 对于Java开发,通过安装相应的扩展插件(如Java Extension Pack)也能获得很好的支持。

个人使用的是VS Code,因为更加的灵活多变一些;在校学生推荐在JetBrains官网注册后使用IDEA,相较其他IDE操作更方便一些。

安装完IDE后新建一个名为Student.java的文件,将以下代码复制到文件中,需要注意的是,文件中的类名必须和文件名相同:

// 定义Student类  
public class Student {  // 成员变量(属性)  private String name;  private int age;  private String studentId;  // 构造方法  public Student(String name, int age, String studentId) {  this.name = name;  this.age = age;  this.studentId = studentId;  }  // 获取名字方法  public String getName() {  return name;  }  // 设置名字方法  public void setName(String name) {  this.name = name;  }  // 获取年龄方法  public int getAge() {  return age;  }  // 设置年龄方法  public void setAge(int age) {  this.age = age;  }  // 获取学生ID方法  public String getStudentId() {  return studentId;  }  // 设置学生ID方法  public void setStudentId(String studentId) {  this.studentId = studentId;  }  // 打印学生信息方法  public void printStudentInfo() {  System.out.println("Student Name: " + name);  System.out.println("Student Age: " + age);  System.out.println("Student ID: " + studentId);  }  // 主方法,用于测试Student类  public static void main(String[] args) {  // 创建一个Student对象  Student student1 = new Student("GGBond", 16, "114514");  // 调用对象方法  student1.printStudentInfo();  // 修改对象的属性  student1.setName("Mio Mo");  student1.setAge(21);  // 再次调用对象方法,查看修改后的属性  student1.printStudentInfo();  }  
}

这里我推荐采用终端运行的方式,在终端中输入命令,使用编译工具javac将 Java 源代码(以 .java 为扩展名的文件)编译成 Java 字节码(bytecode):

javac Student.java

命令运行后会编译出Student.class字节码文件,当运行一个 Java 程序时,JVM 会加载 .class 文件,通过解释或即时编译(JIT,把字节码转换成机器码)来执行程序。
在这里插入图片描述
再输入命令来运行字节码:

java Student

Java运行成功!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148670.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

大模型时代:AI引领企业创新升级的全面爆发

人工智能(AI)正在以惊人的速度改变企业的运营模式,成为企业效率提升与创新的强大驱动力。随着AI技术的不断发展,企业正面临前所未有的机遇与挑战,如何有效利用这些技术已成为决定企业未来成败的关键。 首先&#xff0c…

抖音生活服务入局攻略曝光!普通人也能抓住风口!

当前,抖音生活服务的热度持续飙升,让不少人都有了入局的打算,与之相关的各类话题如抖音生活服务的入局途径有哪些等也因此成为了人们热议的对象。而从这些话题的讨论情况来看,绝大多数讨论者只知道抖音生活服务火爆,却…

基于SpringBoot和协同过滤算法的电商购物平台

文未可获取一份本项目的java源码和数据库参考。 选题的目的和意义: 在今天的科技发展现状中,所体现出的高速发展的信息技术,人们的生活水平及生活方式也随之发生着变化,以往人们已经习惯了多年养成的购物习惯,那就是到…

无人机之工作温度篇

无人机的工作温度是一个相对复杂的问题,因为它受到多种因素的影响,包括无人机的类型(如民用、军用)、设计规格、应用场景以及环境条件等。以下是对无人机工作温度范围的详细解析: 一、正常工作温度范围 一般来说&…

结合HashMap与Java 8的Function和Optional消除ifelse判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen 在文章的开头我们先从这些场景进入本期的问题: 业务代码中各种if-else有遇到过吗,有什么好的优化方式;java8出来这么…

可编辑PPT | 能源企业数字化框架、数字化运营及数字化平台建设方案

项目背景及需求理解 首先提出了全球能源互联网的概念,强调了清洁能源和电能替代的重要性,并介绍了德国工业4.0战略以及泛在电力物联网的创新。文档探讨了信息化与工业化的深度融合,以及云计算、大数据、物联网和移动应用等新技术在能源行业的…

超详细超实用!!!AI编程之cursor编写一个官网(二)

云风网 云风笔记 云风知识库 一、新建html文件 选中添加index.html,输入编写官网要求&#xff0c;自动生成代码&#xff0c;先来个简单的。 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"…

博图安装(版本:V18)

目录 一、软件安装 Ⅰ、博图编程软件安装 Ⅱ、仿真环境安装 二、许可证安装 安装教程 工作中常用的是编程软件&#xff0c;组态软件以及仿真&#xff0c;编程软件和组态软件是一起的&#xff0c;因此先演示编程软件的安装 软件安装总共分为两部分&#xff0c;安装软件和安…

对比评测5款实用在线翻译工具,包括有道在线翻译

大家好&#xff0c;今天咱们来聊聊在线翻译工具。在这个信息爆炸的时代&#xff0c;语言不再是沟通的障碍&#xff0c;多亏了这些强大的翻译神器。今天&#xff0c;我将带大家比较五款热门的在线翻译工具&#xff0c;究竟谁更胜一筹呢&#xff1f;让我们一探究竟&#xff01; …

STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器

目录 一、AT24CXXX 系列存储器介绍1、基本信息2、寻址方式3、页地址与页内单元地址4、I2C 地址5、AT24CXX 的数据读写5.1 写操作5.1.1 按字节写5.1.2 按页写 5.2 读操作5.2.1 当前地址读取5.2.2 随机地址读取5.2.3 顺序读取 二、代码实现1、ctl_i2c2、at24c3、测试程序 I2C 相关…

Linux复习--网络基础(OSI七层、TCP三次握手与四次挥手、子网掩码计算)

一、ISO/OSI七层模型的分层与作用 1、ISO/OSI的七层模型 2、作用 应用层&#xff1a;为用户提供服务&#xff0c;给用户一个操作界面表示层&#xff1a;数据提供表示&#xff1b;加密&#xff1b;压缩&#xff1b;会话层&#xff1a;确定数据是否需要进行网络传递传输层&…

从0开始linux(5)——vim

欢迎来到博主的专栏&#xff1a;从0开始linux 博主ID&#xff1a;代码小豪 文章目录 vim的多种模式底行模式命令命令模式视块模式&#xff08;visual block&#xff09; vim的配置 vim是linux系统的文本编辑器。就像windows的记事本一样。 使用vim指令可以使用vim打开一个文本文…

5G Multicast/Broadcast Services(MBS) (四)

这篇是有关MBS RRC相关的一些基本内容,内容不多,但是感觉很关键,主要包括SI,MBS网络侧相关的内容,L2 协议架构,cell reselection prioritity以及MBS接收的一些内容,希望有帮助。 SI 在MBS场景中,SI和常规5G一样分为Minimum SI和Other SI。Minimum SI是MIB和SIB1,Min…

程序员画图神器,开源

https://github.com/jgraph/drawio 开源、免费、简洁、方便的画图工具&#xff0c;可作为visio或亿图的替代品 drawio简介 在流程图、思维导图、UML图等图表绘制领域,draw.io可以说是一款优秀和受欢迎的在线作图工具。draw.io由JGraph开发,完全开源,拥有超过3万个GitHub Star…

芯片仓管系统主要适用场景有哪些

随着科技产业的飞速发展&#xff0c;芯片作为电子设备的核心部件&#xff0c;其库存管理成为了企业运营中不可或缺的一环。芯片仓管系统&#xff0c;作为专为高效、精准管理芯片库存而设计的信息化工具&#xff0c;正逐步在多个关键领域展现出其不可或缺的价值。那么&#xff0…

APScheduler、Django、Python实现定时任务,以及任务操作

环境&#xff1a;Windows 11、python 3.12.3、Django 4.2.11、 APScheduler 3.10.4 背景&#xff1a;工作需要使用且用法较为复杂&#xff0c;各种功能基本都使用了 事件&#xff1a;20240920 说明&#xff1a;记录&#xff0c;方便后期自己查找 1、搭建基础环境 文件结构图…

免费分享一套SpringBoot+Vue火车票订票管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue火车票订票管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringbootVue火车票订票管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 传统办法管理信息首先需要花费的时间比较多&…

基于Springboot个性化图书推荐系统JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

优思学院|TQM和ISO9001有什么关系?

TQM 和 ISO 9001有什么关系&#xff1f;我们把这个问题交给AI&#xff0c;它的回答是&#xff1a; 老实说&#xff0c;说它答错&#xff0c;又不算是错&#xff0c;但说它答对&#xff0c;也不算&#xff0c;总之就是一种模凌两可的感觉。 为什么会这样&#xff1f;因为管理中…

【gradio介绍】Python 可视化 web 神器---gradio介绍

Gradio是一个开源的Python库&#xff0c;专为帮助开发者快速搭建和分享机器学习模型、API或任意Python函数的用户界面&#xff08;UI&#xff09;而设计。它基于FastAPI和Svelte&#xff0c;是一个易于部署且功能强大的Web界面构建工具&#xff0c;特别适用于展示和测试机器学习…