当前位置:

首页 > 编程开发 > 【无标题】Java笔记——Java语言概述_java概述

【无标题】Java笔记——Java语言概述_java概述

Ja va,由SUN(斯坦福大学网络公司)于1995年推出,是一门面向Internet的高级编程语言。它最初之所以能迅速走红,是因为Ja va程序可以在Web浏览器中运行——这些程序被称为Ja va小程式(applet),能够用现代图形界面与用户交互,直接嵌入在HTML代码里。随着Ja va技术在W

Ja va,由SUN(斯坦福大学网络公司)于1995年推出,是一门面向Internet的高级编程语言。它最初之所以能迅速走红,是因为Ja va程序可以在Web浏览器中运行——这些程序被称为Ja va小程式(applet),能够用现代图形界面与用户交互,直接嵌入在HTML代码里。随着Ja va技术在Web领域不断成熟,它已经成为Web应用开发的首选语言。2009年,Oracle公司以74亿美元收购了SUN。

Ja va的诞生

为什么会有Ja va?

Ja va之父James Gosling的团队在开发“Green”项目时,渐渐对C语言感到不满——缺少垃圾回收系统,可移植性、安全性、分布式编程和多线程支持也不够理想。更关键的是,他们希望创造一种能够轻松移植到各种设备上的平台。于是,Ja va应运而生。

Ja va与C/C++的关系

Ja va确实从C和C++那里继承了很多东西,甚至可以说它是类C语言家族的发展和衍生。变量声明、操作符形式、参数传递、流程控制等,几乎和C/C++一模一样。但它又是一个纯粹的面向对象语言,继承了C++面向对象技术的核心。同时,Ja va果断砍掉了C语言中容易引发问题的指针(用引用取代)、运算符重载、多重继承(改用接口),并加入了垃圾回收器来自动管理不再被引用的对象所占的内存。到了JDK 1.5,又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等特性。

Ja va技术体系平台

Ja va一共发展出了几个不同的平台版本:

  • Ja va SE(标准版):面向桌面级应用,提供完整的Ja va核心API,以前叫J2SE。
  • Ja va EE(企业版):专门为开发企业环境下的应用程序设计,包含Servlet、JSP等技术,主要针对Web应用,以前叫J2EE。
  • Ja va ME(小型版):支持Ja va程序运行在手机、PDA等移动终端上,API有所精简,并加入了针对移动终端的支持,以前叫J2ME。
  • Ja va Card:支持小程序运行在智能卡等小内存设备上。

Ja va的应用领域

从应用方向来看,Ja va的覆盖面相当广:

  • 企业级应用:大企业的软件系统、各类网站,得益于Ja va的安全机制和跨平台优势,在分布式系统开发中应用广泛,覆盖金融、电信、交通、电子商务等。
  • Android平台:Android应用就是用Ja va写的,Android开发水平的高低,很大程度上取决于Ja va语言核心能力是否扎实。
  • 大数据平台:Hadoop、Spark、Storm、Flink等框架,以及Flume、Kafka、Sqoop等中间件,大部分是用Ja va编写的,同时提供Ja va、Scala、Python、R等语言的API供编程。
  • 移动领域:消费和嵌入式设备,包括手机、PDA、机顶盒、汽车通信设备等。

里程碑式版本

2004年,JDK 1.5发布,为了突出其重要性,直接更名为JDK 5。2014年发布的JDK 8.0,是继JDK 5.0以来变化最大的版本。

