首页 > 编程语言 >01.Java简介

01.Java简介

时间:2024-12-03 16:14:21浏览次数:7  
标签:文件 01 Java JDK 简介 虚拟机 java class

Java历史

​ Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak(橡树),目标是针对小型家电设备的嵌入式应用,在1995年以Java的名称正式发布

Java介于编译型语言和解释型语言之间

编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码

解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低

​ 而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果

​ 对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上


随着Java的发展,SUN给Java又分出了三个不同版本:

  • Java SE:Standard Edition 平台标准版

​ 开发桌面应用(用c/c++更合适)、其他两个版本的基础

  • Java EE:Enterprise Edition 平台企业版

​ 用于Web方向的网站开发。(主要从事后台服务器的开发)

  • Java ME:Micro Edition 平台微型版

​ Java语言的小型版,用于嵌入式消费类电子设备或者小型移动设备的开发


​ 简单来说,Java SE就是标准版,包含标准的JVM和标准库,而Java EE是企业版,它只是在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同

​ Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”,主要应用小型移动设备的开发(手机),目前Android 安卓和 IOS 开发成为了移动平台的标准,不建议使用Java ME


从互联网到企业平台,Java是应用最广泛的编程语言,原因在于:

  • Java是基于JVM虚拟机的跨平台语言,一次编写,到处运行;
  • Java程序易于编写,而且有内置垃圾收集,不必考虑内存管理;
  • Java虚拟机拥有工业级的稳定性和高度优化的性能,且经过了长时期的考验;
  • Java拥有最广泛的开源社区支持,各种高质量组件随时可用

Java语言常年霸占着三大市场:

  • 互联网和企业应用,这是Java EE的长期优势和市场地位;
  • 大数据平台,主要有Hadoop、Spark、Flink等,他们都是Java或Scala(种运行于JVM的编程语言)开发的;
  • Android移动平台

Java版本

从1996年发布1.0版本开始,到目前为止,最新的Java版本是Java 23:

时间 版本
1996 1.0
1997 1.1
1998 1.2
2000 1.3
2002 1.4
2004 1.5 / 5.0
2005 1.6 / 6.0
2011 1.7 / 7.0
2014 1.8 / 8.0
2017/9 1.9 / 9.0
2018/3 10
2018/9 11
2019/3 12
2019/9 13
2020/3 14
2020/9 15
2021/3 16
2021/9 17
2022/3 18
2022/9 19
2023/3 20
2023/9 21
2024/3 22
2024/9 23

学习教程使用的Java版本是最新版的Java 23

名词解释

JDK

​ (Java Development Kit)是Java的开发工具包,JDK是提供给Java开发人员使用的,其中包含了Java的开发工具 和运行时环境JRE

开发工具包括:编译工具(javac.exe)打包工具(jar.exe)等。通俗的说就是开发用的

JRE

​ (Java Runtime Environment)是Java 运行时环境,是一个软件包, JRE包括 Java虚拟机标准实现和Java程序所需的核心基本类库等

​ 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。通俗的说就是运行用的

三者间的关系:层层嵌套 JDK > JRE > JVM

JVM

​ (Java Virtual Machine)是Java虚拟机。 它只认识 .class 为后缀的文件,它能将class文件中的字节码指令进行识别并调用操作系统向上的API完成动作

​ JVM是java能够跨平台的核心机制,就是把我们写的代码,转换成class文件用的

CMD命令

cmd 就是在windows操作系统中,利用命令行的方式去操作计算机

我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等

打开CMD

  1. 按下快捷键:win + R

  2. 在运行窗口中输出cmd

  3. 输出回车

​ cmd默认操作C盘下的users文件夹下的XXX文件夹。(XXX就是计算机名)

可在资源管理器(文件夹)的地址输入 cmd 进入当前所在路径

常用CMD命令

扩展:

​ 在很多资料中都说成是DOS命令,其实是不对的。真正的DOS命令是1981年微软和IBM出品的MS-DOS操作系统中的命令才叫做DOS命令

​ 而在Windows中,win98之前的操作系统是以非图形化的DOS为基础的,可以叫做DOS命令。到了2000年以后,windows逐渐的以图形化界面为主了,这个时候就不能叫DOS命令了,他只是模拟了DOS环境而已,很多的原本的DOS命令已经无法使用了,所以这个时候叫做CMD命令会更准确一些

常见的CMD命令如下:

