【熬夜爆肝版】JAVA基础入门专栏——1.JAVA开发入门

JAVA开发入门

  • 1、Java概述
    • 1)起源
    • 2)特点
    • 3)应用领域
  • 2、JDK
    • 1)定义
    • 2)作用
    • 3)组成
    • 4)JDK版本与兼容性
    • 5)JDK的安装与配置
    • 6)JDK的发行版
  • 3、系统环境变量
    • 1)定义
    • 2)作用
    • 3)类型
    • 4)Windows系统中的设置方法
    • 5)常见的系统环境变量
    • 6)环境变量的读取和使用
    • 7)注意事项
  • 4、Java程序运行机制
    • 1)编写java代码
    • 2)编译Java代码
    • 3)加载字节码文件
    • 4)执行字节码文件
    • 5)JVM优化和内存管理
    • 6)运行java程序
    • 7)异常处理
  • 5、总结

前言:本章节的思维导图

在这里插入图片描述

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)特点

  1. 简单性:Java语言设计简洁、清晰,易于学习和使用。它摒弃了一些复杂的特性,注重代码的可读性和可维护性。

  2. 面向对象:Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这使得编写和管理复杂的软件项目更加方便和高效。
    在这里插入图片描述

通俗讲:面向对象就是将问题拆解成由对象组成的模块,每个对象都有自己的属性(数据)和行为(方法),并通过对象之间的交互来完成任务。可以以一个简单的例子来说明面向对象的概念。假设我们要设计一个汽车管理系统,我们可以将汽车看作是一个对象,这个对象具有一些特征(例如颜色、品牌、车速等)和行为(例如启动、加速、刹车等)。在面向对象的设计中,我们可以创建一个“汽车”类来定义汽车的属性和方法,并根据需要创建多个汽车对象。

  1. 跨平台性:Java具有很强的平台独立性,一次编写,到处运行。Java程序在不同的操作系统上可以保持良好的兼容性,只需在目标平台上安装Java虚拟机(JVM)即可运行。
    在这里插入图片描述

通俗讲:假设你开发了一个桌面应用程序,最初是为Windows操作系统设计的。但是后来,你希望这个应用程序也能在Mac操作系统上运行。如果你的应用程序具备跨平台性,你只需要进行少量的修改或适配,就可以使它能够在Mac上正常运行,而无需从头开始重新编写。

  1. 安全性:Java内置了许多安全机制,如内存管理、异常处理和安全沙箱等,可以有效地防止一些常见的安全漏洞和错误。

  2. 高性能:Java通过即时编译器(Just-In-Time Compiler)将字节码文件转换为本地机器码,在运行时实现高效的执行速度。此外,Java的垃圾回收机制可以自动管理内存,减轻开发人员的负担。

  3. 多线程支持:Java提供了内置的多线程支持,使得编写并发程序更加容易。多线程可以实现任务的并行执行,提高程序的执行效率。

通俗讲:我们可以将线程理解为程序中独立执行的一段代码,每个线程都有自己的指令序列和执行上下文。在单线程编程中,程序按照顺序依次执行每条指令,只能顺序地执行任务,如果遇到耗时的操作,程序会被阻塞住,不能进行其他操作。而在多线程编程中,程序可以创建多个线程,在同一时刻并发地执行多个任务,不会出现阻塞的情况。

  1. 大型生态系统: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为例

  • 在“我的电脑”属性页面中,点击“高级系统设置”;

![[Pasted image 20231006154311.png]]

  • 在“高级”选项卡中,点击“环境变量”;

![[Pasted image 20231006154351.png]]

  • 在“系统变量”中添加、编辑或删除变量。

![[Pasted image 20231006154442.png]]

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。在了解以上就可以继续学习了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149980.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测

回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测 目录 回归预测 | MATLAB实现PSO-SVR粒子群优化支持向量机回归多输入单输出预测预测效果基本介绍模型描述程序设计预测效果 <

Chrome(谷歌浏览器)如何关闭搜索栏历史记录

目录 问题描述解决方法插件解决&#xff08;亲测有效&#xff09;自带设置解决步骤首先打开 地址 输入&#xff1a;chrome://flags关闭浏览器&#xff0c;重新打开Chrome 发现 已经正常 问题描述 Chrome是大家熟知的浏览器&#xff0c;但是搜索栏的历史记录如何自己一条条的删…

时序预测 | MATLAB实现EMD-iCHOA+GRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测

时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测 目录 时序预测 | MATLAB实现EMD-iCHOAGRU基于经验模态分解-改进黑猩猩算法优化门控循环单元的时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 EMD-iCHOAGR…

LVGL_基础控件滚轮roller

LVGL_基础控件滚轮roller 1、创建滚轮roller控件 /* 创建一个 lv_roller 部件(对象) */ lv_obj_t * roller lv_roller_create(lv_scr_act()); // 创建一个 lv_roller 部件(对象),他的父对象是活动屏幕对象// 将部件(对象)添加到组&#xff0c;如果设置了默认组&#xff0c…

MFC文本输出学习

