返回顶部

java初识

java介绍

  • java是一种高级编程语言和计算平台, 最初由Sun microsystems与1995年提出

  • 被设计成具有跨平台性-->一次编写的java代码可以在不同操作系统上运行, 只需要安装适当的java虚拟机(JVM) 这种特性使得java非常流行, 特别是web 应用程序开发和企业级应用程序中

java的特点

  • 简单性: 语法设计简洁清晰, 易于学习和使用. 避免了喝多传统语言中容易引起错误的复杂特性, 如指针操作和手动内存管理

  • 跨平台性: java代码可以编译成中间字节码(bytecode) . 在任何安装了java虚拟机(JVM) 的平台上运行, 这种跨平台性是通过将java代码转换为平台无关的中间代码实现的

  • 面向对象: java是一种面向对象的编程语言, 支持面向对象编程的基本特性, 如封装, 继承,和多态

  • 安全性: java内建有安全特性, 例如内置的安全性检查机制和 垃圾回收器, 有助于防止常见的安全漏洞和内存泄漏

  • 多线程支持: java提供了对多线程编程的支持, 使得开发者能够编写并发执行的程序. 充分利用现代计算机的多核处理能力

java的应用领域包括但不限于

  • 企业级应用开发: 大型企业软件系统, 如客户关系管理系统(CRM) . 企业资源规划系统(ERP)等

  • 移动应用开发: Android操作系统采用Java作为主要的开发语言, 因此Android应用都是Java编写的

  • web开发: Java可以用于服务器端的web应用开发, 常用的框架包括Spring, Hibernate等

  • 科学计算和大数据处理: Java在处理大规模和科学计算方便, 比如Hadoop和spark等大数据处理框架都有Java组件

java程序的执行过程

1. 编写代码:

开发者使用文本编辑器或集成开发环境(IDE)编写Java源代码文件(.java扩展名),在这些文件中包含了所需的程序逻辑和功能。

2. 编译:

一旦源代码编写完成,开发者使用Java编译器(javac)将Java源代码文件编译成Java字节码文件(.class扩展名)。这个过程发生在开发环境中或者命令行中,编译器会检查代码中的语法错误并生成对应的字节码。

3. 执行:

Java字节码是一种与平台无关的中间代码。这些字节码文件可以在任何安装了Java虚拟机(JVM)的平台上运行。当你要执行程序时,JVM会负责将字节码翻译成特定平台的机器码并执行。具体过程如下:

  • 加载: JVM会加载所需的类文件,这包括主程序入口类和其他相关类。

  • 验证: JVM会对加载的字节码进行验证,以确保其符合Java语言规范和安全要求,避免潜在的安全风险。

  • 解释/编译为本地代码: 在执行过程中,JVM可能会对字节码进行解释执行,或者在运行时使用即时编译器(JIT)将字节码编译为本地机器码,以提高执行速度。

  • 执行: JVM按照字节码中的指令执行程序逻辑,调用方法,操作数据等,直到程序运行结束或达到终止条件。

4. 垃圾回收:

Java具有内置的垃圾回收器(Garbage Collector),它负责自动管理内存,释放不再使用的对象所占用的内存空间。这个过程不需要程序员手动干预,有助于避免内存泄漏问题。

这个整个过程使得Java具有跨平台性和灵活性,使得开发者能够专注于编写一次代码,而不必担心其在不同平台上的执行问题。

 

JVM的主要功能包括

  1. 字节码执行: JVM是一个解释器和执行引擎,能够将Java字节码翻译为特定平台的机器码并执行。它可以通过解释执行字节码或者即时编译(JIT)将字节码转换为本地机器代码,提高程序的执行效率。

  2. 内存管理: JVM负责Java程序的内存分配和管理。它在运行时动态分配内存,包括堆(Heap)用于存储对象实例和运行时数据,以及栈(Stack)用于存储方法调用和局部变量。

  3. 垃圾回收: JVM内置了垃圾回收器(Garbage Collector),负责自动管理内存,检测和回收不再使用的对象,防止内存泄漏,使得开发者不必手动管理内存释放。

  4. 即时编译器(JIT): JVM中的即时编译器能够将频繁执行的字节码编译成本地机器码,以提高程序的执行速度。通过动态优化,JIT能够在运行时对代码进行优化,提高程序的性能。

  5. 安全管理: JVM包含安全管理器(Security Manager),能够对Java程序的安全性进行管理和控制,防止恶意代码的执行和对系统的不当访问。

JVM的架构

JVM由多个组件构成,包括:

  • 类加载器(Class Loader): 负责将类文件加载到内存中,并生成对应的Class对象。

  • 运行时数据区域: 包括堆、栈、方法区、程序计数器等,用于存储程序运行时的数据。

  • 执行引擎: 解释器和即时编译器,负责执行字节码。

  • 垃圾回收器: 负责垃圾回收和内存管理。