操作 说明
盘符名称: 盘符切换。E:回车,表示切换到E盘。
dir 查看当前路径下的内容。
cd 目录 进入单级目录。cd itheima
cd .. 回退到上一级目录。
cd 目录1\目录2... 进入多级目录。cd itheima\JavaSE
cd \ 回退到盘符目录。
cls 清屏。
exit 退出命令提示符窗口。

CMD练习

需求:

利用cmd命令打开自己电脑上的软件

完成步骤:

1,确定电脑上的软件安装位置
2,启动cmd
3,进入到启动程序name.exe所在的路径。
4,输出name.exe加回车表示启动软件。

安装 JDK

下载地址:https://www.oracle.com/java/technologies/downloads/

环境变量

作用:

​ 软件启动必须要进入当前exe所在的路径,如果想要在CMD的任意目录下都可以启动某一个软件,那么就可以把这个软件的路径配置到环境变量中PATH里面。在启动软件的时候,操作系统会先在当前路径下找,如果在当前没有再到环境变量的路径中去找。如果都找不到就提示无法启动

步骤:

  • 右键此电脑,选择属性。
  • 点击高级系统设置
  • 选择高级,点击环境变量。
  • 找系统变量里面的PATH
  • 把软件的完整路径,配置到PATH当中就可以了。

​ 开发Java程序,需要使用JDK提供的开发工具(比如javac.exejava.exe等命令),而这些工具在JDK的安装目录的bin目录下,如果不配置环境变量,那么这些命令只可以在bin目录下使用,而我们想要在任意目录下都能使用,所以就要配置环境变量

JAVA_HOME

​ 告诉操作系统JDK安装在了哪个位置(未来其他技术要通过这个找JDK)

Path

​ 告诉操作系统JDK提供的javac(编译)、java(执行)命令安装到了哪个位置

注意:现在最新从官网上下载的JDK安装时会自动配置javac、java命令的路径到Path环境变量中去 ,所以javac、java可以直接使用

设置参数

  • 变量名:JAVA_HOME

  • 变量值:D:\Java\jdk1.8.0_91 // 要根据自己的实际路径配置

  • 变量名:Path

  • 变量值:%JAVA_HOME%\bin;

目录介绍

目录名称 说明
bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。
conf 该路径下存放了JDK的相关配置文件。
include 该路径下存放了一些平台特定的头文件。
jmods 该路径下存放了JDK的各种模块。
legal 该路径下存放了JDK各模块的授权文档。
lib 该路径下存放了JDK工具的一些补充JAR包。

把 JAVA_HOME 的 bin 目录添加到 path 中是为了在任意文件夹下都可以运行 java 。打开命令提示符窗口,输入命令java -version会看到如下输出:

java version "23.0.1" 2024-10-15
Java(TM) SE Runtime Environment (build 23.0.1+11-39)
Java HotSpot(TM) 64-Bit Server VM (build 23.0.1+11-39, mixed mode, sharing)

如果版本号不符合,说明系统存在多个JDK,需要重新配置环境变量,将JDK23提到 path 前面

JDK 工具

可以在JAVA_HOMEbin目录下找到很多可执行文件:

  • java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;
  • javac:这是Java的编译器,它用于把Java源码文件.java编译为Java字节码文件.class后缀;
  • jar:用于把一组.class文件打包成一个.jar文件,便于发布;
  • javadoc:用于从Java源码中自动提取注释并生成文档;
  • jdb:Java调试器,用于开发阶段的运行调试

第一个Java程序

打开文本编辑器,输入以下代码:

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld");
	}
}

在一个Java程序中总能找到一个类似以下代码的定义:

public class HelloWorld {
    ...
}

​ 这个定义被称为class(类),这里的类名是HelloWorld,大小写敏感,class用来定义一个类,public表示这个类是公开的,publicclass都是Java的关键字,必须小写,Hello是类的名字,按照习惯,首字母H要大写。而花括号{}中间则是类的定义

​ 注意到类的定义中定义了一个名为main的方法:

public static void main(String[] args) {
	...
}

​ 方法是可执行的代码块,一个方法除了方法名main,还有用()括起来的方法参数,这里的main方法有一个参数,参数类型是String[],参数名是args

