JAVA开发入门
前言:本章节的思维导图
1、Java概述
1)起源
Java是由Sun Microsystems(现在是Oracle)的詹姆斯·高斯林(James Gosling)和他的团队开发的。最初,Java是为家电设备编写控制程序而设计的,并且由于其平台无关性和面向对象的特点而受到了广泛的关注。
你知道为什么java的图标是一杯热咖啡的样子吗
Java的起源可以追溯到20世纪90年代初期,当时Sun Microsystems公司的一群工程师正在研究新的技术,以便在家电和计算机之间进行数据传输。这个项目被称为"绿色计划"。
在研究中,这些工程师意识到需要一种新的编程语言,可以让程序在不同的计算机和家电设备之间进行交互。他们开始着手开发一种名为Oak的语言,以便实现这个目标。
Oak最初是被设计成一种嵌入式系统的编程语言,专门用于家电和其他嵌入式设备上。但是随着Web的兴起,Oak开始吸引更广泛的开发者的注意力,Sun公司决定将它改名为Java,并将其推广为一种适用于互联网的通用编程语言。
Java的命名灵感来自于创始人James Gosling所在公司对于喝咖啡的热衷,他们认为Java这个名字听起来非常有活力和欢快,可以给人一种积极的感受。
2)特点
-
简单性:Java语言设计简洁、清晰,易于学习和使用。它摒弃了一些复杂的特性,注重代码的可读性和可维护性。
-
面向对象:Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这使得编写和管理复杂的软件项目更加方便和高效。
通俗讲:面向对象就是将问题拆解成由对象组成的模块,每个对象都有自己的属性(数据)和行为(方法),并通过对象之间的交互来完成任务。可以以一个简单的例子来说明面向对象的概念。假设我们要设计一个汽车管理系统,我们可以将汽车看作是一个对象,这个对象具有一些特征(例如颜色、品牌、车速等)和行为(例如启动、加速、刹车等)。在面向对象的设计中,我们可以创建一个"汽车"类来定义汽车的属性和方法,并根据需要创建多个汽车对象。
- 跨平台性:Java具有很强的平台独立性,一次编写,到处运行。Java程序在不同的操作系统上可以保持良好的兼容性,只需在目标平台上安装Java虚拟机(JVM)即可运行。
通俗讲:假设你开发了一个桌面应用程序,最初是为Windows操作系统设计的。但是后来,你希望这个应用程序也能在Mac操作系统上运行。如果你的应用程序具备跨平台性,你只需要进行少量的修改或适配,就可以使它能够在Mac上正常运行,而无需从头开始重新编写。
-
安全性:Java内置了许多安全机制,如内存管理、异常处理和安全沙箱等,可以有效地防止一些常见的安全漏洞和错误。
-
高性能:Java通过即时编译器(Just-In-Time Compiler)将字节码文件转换为本地机器码,在运行时实现高效的执行速度。此外,Java的垃圾回收机制可以自动管理内存,减轻开发人员的负担。
-
多线程支持:Java提供了内置的多线程支持,使得编写并发程序更加容易。多线程可以实现任务的并行执行,提高程序的执行效率。
通俗讲:我们可以将线程理解为程序中独立执行的一段代码,每个线程都有自己的指令序列和执行上下文。在单线程编程中,程序按照顺序依次执行每条指令,只能顺序地执行任务,如果遇到耗时的操作,程序会被阻塞住,不能进行其他操作。而在多线程编程中,程序可以创建多个线程,在同一时刻并发地执行多个任务,不会出现阻塞的情况。
- 大型生态系统:Java拥有庞大且活跃的开发社区和生态系统,有着丰富的开发工具、框架和第三方库供开发者使用,能够满足各种不同需求的应用开发。
3)应用领域
- 企业级应用开发:Java EE(Enterprise Edition)提供了一系列的技术和规范,用于开发大型企业级应用。
例如:电子电子、人力资源管理系统、大数据分析平台、企业资源计划系统等等
- 桌面应用程序:Java提供了AWT、Swing和JavaFX等库,用于开发图形用户界面的桌面应用程序。
例如:音视频播放器、邮件客户端等等
- 移动应用开发:通过Java ME(Micro Edition),可以开发运行在移动设备上的应用程序,如手机、PDA等。
- 嵌入式系统开发:Java可以用于开发嵌入式系统,如家电、智能卡等。
- Web应用开发:Java提供了各种用于开发Web应用的技术和框架,如Servlet、JSP、Spring、Hibernate等。
2、JDK
1)定义
JDK
(Java Development Kit)是Java开发工具包的缩写,它是Java开发的核心组件之一
2)作用
JDK是用于开发和编译Java应用程序的软件包。它包含了Java编译器(javac)、Java运行时环境(JRE)以及一系列辅助工具和类库
3)组成
- Java编译器(javac):用于将Java源代码编译为字节码文件(.class文件),供Java虚拟机(JVM)执行。
- Java运行时环境(JRE):包含了Java虚拟机(JVM)和Java类库,用于执行和运行Java程序。
- 辅助工具:JDK包含了一些实用的辅助工具,如Java文档生成工具(javadoc)、Java调试器(jdb)等。
- 类库:JDK提供了丰富的类库,包括Java标准库(如java.lang、java.util等)、Java图形界面库(如AWT、Swing)以及其他各种扩展库。
4)JDK版本与兼容性
JDK有多个版本,每个版本都有不同的功能和改进。新版本的JDK通常向后兼容旧版本的代码,但也可能引入一些不兼容的变化。为了确保稳定和兼容性,开发人员应该选择适合自己项目的JDK版本,并遵循相应的迁移和升级策略。
5)JDK的安装与配置
要使用JDK进行Java开发,需要先安装JDK并正确配置开发环境。其中包括设置JDK的路径、设置Java开发工具(如Eclipse、IntelliJ IDEA等)的相关配置、配置编译选项等。
下载
官网
- 在官网首页菜单栏,点击Products,在Software中找到Java,单击该选项
- 在界面中往下滑,选择Java SE,找到Oracle JDK,点击进入JDK下载界面
- 在该界面可以找到各种版本的JDK,选择自己需要的版本进行下载即可
安装
- 下载完JDK到本地后,找到该文件,双击运行JDK安装程序
- 注意安装的路径不能带有中文
- 自行找一个教程来进行安装即可,网上很多
6)JDK的发行版
- Oracle JDK:Oracle公司是Java的主要维护者和发布者,他们提供了Oracle JDK,是Java开发中最常用和官方支持的版本。
- OpenJDK:OpenJDK是一个开源的JDK实现,由Java社区开发和维护。很多Linux发行版都使用OpenJDK作为默认的Java开发工具。
3、系统环境变量
1)定义
系统环境变量指的是在操作系统中定义的一些全局变量,它们的值可被所有进程共享和访问。也就是说,在你的电脑上配置了某个环境变量,那么在任意目录下终端都可以执行相对应的命令,比如说,你配置了java_JDK的环境变量,那么可以使用
java -version
命令在任何目录下打开的终端来查看jdk版本。没有配置系统环境变量的话,只能在安装jdk
的目录下打开终端执行相关的命令。
2)作用
环境变量可以设置一些全局的配置信息,如程序存放路径、默认字体、编码等。它们用于告诉操作系统和应用程序在执行时需要哪些配置信息和资源。
3)类型
- 系统环境变量:系统级别的环境变量,对所有用户有效,包括操作系统和安装的软件。
- 用户环境变量:每个用户都有一个独立的环境变量,只对当前用户有效,不影响其他用户。
4)Windows系统中的设置方法
window11为例
- 在"我的电脑"属性页面中,点击"高级系统设置";
- 在"高级"选项卡中,点击"环境变量";
- 在"系统变量"中添加、编辑或删除变量。
5)常见的系统环境变量
-
PATH定义系统搜索执行文件的路径。在Windows中,当输入命令时,系统会按照PATH环境变量中的路径依次查找对应的可执行文件。
-
HOME定义当前用户的主目录。
-
TEMP定义系统临时文件存放的目录,一些程序在运行过程中需要创建临时文件,可以使用该环境变量指定保存位置。
-
USERPROFILE定义当前用户的个人资料文件夹路径。
-
JAVA_HOME定义Java开发环境的安装路径,一些Java相关的应用程序会使用该环境变量来查找JRE或JDK的路径。
-
CLASSPATH定义Java类的搜索路径,当Java虚拟机需要加载类时,会按照CLASSPATH环境变量中指定的路径依次查找。
-
OS定义操作系统类型,值可以是Windows、Linux、Unix等。
-
PATHEX定义系统的可执行文件后缀名,默认情况下Windows中包含.exe、.bat、.cmd等后缀名。
6)环境变量的读取和使用
在应用程序中可以通过编程方式读取环境变量的值,如使用System.getenv()方法读取环境变量。读取后可以根据不同的需求使用环境变量的值,如拼接路径、加载库文件等。
7)注意事项
- 修改环境变量时需谨慎,错误的修改可能会影响系统或造成软件无法正常工作;
- 环境变量的使用需要依据具体操作系统和应用程序进行设置和调整;
- 环境变量是全局的,因此需注意变量名的唯一性,避免重复或冲突。
4、Java程序运行机制
1)编写java代码
开发人员使用Java编程语言编写源代码文件(.java文件),其中包含类、方法和变量等程序逻辑。
2)编译Java代码
使用Java编译器(javac)将源代码文件编译成字节码文件(.class文件)。字节码文件是Java虚拟机(JVM)可执行的中间代码,它包含了与特定平台无关的指令序列。对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,该文件可以被Java虚拟机(JVM)的解释器正常读取。
3)加载字节码文件
Java虚拟机负责将字节码文件加载到内存中,并对类进行解析、验证和准备工作。这些步骤包括检查字节码文件的格式和语义规则,确保代码的正确性和安全性。
4)执行字节码文件
Java虚拟机通过解释器或即时编译器将字节码文件转换成机器代码,并执行程序逻辑。解释器逐条解释字节码指令,逐步执行程序;而即时编译器在运行时将热点代码(经常执行的代码)编译成本地机器代码,以提高执行效率。
5)JVM优化和内存管理
Java虚拟机通过各种优化技术(如逃逸分析、即时编译等)来提高程序的执行效率。同时,JVM还负责自动管理内存,包括垃圾回收和内存分配等。
6)运行java程序
在Java虚拟机上运行的Java程序可以是独立的应用程序,也可以是在Web容器中执行的Web应用程序。Java提供了丰富的类库和API,可以用于开发各种类型的应用,包括桌面应用、移动应用、Web应用和企业级应用等。
独立的Java应用程序需要使用命令行来启动,通常为java命令加上带有main方法的类名。而Web应用程序则需要部署到Web服务器中,如Tomcat、Jetty等,由Web服务器来管理Java虚拟机的运行环境,通过HTTP协议与客户端进行交互,实现Web应用的访问和响应。
7)异常处理
在Java应用程序的开发过程中,异常处理十分重要,Java程序在运行过程中可能抛出异常,如空指针异常、数组越界异常等。开发人员可以使用try-catch语句来捕获并处理这些异常,保证程序的稳定性和可靠性。
5、总结
以上主要介绍java入门的一些需要了解的知识点,对于以上,只需要懂得下载安装jdk并进行系统环境变量配置,下载自己进行java开发所用的编辑器,如:IDEA、eclipse、等,这里推荐入门是社区版的IDEA。在了解以上就可以继续学习了。