void CTxttstView::OnDraw(CDC* pDC) {CTxttstDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;pDC->SetBkColor(RGB(0,0,0));pDC->TextOut(50, 50, "一段文字");pDC->SetBkColor(RGB(255,255,255))…

Linux Vi编辑器基础操作指南

Linux Vi编辑器基础操作指南 Linux中的Vi是一个强大的文本编辑器&#xff0c;虽然它有一些陡峭的学习曲线&#xff0c;但一旦掌握了基本操作&#xff0c;它就变得非常高效。以下是Vi编辑器的一些基本用法&#xff1a; 打开Vi编辑器&#xff1a; vi 文件名退出Vi编辑器&#xff…

kafka初体验基础认知部署

kafka 基础介绍 Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理高吞吐量的数据流&#xff0c;并将数据实时地分…

【状态估计】将变压器和LSTM与卡尔曼滤波器结合到EM算法中进行状态估计(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

数据挖掘(3)特征化

从数据分析角度&#xff0c;DM分为两类&#xff0c;描述式数据挖掘&#xff0c;预测式数据挖掘。描述式数据挖掘是以简介概要的方式描述数据&#xff0c;并提供数据的一般性质。预测式数据挖掘分析数据建立模型并试图预测新数据集的行为。 DM的分类&#xff1a; 描述式DM&#…

剑指offer——JZ26 树的子结构 解题思路与具体代码【C++】

一、题目描述与要求 树的子结构_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入两棵二叉树A&#xff0c;B&#xff0c;判断B是不是A的子结构。&#xff08;我们约定空树不是任意一个树的子结构&#xff09; 假如给定A为{8,8,7,9,2,#,#,#,#,4,7}&#xff0c;B为{8,9,2}&…

第一章 visual studio下载安装

一、官网下载 地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/ 点击免费visual studio 二、安装 运行下载好的exe文件&#xff0c;自定义安装目录 三、选择需要的组件安装 只需要选择标记组件&#xff0c;然后点击安装 等待安装完成就行 四、重启电脑 安装完之后…

【PyCharm】SSH连接远程服务器,代码能跑但导入的库被标红的解决方案

文章目录 一、问题描述二、解决方案一三、解决方案二 一、问题描述 在 PyCharm 中修改SSH连接的远程服务器的 Python 解释器后&#xff0c;导入的第三方库会被标红&#xff0c;如图1所示&#xff1a; 图1 但此时程序仍然可以正常执行&#xff1a; 图2 二、解决方案一 在 Py…

第三章、运输层

文章目录 3.1 概述和运输层服务3.1.1 运输层和网络层的关系3.1.2 因特网运输层概述 3.2 多路复用与多路分解3.3 无连接运输&#xff1a;UDP3.4 可靠数据传输原理3.4.1构造可靠数据传输协议rdt1.0rdt2.xrdt3.0 3.4.2 流水线可靠数据传输协议3.4.3 回退N步3.4.4选择重传 3.5 面向…

4.MySql安装配置(更新版)

MySql安装配置 无论计算机是否有安装其他mysql&#xff0c;都不要卸载。 只要确定大版本是8即可&#xff0c;8.0.33 8.0.34 差别不大即可。 MySql下载安装适合电脑配置属性有关&#xff0c;一次性安装成功当然是非常好的&#xff0c;因为卸载步骤是非常麻烦的 如果第一次安装…

面试高频手撕算法 - 01背包系列

1. 前言 为什么要专门去搞一下这个背包问题呢 ? 因为作者已经在两场面试中吃了这个亏, 尤其是在面深信服的测开岗的时候, 一面的难度适中, 加上面试官也没为难我, 侥幸让我过了. (以下是一面问题) 二面的时候, 主要问了项目和手撕算法. 当时项目个人觉得面的还不错, 因为本人是…

基于SpringBoot的电影评论网站

目录 前言 一、技术栈 二、系统功能介绍 电影信息管理 电影评论回复 电影信息 用户注册 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评…

八、【快速选择工具组】

文章目录 对象选择工具快速选择工具魔棒工具 对象选择工具 当我们选择对象选择工具时&#xff0c;需要先注意上边有一个循环的圆&#xff0c;它会进行内容识别&#xff0c;当识别完成会停止旋转。这个时候我们按住n键&#xff0c;或者将鼠标放上对应的图形时会出现选中的颜色。…

lambda表达式在实际开发中的使用

作为写代码已经两年的程序员了&#xff0c;lambda已经是再熟悉不过了。其实在众多的编程语言中&#xff0c;python javascript java中都有lambda的影子。包括比较新的编程语言golang&#xff0c;到最后发现其实各种语言的语法和特性都是相互抄袭的&#xff0c;所以在接触新技术…

铝合金分类及相关总结

1 铝合金常识 铝合金是工业中应用最广泛的一类有色金属结构材料&#xff0c;在航空、航天、汽车、机械制造、船舶及化学工业中已大量应用。对于常用的铝合金&#xff0c;我们通常根据其铝及其他元素的含量&#xff0c;将其分为两大类&#xff0c;分别是纯铝和铝合金。对这两大类…