Ja va语言的主要特性

  • 易学:语法与C/C++接近,大多数程序员能很快上手。
  • 强制面向对象:提供类、接口、继承等原语,只支持类的单继承,但支持接口间的多继承,以及类与接口的实现机制(implements)。
  • 分布式:从网络应用编程接口(ja va.net)到RMI(远程方法激活),都为分布式应用开发提供了强大支持。
  • 健壮:强类型机制、异常处理、自动垃圾收集,再加上抛弃了指针,这些都让Ja va程序更加稳定。
  • 安全:在网络环境中运行时,Ja va通过安全防范机制(ClassLoader)分配不同名字空间防止本地的同名类被替代,还进行字节代码检查。
  • 体系结构中立:源文件(.ja va)被编译成字节码(.class),在任何实现了Ja va平台的系统上都能运行。
  • 解释型:字节码格式由各平台上的解释器执行。
  • 性能适中:相比纯解释型的高级脚本语言,Ja va的性能还是要好一些的。
  • 原生多线程:线程是Thread类或其子类创建的特殊对象,语言层面就支持。

Ja va语言的特点

面向对象

两个基本概念:类、对象。三大特性:封装、继承、多态。

健壮性

吸收了C/C++的优点,去掉了指针、内存申请与释放等容易出问题的部分,提供了相对安全的内存管理和访问机制。

跨平台性

“Write once, Run Anywhere”不是空话。原理很简单:在需要运行Ja va应用的操作系统上,先安装一个Ja va虚拟机(JVM),由JVM负责解释执行字节码。有了JVM,同一个Ja va程序在不同操作系统中都能正常运行。

Ja va基础知识图谱

在这里插入图片描述

Ja va的两种核心机制

Ja va虚拟机(JVM)

JVM是一个虚拟的计算机,有指令集并使用不同的存储区域,负责执行指令、管理数据、内存和寄存器。不同的平台对应不同的虚拟机。只有某个平台提供了对应的JVM,Ja va程序才能在上面运行。JVM屏蔽了底层运行平台的差异,实现了“一次编译,到处运行”。

在这里插入图片描述

垃圾收集机制(GC)

① 不再使用的内存空间会被回收——这就是垃圾回收。在C/C++中,由程序员负责回收无用内存;Ja va则提供了一条系统级线程跟踪存储空间分配情况,在JVM空闲时检查并释放可被释放的存储空间。程序员完全不必操心。

② 垃圾回收在Ja va程序运行过程中自动进行,程序员无法精确控制和干预。

③ 不过,Ja va程序仍然可能出现内存泄漏和内存溢出问题——是的,你没听错!

Ja va语言的运行环境

什么是JDK和JRE?

JDK(Ja va Development Kit):Ja va开发工具包,提供给开发人员使用,包含开发工具(如ja vac.exe编译工具、jar.exe打包工具等),也包括JRE。安装JDK后就不必再单独安装JRE了。

JRE(Ja va Runtime Environment):Ja va运行环境,包括JVM和Ja va程序所需的核心类库。如果只是想运行一个开发好的Ja va程序,只需要安装JRE即可。

简单来说,用JDK开发的Ja va程序,交给JRE去运行。

JDK、JRE、JVM的关系

在这里插入图片描述在这里插入图片描述

Ja va程序编写-编译-运行过程

  1. 编写:将Ja va代码保存在以“.ja va”结尾的源文件中。
  2. 编译:使用ja vac.exe命令编译源文件,生成字节码文件“.class”。格式:ja vac 源文件名.ja va
  3. 运行:使用ja va.exe命令解析运行字节码文件。格式:ja va 类名

在这里插入图片描述

常见问题

如果配置了classpath环境变量,可能会导致运行ja va命令时找不到文件。

在这里插入图片描述在这里插入图片描述

环境变量path配置的作用

每次执行Ja va工具都要先进入bin目录,实在太麻烦。能不能在任意目录下直接执行Ja va工具呢?当然可以。根据Windows系统查找可执行程序的原理,只要把Ja va工具所在的路径添加到path环境变量中,系统就会自动帮我们找到程序。

配置方法

  1. 我的电脑 → 属性 → 高级系统设置 → 环境变量。
  2. 编辑path环境变量,在变量值开头加上Ja va工具所在目录。
  3. 打开DOS命令行,在任意目录下敲入ja vac,如果出现了ja vac的参数信息,说明配置成功。