``publicstatic用来修饰方法,这里表示它是一个公开的静态方法,void是方法的返回类型,而花括号{}`中间的就是方法的代码

方法的代码每一行用;结束,这里只有一行代码,就是:

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

它用来打印一个字符串到屏幕上

​ Java规定,某个类定义的public static void main(String[] args)是Java程序的固定入口方法,因此,Java程序总是从main方法开始执行

​ 注意 Java 源码的缩进不是必须的,但是用缩进后便于开发编辑,缩进一般是4个空格或者一个tab

运行Java程序

Java源码本质上是一个文本文件,需要先用javacHelloWorld.java编译成字节码文件HelloWorld.class,然后用java命令执行这个字节码文件:

因此可执行文件javac是编译器,而可执行文件java就是虚拟机

编译文件:编译后会产生一个class文件

​ java文件:程序员自己编写的代码

​ class文件:交给计算机执行的文件

运行文件:运行的是编译之后的class文件

用到两个命令:

​ javac + 文件名 + 后缀名 (就是编译java文件)

​ java + 文件名(运行编译之后的class文件,无需后缀)

javac 是JDK 提供的编译工具,把 .java 文件编译成 class 字节码

注意:给虚拟机传递的参数HelloWorld是我们定义的类名,虚拟机自动查找对应的class文件并执行。

直接运行java HelloWorld.java也是可以的:

$ java Hello.java 
Hello, world!

这是Java 11新增的一个功能,它可以直接运行一个单文件源码

需要注意的是,在实际项目中,单个不依赖第三方库的Java源码是非常罕见的,所以,绝大多数情况下,我们无法直接运行一个Java源码文件,原因是它需要依赖其他的库

小结

一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致;

使用javac可以将.java源码编译成.class字节码;

使用java可以运行一个已编译的Java程序,参数是类名

IDEA 开发工具

IDE是集成开发环境:Integrated Development Environment的缩写。

使用IDE的好处在于,可以把编写代码、组织项目、编译、运行、调试等放到一个环境中运行,能极大地提高开发效率。

IDE提升开发效率主要靠以下几点:

  • 编辑器的自动提示,可以大大提高敲代码的速度;
  • 代码修改后可以自动重新编译,并直接运行;
  • 可以方便地进行断点调试。

目前,流行的用于Java开发的IDE有:

JetBrains IDEA下载地址:https://www.jetbrains.com/idea/download/

IDEA中层级结构介绍

结构分类

Project(项目或工程)—Module(模块)—Package(包)—Class(类)

一个Project中可以创建多个Module,若无另外定义则一个工程为单模块,一般小项目都是一个模块

一个模块(Module)中可以创建多个包(Package)

一个包(Package)中可以创建多个类(Class)

结构介绍

project(项目、工程)

​ 淘宝、京东网站都属于一个个项目,IDEA中就是一个个的Project,项目作为一个独立的实体,可以拥有自己的版本控制、构建工具和发布流程

module(模块)

​ 在一个项目中,可以存放多个模块,不同的模块可以存放项目中不同的业务功能代码,栗如用户登录模块、‌用户角色模块和用户权限模块等,‌都是为了实现特定的功能而设计的。‌因为每个Module都可以独立地进行开发、‌测试和部署,‌同时也可以根据需要添加或删除Module,‌而不会影响到其他部分的稳定性

为了更好的管理代码,我们会把代码分别放在模块中存放

package(包)

  • 包是一种组织类和接口的方式,用于将相关的类和接口组织在一起。
  • 包通常用于在代码中建立命名空间,以避免类名冲突。
  • 在模块内,包仍然是组织代码的基本单元。

为了把这些业务区分的更加清楚,就会用包来管理这些不同的业务

包的命名,或以独立功能为准,或以层次划分为准

class(类)

  • 类是 Java 程序中的基本组成单元,它包含字段、方法等成员。
  • 类被组织在包内,可以通过包名和类名唯一标识。

小结

  • 层级关系

    ​ project - module - package - class

  • 包含数量

    ​ project中可以创建多个module
    ​ module中可以创建多个package
    ​ package中可以创建多个class

    ​ 这些结构的划分,是为了方便管理类文件的

创建第一个Java项目

  • 1、启动 IntelliJ IDEA。

  • 2、在欢迎屏幕中单击"新建项目"。

  • 3、在"新建项目"向导中,从左侧列表中选择"Java"。

  • 4、为项目命名,并根据需要更改默认位置。

  • 5、确保在构建系统中选择了 IntelliJ。

  • 要在 IntelliJ IDEA 中开发 Java 应用程序,需要 Java SDK (JDK)。

  • 如果 IntelliJ IDEA 中已定义所需的 JDK,请从 JDK 列表中选择它。

  • 如果计算机上安装了 JDK,但未在 IDE 中定义,选择"添加 JDK"并指定 JDK 主目录的路径

  • 创建包和类,在项目工具窗口中,右键单击 src 文件夹,选择新建,然后选择 Java 类。
  • 在名称字段中,输入 com.example.helloworld.HelloWorld(一般为公司域名的反写) 并点击确定,IntelliJ IDEA 将创建 com.example.helloworld 包和 HelloWorld 类。
package com.example.helloworld;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Java AI 编程助手

​ 点击左上方"文件"再点击"设置",接着点击左侧"插件"选择"Marketplace",并搜索"Fitten Code",然后点击"Install"进行安装

具体点击用户指南学习——学习中,暂时没使用

标签:文件,01,Java,JDK,简介,虚拟机,java,class
From: https://www.cnblogs.com/lingxiaoGIS/p/18584296

相关文章

  • ABB机械手维修37001电机开启接触器错误
    当ABB机器人报告37001电机开启接触器错误时,这往往意味着电机上电的接触器在执行动作时遇到了障碍。具体而言,该错误通常与位于控制柜内左下角的接触器相关,其中K42和K43负责控制电机的开启操作。深入分析,此类错误可能源自几个不同的方面:接触器的线路松动是一个值得检查的因素。应......
  • 第1章:CSS简介 --[CSS零基础入门]
    1.什么是CSSCSS(层叠样式表,CascadingStyleSheets)是一种用于描述HTML或XML(包括各种XML方言如SVG、XHTML等)文档表现的样式语言。CSS的主要目的是将网页的内容与它的表现形式分离,从而使得开发者能够更灵活地控制页面的布局和外观。主要特点分离内容与样式:CSS允许你将网......
  • Java 配置与泛型:Properties 与 Map 的实际应用
    在Java中,Map和Properties都是用来存储键值对的集合类,但它们的设计目标不同,因此它们在泛型支持上的选择也不同。具体来说:1.Properties的设计目标Properties类是为配置文件而设计的,目的是处理键值对形式的配置项。其特点包括:键和值必须都是字符串(String):配置文件中的内......
  • 如何解决 Java Properties 文件中 .ini文件乱码问题
    如何解决JavaProperties文件中.ini文件乱码问题在Java开发中,配置文件是一项常见的需求,通常我们使用.properties文件来保存应用程序的配置。然而,当我们尝试使用.ini文件(即带有非标准字符编码的配置文件)时,经常会遇到乱码问题。这个问题的出现,通常是因为Properties类默......
  • Java中集合的的多字段排序(链式排序)详解
    链式排序(ChainedSorting)详解链式排序(ChainedSorting)是指通过多个比较条件,依次对数据进行排序的方法。它是一种在一个排序规则的基础上,利用第二排序规则、第三排序规则等,来细化排序过程的技术。在Java中,Comparator接口提供了非常便捷的方式来实现链式排序,通常应用于复......
  • java毕业设计- 基于springboot+layui的医院综合管理毕业设计系统带数据库文件
    文章目录前言医院综合管理系统介绍医院综合管理系统界面医院综合管理系统实现介绍系统介绍技术实现细节总结系统数据库介绍毕设系统核心框架介绍核心代码参考数据库参考为什么选择我更多毕设系统作品演示视频可看这里数据库+源码获取前言......
  • ResourceBundle详解:Java中的国际化与资源管理
    ResourceBundle详解:Java中的国际化与资源管理在开发多语言支持(国际化,i18n)或需要动态加载资源的应用程序时,ResourceBundle是Java提供的核心类之一。它能够根据用户的语言和地区加载对应的资源文件,从而实现应用的本地化和灵活的配置管理。本文将深入探讨ResourceBundle的使用......
  • Java 对象映射工具全解析
    在Java开发中,对象映射是一个非常常见的需求,特别是在领域模型与DTO(数据传输对象)之间进行转换时。如何高效、灵活地实现对象映射是开发人员需要解决的问题。本文将详细分析常见的对象映射工具,比较其优缺点,并提供应用场景的选择建议。什么是对象映射?对象映射(ObjectMappi......
  • Java 类加载、类加载器及双亲委派机制详解
    Java类加载、类加载器及双亲委派机制详解在Java中,类加载是JVM运行的重要环节,而类加载器则是负责将.class文件加载到内存中的核心组件。本文详细介绍类加载的过程、类加载器的工作机制及双亲委派机制,同时比较OracleJDK8与JDK9及之后版本在类加载器上的变化。1.类的加载类......
  • CS61B srping 2018 project00 https://sp18.datastructur.es/
    GettingtheSkeletonFiles,网站上应该有仓库地址,这个也行,https://gitee.com/heqilaoge/skeleton-sp18。拉下来找到proj0,就能开始作业。可以不使用IDE。2.ThePlanetClassandItsConstructor创建Planet类publicclassPlanet{publicdoublexxPos;publicdo......