Java虚拟机的规范由Oracle公司制定,而实际上有多种不同的JVM实现,包括Oracle的HotSpot、OpenJ9、GraalVM等。不同的实现在性能、垃圾回收策略、优化等方面可能有所差异,但它们都遵循Java虚拟机规范,保证了Java程序的可移植性和跨平台性。

JDK的介绍

java Development Kit(JDK)是Java开发工具包,提供了Java开发所需的工具、库和JRE(Java Runtime Environment,Java运行时环境)组件。JDK包含了编译器、调试器、各种实用工具和JRE,使得开发者能够编写、编译、调试和运行Java应用程序。

  • 两个主要组件:

    • javac -编译器, 将源程序转成字节码

    • java -运行编译后的java程序 (.class后缀的)

JDK的主要组成部分

  1. Java编译器(javac): 用于将Java源代码编译成Java字节码。

  2. Java运行时环境(JRE): 包含Java虚拟机(JVM)和Java核心类库。JRE允许Java程序在特定平台上运行,并提供了许多标准的Java类库和工具。

  3. Java开发工具: JDK提供了一系列开发工具,如调试器(jdb)、Javadoc(用于生成文档)、jar打包工具等,有助于开发者进行代码编写、调试和管理。

  4. Java API类库: 包括标准的Java类库,提供了丰富的API(应用程序接口)供开发者使用,涵盖了各种功能,从基本的数据结构到网络、图形界面和数据库访问等。

  5. 其他实用工具: JDK还包含其他一些实用工具,如jconsole(监视和管理JVM)、jvisualvm(Java应用程序监视和分析工具)等,用于开发和调试Java程序。

JRE的介绍

Java Runtime Environment(JRE)是Java运行时环境,它是Java应用程序的运行环境,包含了Java虚拟机(JVM)和Java类库。JRE使得计算机能够执行Java程序,运行Java字节码并提供所需的基础类库。

  • JRE(Java Runtime Environment) 就是运行java字节码的虚拟机

  • 包括java虚拟(JVM), java核心类库和支持文件

  • 如果只需要运行java程序, 下载并安装JRE即可

  • 如果要开发java软件, 需要下载JDK

  • 在JDK中附带有JRE

JRE的主要组成部分

  1. ava虚拟机(JVM): JVM是Java程序运行的核心。它负责将Java字节码解释成特定平台的机器码或者进行即时编译,以便在特定平台上执行Java程序。

  2. Java核心类库: JRE包含了Java标准库(Java Standard Edition API),包括了各种类和方法,用于处理输入输出、网络通信、数据结构、图形界面、安全性等各种功能。

  3. 运行时数据区域: 包括堆(Heap)、栈(Stack)、方法区(Method Area)等,用于存储Java程序运行时所需的数据、对象实例和方法信息。

JRE的作用:

JRE的主要作用是为Java程序的运行提供支持。当开发者将Java程序打包成可执行的jar文件或者war文件时,最终用户只需安装JRE,就可以在其计算机上运行Java应用程序。JRE的安装使得计算机能够理解和执行Java字节码。

JRE与JDK的关系:

JDK(Java Development Kit)包含了JRE,同时还包含了编译器(javac)和其他开发工具。开发者在开发Java应用程序时需要使用JDK,因为JDK提供了编译器和其他开发工具,使得开发者能够编写、编译和调试Java代码。

一般情况下,最终用户只需要安装JRE,以便能够运行Java应用程序。但是在开发Java应用程序时,开发者需要安装JDK,以便编写、编译和测试Java代码。

总之,JRE是Java应用程序的运行时环境,包含了Java虚拟机和基本的Java类库,使得计算机能够执行Java程序

JVM和JDK JRE 三者的关系

  • JVM 是Java程序的核心执行引擎,负责在计算机上执行Java字节码。

  • JRE 包含了JVM和基本的Java类库,提供了Java程序运行所需的环境。

  • JDK 包含了完整的JRE,同时还包括了开发所需的工具(编译器、调试器等),用于编写、编译和测试Java程序。

简而言之,JDK包含了完整的JRE,并提供了额外的开发工具,而JRE则提供了Java程序运行所需的环境,包括JVM和基本的类库。而JVM是Java程序的核心执行引擎,负责执行Java字节码

Java平台

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

Java程序的结构

package com.imooc;
​
public class imoocpro {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 这个第一个城程序
        System.out.println("hello,imooc!!!");
                
    }
​
}

JDK环境搭建

1 Windows版JDK的下载和安装
posted @ 2023-03-12 23:33  fuju  阅读(72)  评论(0)    收藏  举报