在这里插入图片描述

Ja va的一些注意事项

  • 在一个Ja va源文件中可以声明多个class,但只能最多有一个类声明为public,且public类的类名必须与源文件名相同。例如下图:

在这里插入图片描述在这里插入图片描述

  • 程序的入口是main()方法,格式是固定的。
  • System.out.println():先输出数据,然后换行;System.out.print():只输出数据。
  • 每一行执行语句都以“;”结束。
  • 编译以后,会生成一个或多个字节码文件,文件名与源文件中的类名相同。
  • Ja va语言严格区分大小写。
  • 大括号都是成对出现的,缺一不可。

良好的编程风格

正确的注释和注释风格

  • 使用文档注释来注释整个类或整个方法。
  • 如果注释方法中的某一个步骤,使用单行或多行注释。

正确的缩进和空白

  • 使用一次tab操作实现缩进。
  • 运算符两边习惯性各加一个空格,比如 2 + 4 * 5。

块的风格

Ja va API源代码选择了行尾风格。

在这里插入图片描述

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
编程开发 Java
相关文章 更多
解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

PHP递归中static变量与引用传递的常见陷阱及调试
PHP递归中static变量与引用传递的常见陷阱及调试

本文分析PHP递归中static变量导致的状态污染及引用传递引发的共享数据修改问题。提供具体的代码复现、缓存键设计建议及调试打印技巧,帮助开发者避免隐蔽的逻辑错误。

PHP递归性能优化技巧与迭代替代方案
PHP递归性能优化技巧与迭代替代方案

解析PHP递归函数在树形数据处理中的性能瓶颈,提供预加载数据消除I/O、使用显式栈替代深层递归的实战方案,帮助开发者在代码可读性与执行效率间做出合理取舍。

Java测试中怎么使用Mockito模拟依赖对象
Java测试中怎么使用Mockito模拟依赖对象

详细讲解在Java单元测试中如何使用Mockito模拟依赖对象,包括引入依赖、创建Mock、打桩返回值、行为验证以及Mock与Spy的核心差异和常见陷阱排查。

链表删除节点的时间复杂度是多少及其详细分析
链表删除节点的时间复杂度是多少及其详细分析

详细分析链表删除节点的时间复杂度,深入探讨单链表与双向链表在不同已知前提下的查找与删除开销,并结合完整代码与清晰图解进行对比总结。

codex如何配置模型参数及文件设置教程
codex如何配置模型参数及文件设置教程

想知道如何让AI写出的代码更贴合你的习惯?本文手把手教你在VS Code中调整Codex相关模型参数,通过修改配置文件优化温度值和令牌限制,解决代码建议不准确或响应慢的问题。

Claude Code AI编程工具实力揭秘与编程助手实测
Claude Code AI编程工具实力揭秘与编程助手实测

通过实测展示Claude Code在终端中如何理解自然语言指令、自动修改代码文件并处理复杂编程任务,帮助开发者评估其实际辅助能力。

winforms教程自学入门与基础开发步骤详解
winforms教程自学入门与基础开发步骤详解

本教程详细讲解如何使用Visual Studio创建WinForms项目,通过添加按钮和标签控件并编写点击事件代码,实现一个基础的计数器功能,适合C#初学者快速上手Windows窗体应用开发。

Cursor自动补全设置教程教你快速开启代码补全功能
Cursor自动补全设置教程教你快速开启代码补全功能

详解Cursor编辑器中自动补全功能的开启与优化设置,涵盖Tab触发机制、上下文窗口调整及模型切换,帮助开发者解决补全延迟、干扰大等问题,提升编码流畅度。

pandas的数据格式怎么转换和设置方法教程
pandas的数据格式怎么转换和设置方法教程

详解Pandas中数据格式转换的核心方法,包括astype强制转换、to_numeric容错处理及日期解析技巧,解决常见类型错误并提升数据处理效率。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。