Java第一课——Java详细图文概述

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Java第一课——Java详细图文概述

Java概述

定义

编程语言和计算平台(计算平台是电脑中运行应用程序的环境,包括硬件环境和软件环境)

特点
  • 面向对象

  • 摒弃了C++中的多继承、指针、内存管理等等概念;不用手动管理对象的生命周期

  • 具备功能强大和简单易用两个特点,适用于企业级开发、快速敏捷型开发,同时出现了多种框架。

  • 支持网络编程

  • 静态语言(在编译时期就知道数据类型)

  • 基于JVM的平台独立性和可移植性

    定义:Java应用程序是在Java虚拟机(JVM)上运行的。JVM是一个虚拟的计算机环境,它可以在不同的操作系统和硬件平台上运行。

    原先计算机应用程序和硬件之间会屏蔽很多细节,它们之间通过操作系统来完成调度和协调。

    image-20230620191840684

加入JVM之后的变化

image-20230620191904860

  • 在用户空间内实现多线程
  • 健壮性(强类型机制、异常处理机制、垃圾回收机制)
  • Java很容易分布式开发项目

jdk1.5之后的三大版本

  • Java SE(J2SE,Java 2 Platform Standard Edition,标准版)
    Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为Java EE和Java ME提供基础。
  • Java EE(J2EE,Java 2 Platform Enterprise Edition,企业版)
    Java EE 以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web2.0应用程序。2018年2月,Eclipse 宣布正式将 JavaEE 更名为 JakartaEE
  • Java ME(J2ME,Java 2 Platform Micro Edition,微型版)
    Java ME 以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

JVM、JRE和JDK的关系

JVM
Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台

JRE
Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包

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

JDK
Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等

JVM&JRE&JDK关系图
在这里插入图片描述

java包
  • java.lang:这个是系统的基础类
  • java.io:这里面是所有输入输出有关的类,比如文件操作等;
  • java.nio:为了完善 io 包中的功能,提高 io 包中性能而写的一个新包;
  • java.net:这里面是与网络有关的类;
  • java.util:这个是系统辅助类,特别是集合类;
  • java.sql:这个是数据库操作的类。

字节码

字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。

字节码的好处:解决了传统解释型语言执行效率低的问题,同时又保留了解释性语言可移植的优点。

虚拟机

定义及特点

使用软件仿真技术,作为一种在操作系统上被安装的支持特定软件包运行的软件,通过在物理硬件上模拟出一台或多台虚拟计算机,使得每个虚拟计算机具备自己的操作系统、应用程序和资源。

  • 独立(eg:一台宿主机上配备了多台虚拟机,每个虚拟机都可以运行不同的操作系统并且各自运行应用程序)
  • 可以对资源进行分配和管理
拓展:虚拟主机(VH)

一台物理服务器上划分出多个逻辑的、私密的虚拟服务器环境。每个虚拟主机都有自己独立的操作系统、应用程序和资源,它们相互之间是隔离的,互不影响。虚拟主机可以通过服务器虚拟化技术实现,例如使用容器或虚拟化软件(如VMware、Xen、KVM等)。

在这里插入图片描述

实现原理

在这里插入图片描述

每一种平台的解释器是不同的,但是实现的虚拟机是相同的。

JIT(Just In Time)编译器:部分的.java代码通过JIT编译器进行编译,实时将一些热点代码编译成机器码,不同于单纯进行编译执行,提高了效率。

Java与C++的区别

  • 都是面向对象的语言,都支持继承、封装和多态
  • Java不提供指针来直接访问内存,程序内存更加安全

  • Java的类是单继承的,C++支持多重继承,虽然Java中的类不可以多继承,但是其接口是可以多继承的。

  • Java中有自动内存管理机制,不需要程序员手动释放内存。
目录
相关文章
|
6月前
|
IDE Oracle Java
java基础教程(1)-Java概述和相关名词解释
【4月更文挑战第1天】Java是1995年Sun Microsystems发布的高级编程语言,以其跨平台特性著名。它介于编译型和解释型语言之间,通过JVM实现“一次编写,到处运行”。Java有SE、EE和ME三个版本,分别针对标准、企业及嵌入式应用。JVM是Java虚拟机,确保代码在不同平台无需重编译。JRE是运行环境,而JDK包含开发工具。要安装Java开发环境,可从Oracle官网下载JDK,设置JAVA_HOME环境变量并添加到PATH。
|
6月前
|
网络协议 算法 Java
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
【Java网络编程】网络编程概述、UDP通信(DatagramPacket 与 DatagramSocket)
68 3
|
2月前
|
安全 Java API
Java 18 概述:新特性一览
Java 18 作为 Java 平台的最新版本,引入了多项令人振奋的新特性和改进,包括模式匹配、记录类型、流库改进、外部函数与内存 API 以及并发处理增强。这些新功能不仅提升了开发者的生产力,还显著增强了 Java 的性能和安全性。本文将详细介绍 Java 18 的主要新特性,并通过代码示例帮助读者更好地理解和应用这些功能。
|
3月前
|
存储 Oracle Java
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
01 Java概述基础与计算机基础(DOS+进制+原码反码补码)
43 17
|
3月前
|
存储 算法 Oracle
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
19 Java8概述(Java8概述+lambda表达式+函数式接口+方法引用+Stream+新时间API)
67 8
|
3月前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
69 4
|
5月前
|
设计模式 算法 Java
Java设计模式:核心概述(一)
Java设计模式:核心概述(一)
|
6月前
|
开发框架 IDE Oracle
Java开发与运行环境概述
Java开发与运行环境概述
78 2
|
6月前
|
存储 Java 索引
Java数组概述与静态初始化技术
Java数组概述与静态初始化技术
41 1
|
6月前
|
存储 Java
【JAVA学习之路 | 进阶篇】集合框架概述
【JAVA学习之路 | 进阶篇】集合框架概述