Java面向对象程序设计 课件全套 项目1-8 搭建Java开发环境 - 项目 8 从雷霆战机项目走进界面编程_第1页
Java面向对象程序设计 课件全套 项目1-8 搭建Java开发环境 - 项目 8 从雷霆战机项目走进界面编程_第2页
Java面向对象程序设计 课件全套 项目1-8 搭建Java开发环境 - 项目 8 从雷霆战机项目走进界面编程_第3页
Java面向对象程序设计 课件全套 项目1-8 搭建Java开发环境 - 项目 8 从雷霆战机项目走进界面编程_第4页
Java面向对象程序设计 课件全套 项目1-8 搭建Java开发环境 - 项目 8 从雷霆战机项目走进界面编程_第5页
已阅读5页,还剩637页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一搭建Java开发环境《Java面向对象程序设计》项目一搭建Java开发环境【引导案例】某头部电商平台在“双11”大促期间,面对每秒数万笔交易请求,支付系统因开发环境配置差异频繁崩溃,部分服务节点因JDK版本不兼容触发线程死锁,另一些节点因未优化JVM参数导致内存溢出,短短1小时损失超千万订单。事后排查发现,技术团队中开发者各自为战,JDK版本各不相同,环境混乱导致核心业务模块在高压下全面失效。所以总结本次事故的核心原因就是技术团队成员对Java开发环境的搭建缺乏统一的规范与熟练的操作流程,而影响了开发进度与协作效率。项目一搭建Java开发环境【引导案例】声控、光控功能由于电商网站涉及到大量并发用户访问、高频的数据交互以及复杂的业务逻辑处理,对于开发环境的性能和稳定性要求极高。若开发环境存在缺陷或配置不合理,可能会在后续开发过程中引发诸如程序运行缓慢、内存泄漏等潜在问题,给项目的按时交付带来巨大风险。所以,成功的Java环境配置是让工程师编写代码的前提条件。职业能力目标01任务描述与要求02知识储备03任务实施04AI任务赋能05任务一JDK的安装与环境变量的设置

熟练搭建Java开发环境,包括JDK的安装与配置。

熟练掌握环境变量配置方法。

通过JDK安装过程,理解Java虚拟机跨平台运行

根据系统类型选择对应版本JDK职业能力目标01知识目标职业能力目标01任务描述与要求02知识储备03任务实施04AI任务赋能05任务一JDK的安装与环境变量的设置任务描述与要求02本任务聚焦于Java开发环境的搭建以及基础语法的学习与实践。开发环境是程序开发的根基,只有正确安装与配置JDK,并熟练掌握Java基础语法,才能为后续面向对象程序设计的学习铺平道路。

完成JDK的下载和安装。

完成环境变量的配置。

验证环境变量是否配置成功。任务要求任务描述职业能力目标01任务描述与要求0203知识储备任务实施04AI任务赋能05任务一JDK的安装与环境变量的设置

知识储备03Java简介与发展历程JDK的简介和环境变量的介绍12Java简介与发展历程1JAVA简介JDK、JRE、JVM与JAVA的关系203

Java简介Java由SunMicrosystems公司于1995年推出,现由Oracle公司主导发展。它是一种具有简单性、面向对象、分布式、解释执行、健壮性、安全性、跨平台性、多线程等众多优异特性的高级编程语言,在互联网、移动应用、企业级应用等众多领域均有广泛且深入的应用。其“一次编写,到处运行”的理念,借助Java虚拟机(JVM)实现了跨平台的壮举,极大地拓宽了程序的适用范围与开发者的创作空间。2JAVA简介JDK、JRE、JVM与JAVA的关系1Java简介与发展历程03

JDK、JRE、JVM与JAVA的关系JDK---JavaDevelopmentKit,是Java开发的核心工具包,是开发者进行Java程序开发、编译、运行的基础环境。它的核心组成包含JRE(JavaRuntimeEnvironment)、编译器(javac.exe)、解释器(java.exe)、打包工具(jar.exe)等开发工具,以及Java基础类库03

JDK、JRE、JVM与JAVA的关系JRE---JavaRuntimeEnvironment,Java程序运行的底层环境,为已编译的Java程序提供运行时支持。它的核心组成包含JVM(JavaVirtualMachine)和Java核心类库(如java.lang、java.util等)JVM---JavaVirtualMachine,Java虚拟机,是一种抽象计算模型,是Java实现跨平台的核心。它的核心组成包含字节码解释器、JIT编译器、内存管理(堆、栈等)等组件03

JDK、JRE、JVM与JAVA的关系

知识储备0321Java简介与发展历程JDK的简介和环境变量的介绍1JDK的简介环境变量的介绍2JDK的简介和环境变量的介绍JDK的简介03JDK(JavaDevelopmentKit)是Java语言的软件开发工具包,用于开发、编译和运行Java应用程序。(1)定义与功能:JDK是Java语言的核心开发环境,包含Java运行环境(JRE)、Java工具和Java基础类库。它允许开发者编写、编译和运行Java程序,是Java开发不可或缺的工具。JDK的简介03(2)组成部分:Java运行环境(JRE):包含Java虚拟机(JVM)和Java核心类库,是运行Java程序的基础环境。Java工具:如javac.exe(用于编译Java源代码)、java.exe(用于运行Java程序)、jar.exe(用于打包Java程序)等,提供了从源代码到可执行文件的完整开发流程支持。Java基础类库:包括java.lang、java.io、java.util、等包,为Java程序提供丰富的功能和接口。JDK的简介033)版本更新与特性:JDK经历了多个版本的更新,每个版本都引入了新的特性和改进。4)开发商与支持:Oracle是JDK的主要开发商,提供了官方版本的JDK。除此外,还有IBMJDK、OpenJDK等。其中OpenJDK是开源的,使用最广泛。5)使用与配置:开发者需要下载并安装适合自己操作系统的JDK版本。安装完成后,需要配置完环境变量,才可以开始编写、编译、运行Java程序。2JDK的简介1环境变量的介绍JDK的简介和环境变量的介绍

环境变量的介绍03变量名称定义示例JAVA_HOME作为JDK路径的统一标识,方便其他环境变量(如PATH)及开发工具(如IDEA)引用JDK位置C:\ProgramFiles\Java\jdk-17PATH使操作系统在任意目录下都能识别并运行JDK提供的开发工具(如javac、java、jar)在原有值后追加:;%JAVA_HOME%\binJava环境变量配置的目的方便控制台编译和运行Java程序,前提是已经安装了Java程序(即JDK)。如果不进行环境变量的配置,每次编译和运行Java程序时都需要指定完整的JDK路径,这样会降低使用效率。03

环境变量的介绍配置步骤具体操作1.下载安装JDK从Oracle官网下载对应版本的JDK安装包;双击安装,选择默认路径为

;2.打开环境变量设置右键“此电脑”→“属性”→“高级系统设置”→“环境变量”3.配置JAVA_HOME系统变量→新建:变量名:JAVA_HOME变量值:JDK安装路径4.配置PATH变量系统变量→编辑Path:%JAVA_HOME%\bin5.验证配置Win+R→输入cmdjava-version:检查JDK版本javac-version:检查编译器版本职业能力目标01任务描述与要求0203知识储备任务实施04AI任务赋能05任务一JDK的安装与环境变量的设置

任务实施042JDK的下载JDK的安装环境变量的配置31

JDK的下载04教材选择的Java版本是jdk17,是目前主流的版本之一。我们需要下载的是Java17版本,页面下拉可以看到如下的位置。jdk下载位置如图1-1-3所示。

JDK的下载04自主登录或注册后完成下载,得到下面的下载安装包并自行存储。

JDK的下载04

任务实施04JDK的下载JDK的安装环境变量的配置312双击jdk-17.0.15_windows-x64_bin.exe文件,并单击“下一步”按钮,jdk安装如图1-1-6所示。

JDK的安装04单击“下一步”按钮,这里可以选择安装位置,可以按照默认地址来,也可以修改安装位置到其他盘符路径下,注意安装路径下不要出现中文(可能导致编译工具无法识别路径)。

JDK的安装04等待安装完成。在安装目录看到JDK的文件夹就表示安装成功。

JDK的安装04

任务实施04JDK的下载JDK的安装环境变量的配置132环境变量的配置041右击“我的电脑”图标,在弹出的菜单中选择“属性”2打开“系统属性”对话框,选择“高级”标签3单击“环境变量”,弹出“环境变量”,找到系统变量安装好JDK后还需要进行环境变量的配置,在Windows系统中环境变量的配置04环境变量的配置04在系统变量区域,单击“新建”按钮,然后输入变量名JAVA_HOME,这是Java的安装路径,在变量值框中输入安装路径C:\ProgramFiles\Java\jdk-17,如图1-1-12所示。添加完成之后单击“确定”按钮进行保存。环境变量的配置04在系统变量里找到Path变量,单击“编辑”按钮,Path变量是指系统在任何路径下都可以识别Java命令。添加变量值“%JAVA_HOME%\bin”。环境变量的配置04到此为止,环境变量的配置就成功完成。下一步需要验证是否配置成功,在键盘上输入“win+r”提示框,输入“cmd”命令,单击“确定”按钮,打开cmd窗口,在窗口中输入“java-version”命令,表示JDK安装成功。职业能力目标01任务描述与要求0203知识储备任务实施04AI任务赋能05任务一JDK的安装与环境变量的设置AI任务赋能在Java项目开发中,JDK版本的选择直接影响程序的兼容性、性能和安全性,尤其对于涉及数据计算与存储的业务场景,合理的JDK版本决策至关重要。AI工具能通过数据分析和经验总结,为版本选择提供科学建议,同时辅助解决开发中的技术问题,成为提升开发效率的重要助力。这里以豆包为例,重点介绍如何用豆包帮助我们展现不同版本间的区别项目需求推荐版本/发行版核心理由稳定性优先(如银行薪酬系统)JDK-17(EclipseTemurin)LTS版本+开源发行版,避免授权风险,长期维护成本低性能与新特性(如游戏开发)JDK-21(AzulZulu)虚拟线程提升高并发场景性能,记录模式简化游戏角色数据定义跨平台部署(如多终端工具)JDK-17(AmazonCorretto)云环境适配优,支持Windows客户端与Linux服务器的统一代码运行团队技术栈滞后(如习惯JDK8)逐步迁移至JDK-17AI可生成适配方案(如保留ArrayList用法,替换Date为LocalDateTime)05AI任务赋能通过AI分析,得到版本选择的“黄金法则”。(1)新项目选LTS,旧项目看依赖:JDK17是当前平衡点,JDK21适合高并发新场景。(2)验证大于假设:通过压测、兼容性扫描、单元测试三重验证,确保版本升级无死角。(3)文档化决策:在项目Wiki记录版本选择原因(如“因SpringBoot3.2强制JDK17”),避免后续争议。JDK版本的选择不是单一的技术秀场,而是稳定性、效率、成本的平衡艺术。结合项目实际场景,让版本成为业务的助力而非枷锁。05本次任务结束谢谢大家学习汇报人:XXX汇报时间:XX年XX项目一搭建Java开发环境搭建Java开发环境职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05任务1.2

IDEA开发环境集成JDK

能够熟练从官方下载及安装IDEA。

能够熟练对IDEA进行配置,根据实际需求进行优化配置。

能够熟练在IDEA中配置JDK。

能够创建并运行一个简单Java程序。职业能力目标01技能目标职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05任务1.2

IDEA开发环境集成JDK

此任务将指导您如何在Windows操作系统上安装和配置intellijideaC(集成开发环境)以及配置JDK,在IDEA中创建并运行java程序。任务描述任务要求

完成intellijidea的安装。

完成对IDEA的配置。

完成对IDEA的JDK设置。

完成创建并运行一个简单的Java应用程序。

完成项目的运行和展示。任务描述与要求02职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05任务1.2

IDEA开发环境集成JDK03知识储备IDEA集成开发环境11基本定义与功能2主要特点03版本与应用安装与配置使用与优势345IDEA集成开发环境

IntelliJIDEA主要用于Java编程,同时支持多种编程语言。其核心功能包括智能代码补全、代码重构、调试和测试工具、内置版本控制系统支持、以及广泛的插件扩展能力。IntelliJIDEA利用上下文感知和数据流分析技术,提供智能化的代码提示和错误检测,帮助开发者更高效地编写和维护代码。通过集成多种开发工具和服务,IntelliJIDEA提供了一个统一的开发平台,使得从编写代码到部署应用的整个过程更加流畅和高效。03

基本定义与功能基本定义与功能2主要特点03版本与应用安装与配置使用与优势345IDEA集成开发环境

1IntelliJIDEA具备智能代码补全、代码重构、内置版本控制、支持多种框架技术及扩展语言支持等功能特点。03

主要特点功能分类具体功能智能代码补全上下文感知的代码补全代码模板与片段代码重构重命名提取方法内联变量提取接口内置版本控制图形界面操作命令行工具集成冲突解决支持多种框架和技术Java框架支持前端技术支持数据库支持扩展的语言支持多语言开发环境基本定义与功能2主要特点03版本与应用安装与配置使用与优势45IDEA集成开发环境

13免费使用:提供社区版,可以免费使用。核心功能:提供IntelliJIDEA的核心功能,包括智能代码补全、代码重构、调试和基本的版本控制支持。语言支持:支持Java、Kotlin、Groovy、Scala等多种JVM语言,以及基本的HTML、CSS和JavaScript支持。基本框架支持:支持基本的JavaSE和Android开发。Java开发支持:支持JavaSE开发,包括Java8到最新版本的功能。基本的编辑和导航功能:包括智能代码补全、代码重构、代码分析和导航等。版本控制系统集成:支持Git、SVN、Mercurial等常见版本控制系统。单元测试:支持JUnit和TestNG单元测试框架。基本的调试工具:提供标准的调试功能,包括断点设置、变量监控、堆栈跟踪等。插件支持:支持从JetBrains插件库安装和管理插件,以扩展功能。03版本与应用基本定义与功能2主要特点03版本与应用安装与配置使用与优势45IDEA集成开发环境

13IDEA的安装相对简单,用户只需访问其官方网站下载对应版本的安装包,然后按照提示进行安装即可。安装完成后,用户可以通过配置工作空间、安装插件等方式对IDE进行个性化设置。03安装与配置基本定义与功能2主要特点03版本与应用安装与配置使用与优势IDEA集成开发环境

1354IDEA具有友好的用户界面和强大的功能,使得开发人员能够高效地进行软件开发。它还支持多种开发范式,如敏捷开发、测试驱动开发等,能够满足不同项目的需求。IDEA还拥有庞大的社区支持,用户可以在社区中交流经验、解决问题,共同推动IDE的发展。03使用与优势职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05任务1.2

IDEA开发环境集成JDK在IDEA中配置JDK04任务实施IDEA的下载和安装创建并运行第一个Java应用程序312IDEA的下载和安装1IDEA的下载IDEA的安装2IDEA的配置304IDEA的下载04请读者在官网下载软件安装包,会弹出下载提示,我们选择保存的地址,单击“保存”按钮进行下载。当在本地目录中看到ideaIC-2025.1.exe文件,表示下载成功。IDEA的下载和安装1IDEA的下载IDEA的安装2IDEA的配置304IDEA的安装04双击ideaIC-2025.1.exe文件启动程序IDEA的安装04单击“下一步”按钮,选择要安装的文件夹位置,路径避免空格和中文,进行位置选择IDEA的安装04单击“下一步”按钮,基础安装配置,勾选“创建桌面快捷方式”,“更新PATH变量(需要重启)”IDEA的安装04单击“安装”按钮,开始安装IDEA的安装04单击“安装”按钮,进行安装以及安装结束IDEA的安装04安装完成后,可以选择否,不立即重启,单击完成IDEA的下载和安装1IDEA的下载IDEA的安装2IDEA的配置304IDEA的配置04软件的配置至关重要,可以按自己的开发习惯进行设置,达到事半功倍的效果。打开IDEA软件,出现如下初次启动界面IDEA的配置04在IDEA当中自动编译功能是需要手动打开的,我们通过该方式可以找到自动编译的开关。找到编译器Compiler后,将下图红框处勾上,勾选自动编译IDEA的配置04自动引包设置,IDEA默认是没有开启自动引包功能的,需要手动打开,找到的方式如下:勾选上1的位置后,IDEA将在我们书写代码的时候自动帮我们优化引入的包,比如自动去掉一些没有用到的包。勾选上2的位置后,IDEA将在我们书写代码的时候自动帮我们导入需要用到的包。但是对于那些同名的包,还是需要手动“Alt+Enter”进行导入的,IntelliJIDEA目前还无法智能到替我们做判断。IDEA的配置04“Ctrl+鼠标滚轴”修改字体大小。IDEA也支持向浏览器那样按住Ctrl+鼠标滚轴来改变编辑区的字体的大小,设置的方式如下:勾选复选框“Changefontsize(Zoom)withCommand+MouseWheel”IDEA的配置04语言设置方式如下:在“LanguageandRegion”中选择所需的语言与区域,语言设置如图所示。如果选择修改为简体中文,后续的菜单栏就会显示中文。IDEA的配置04更改UI主题方式如下:我们在IDEA中使用“Ctrl+Alt+S”组合键,同样可打开“Settings”对话框,在侧边栏“Apperance&Behavior”中选择外观“Apperance”,从“Theme”列表中选择一个界面主题即可(深色Dark/浅色Light/带浅色标题的浅色LightwithLightHeader/高对比度HighContrast)在IDEA中配置JDK04任务实施IDEA的下载和安装创建并运行第一个Java应用程序321在IDEA中配置JDK04在菜单栏中选择“File”->“ProjectStructure”选项。ProjectStructure项目结构位置如图在IDEA中配置JDK04单机侧边栏“SDKs”,然后点击偏左侧的“+”,下拉菜单中选择“AddJDKfromdisk”,添加新的

JDK在IDEA中配置JDK04单机侧边栏“SDKs”,然后点击偏左侧的“+”,下拉菜单中选择“AddJDKfromdisk”,添加新的

JDK在IDEA中配置JDK04添加JDK成功后,列表中即可看到新添加的JDK,然后单击“Apply”按钮,再单击“OK”按钮。添加成功效果如图在IDEA中配置JDK04任务实施IDEA的下载和安装创建并运行第一个Java应用程序213创建并运行第一个Java应用程序04打开IDEA,创建Java项目第一步:单击菜单栏“File”,在下拉菜单中选择“New”→“Project...”,从而新建项目工程,新建Java工程创建并运行第一个Java应用程序04其中Name为项目名称,location为项目路径,language选择java语言,jdk为当前安装环境的jdk,单击“Create”按钮,完成项目创建。创建并运行第一个Java应用程序04键src文件夹,选择JavaClass,创建一个Java类文件Main.java创建并运行第一个Java应用程序04右键src文件夹,选择JavaClass,创建一个Java类文件Main.java创建并运行第一个Java应用程序04运行工程,展开项目后继续展开src目录,接着打开main文件,(注意:文件名与类名必须一致,publicclassMain必须定义在名为Main.java的文件中。这是Java的强制规范)鼠标单击右上角绿色三角运行按钮后,控制台出现“HelloWord”,程序运行成功。职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05任务1.2

IDEA开发环境集成JDKAI赋能任务实施05确定JDK与IntelliJIDEA的版本匹配关系是保障开发环境稳定、避免语法兼容问题的关键。AI工具可通过分析JetBrains官方规范、版本演进规律及实际开发案例,提供系统化的匹配逻辑,这里以豆包为例,对JDK与IDEA的版本匹配分析提问。AI赋能任务实施05每个IDEA版本都有最低要求的JDK版本(用于运行IDEA自身)。查看方式。到JetBrains官方文档搜索对应版本的"SystemRequirements"。例如IDEA2023.2+要求JDK17+运行(旧版如2022.3要求JDK11+)。项目编译/运行使用的JDK版本。IDEA可支持任意已发布的JDK版本(包括预览版)用于项目开发。限制。需确保项目JDK≤IDEA内置支持的最高语法版本(如IDEA2023.3支持到Java21)。使用预览特性需在ProjectSettings中显式启用。核心匹配原则AI赋能任务实施05版本匹配对照表:通过AI(豆包)分析,JDK与IDEA的版本匹配核心是“双向兼容”,下面是版本对照表:IntelliJIDEA版本建议运行的版本支持的项目JDK版本IDEA2024.1+(Ultimate/Community)JDK17JDK8~JDK22(支持Java22新特性)IDEA2023.3(2023年发布)JDK17JDK8~JDK21IDEA2022.3(2022年发布)JDK11JDK8~JDK19IDEA2021.3JDK8JDK8~JDK17IDEA版本需能解析项目JDK的语法特性,项目JDK版本需满足框架依赖。借助AI工具可快速厘清匹配关系,避免因版本混乱导致的编译错误、功能失效,让开发环境成为项目效率的“助推器”而非“绊脚石”。目标检测算法接口的定义和使用05importipywidgetsaswidgets#jupyter画图库

fromIPython.displayimportdisplay#jupyter显示库imgbox=widgets.Image()#定义一个图像盒子,用于装载图像数据imgbox.value=cv2.imencode('.jpg',image_obj)[1].tobytes()#把图像值转成byte类型的值display(imgbox)#将盒子显示出来2加载图片数据(2)显示读取的图片利用以下函数显示读取的图片谢谢大家学习项目六

走进基于在线聊天工具的网络编程Java面向对象程序设计项目引导案例某大型财务公司的核心业务涉及多家企业和个人的大量敏感财务数据、客户信息等,如客户的账户余额、交易记录、财务报表等。然而,外部通用聊天工具(如微信、企业微信、钉钉)的核心痛点是“数据归属权不明确”。这样,开发企业内部沟通工具就显得尤为重要。项目背景项目引导案例本项目分别以UDP、TCP协议为基础,通过完成基于Java的网络编程实践,使开发者熟悉Java网络编程API的使用方法,目的是让开发者掌握UDP、TCP协议的使用场景与开发流程,最终能根据要求为企业开发符合要求的内部软件。UDP网络编程TCP网络编程任务一基于UDP的网络编程

Java面向对象程序设计职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05掌握UDP协议的使用原理与使用场景;熟练使用DatagramPacket数据报类的常用方法,可以对发送的数据进行封装,也可以封装接收到的数据;熟练使用DatagramSocket数据报套接字类的常用方法,并使用其完成发送和接收数据。掌握UDP协议的常用API;掌握基于UDP的网络编程。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05本任务聚焦于JavaUDP编程在开发聊天共功能的实践应用。使用DatagramPacket对数据进行封装,使用DatagramSocket对数据进行发送与接收,并且启动了两个线程,分别用于聊天数据的循环接收与发送。任务描述任务要求使用DatagramPacket完成数据的封装;使用DatagramSocket完成数据的发送与接收;启动线程实现数据循环的发送与接收。任务描述与要求02职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05DatagramPacket类203知识储备UDP协议1DatagramSocket类345InetAddress类UDP网络编程步骤1UDP协议简介2UDP协议特性03UDP(UserDatagramProtocol,用户数据报协议)属于TCP/IP协议模型中的传输层协议。是一种无连接、不可靠、面向数据报的传输层协议,UDP以“简单、高效、低延迟”为核心特点,适用于对实时性要求高而对少量数据丢失不敏感的场景,例如即时通讯软件中使用的就是UDP协议。03

UDP协议简介2UDP协议简介1UDP协议特性03无连接性:通信前无需建立连接,发送方直接封装数据并发送,接收方收到后直接处理,省去了连接建立和维护的开销。面向数据报:UDP直接将应用层数据封装到数据报中进行传输,数据报的长度完全由应用层数据决定。这意味着,从应用层传来的数据会被封装进UDP数据报中,并由UDP负责传输。不可靠传输:发送方发送数据后不等待接收方确认,无法知道数据是否到达。数据在传输中丢失、损坏或乱序时,UDP不负责重传或纠正。03

UDP协议特性DatagramPacket类103知识储备UDP协议2DatagramSocket类345InetAddress类UDP网络编程步骤DatagramPacket类用于处理UDP协议中的数据报,它封装了数据报的内容和目标地址信息,以便在网络上进行传输,下表是DatagramPacket的常用方法及说明所示。03DatagramPacket类方法声明功能描述DatagramPacket(byte[]buf,intlength)构造函数:创建用于接收数据的数据包,buf为存储数据的缓冲区,length为接收数据的最大长度DatagramPacket(byte[]buf,intlength,InetAddressaddress,intport)构造函数:创建用于发送数据的数据包,buf为待发送数据,length为数据长度,address和port指定目标地址和端口byte[]getData()返回存储数据的缓冲区(包含数据报中的数据)intgetLength()返回数据报中实际包含的数据长度(而非缓冲区总长度)InetAddressgetAddress()返回发送方(接收数据时)或接收方(发送数据时)的IP地址intgetPort()返回发送方(接收数据时)或接收方(发送数据时)的端口号DatagramPacket类103知识储备UDP协议2DatagramSocket类345InetAddress类UDP网络编程步骤

DatagramSocket是UDP通信的入口,用于发送和接收数据。该类的常用方法如下表所示。03DatagramSocket类方法声明功能描述DatagramSocket(intport)构造函数:创建绑定到指定端口的DatagramSocket,用于监听该端口的UDP数据voidsend(DatagramPacketp)发送数据报包p到目标地址voidreceive(DatagramPacketp)接收数据报包并存储到p中(阻塞方法,直到收到数据或超时)voidclose()关闭DatagramSocket,释放占用的端口和资源,关闭后不可再用于发送/接收InetAddressgetInetAddress()返回此套接字连接的远程地址(若未连接则返回null)intgetPort()返回此套接字连接的远程端口(若未连接则返回-1)DatagramPacket类103知识储备UDP协议2DatagramSocket类345InetAddress类UDP网络编程步骤InetAddress是Java网络编程中处理IP地址的基础类,常与DatagramSocket(UDP)、Socket(TCP)配合使用,用于指定通信的目标地址或获取本地地址。InetAddress的常用方法及说明如表所示。03InetAddress类方法声明功能描述staticInetAddressgetByName(Stringhost)根据主机名或IP地址字符串(如"")获取对应的InetAddress对象StringgetHostName()返回此IP地址对应的主机名(若无法解析则返回IP地址字符串)StringgetHostAddress()返回IP地址的字符串形式DatagramPacket类103知识储备UDP协议2DatagramSocket类345InetAddress类UDP网络编程步骤UDP网络编程的过程围绕“无连接、面向数据报”的特性展开,核心是通过DatagramSocket(套接字)和DatagramPacket(数据报)完成数据的发送与接收,整体流程无需建立和维护连接。以下是UDP网络编程的具体步骤:03UDP网络编程步骤(1)在一个客户端创建DatagramSocket对象,并在构造方法中指定到某个端口,默认情况下,会将该DatagramSocket绑定本机IP。(2)

使用DatagramPacket对象封装待发送的信息,并指定接收方的IP地址和端口号,使用DatagramSocket将封装好的DatagramPacket对象发送到接收方。03UDP网络编程步骤(3)使用DatagramSocket对象接收另一个客户端发送来的信息,接收的数据存储在DatagramPacket中,接收之前一直阻塞。(4)通讯完毕后关闭DatagramSocket对象,节省资源。需要注意的是,为了确保两个客户端接收和发送信息可以同时进行,通常会启动发送线程和接收线程,并在两个线程里分别实现发送数据和接收数据的功能。职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施0504任务实施创建接收信息的线程2创建发送信息的线程1创建聊天客户端3聊天过程演示4创建发送信息的线程04publicclassSendRunnableimplementsRunnable{privateDatagramSocketds;//用来接收发送方的DatagramSocket privateStringdestHost;//接收目标主机 privateintport;//接收目标端口 publicSendRunnable(DatagramSocketds,StringdestHost,intport){ this.ds=ds; this.destHost=destHost; this.port=port; }}1创建发送线程类,并在构造方法中接收相关参数在线程的方法中需要从控制台输入待发送的文字,然后将信息封装到DatagramPacket对象中,最后使用DatagramSocket将信息发送给对方。代码如下:创建发送信息的线程04

publicvoidrun(){//用于接收键盘输入 BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); while(true){ System.out.print("我说:"); try{ Stringsay=br.readLine();//接收键盘输入,输入完成之前一直阻塞 DatagramPacketdp=null; dp=newDatagramPacket(say.getBytes(),say.getBytes().length,InetAddress.getByName(destHost),port); ds.send(dp);//发送信息 }catch(IOExceptione){ e.printStackTrace(); } } }2在发送线程类中重写run()方法04任务实施创建接收信息的线程2创建发送信息的线程1创建聊天客户端3聊天过程演示4创建接收信息的线程04publicclassReceiveRunnableimplementsRunnable{ privateDatagramSocketds; publicReceiveRunnable(DatagramSocketds){ this.ds=ds; }}1创建接收线程类,并在构造方法中接收相关参数使用DatagramSocket对象的receive方法接收信息,将接收的信息封装到DatagramPacket对象中。接收到信息后,再使用DatagramPacket对象的相关方法获取发送方的信息,代码如下:创建接收信息的线程04publicvoidrun(){while(true){ byte[]b=newbyte[1024]; DatagramPacketdp=newDatagramPacket(b,b.length); try{ ds.receive(dp);//接收之前一直阻塞

Stringip=dp.getAddress().getHostName();//获取发送方的ip intport=dp.getPort();//获取发送方的port System.out.println();System.out.println(ip+":"+port+"对你说:"+newString(dp.getData(),0,dp.getLength())); }catch(IOExceptione){ e.printStackTrace(); }} }2在接收线程类中重写run()方法04任务实施创建接收信息的线程2创建发送信息的线程1创建聊天客户端3聊天过程演示4创建聊天客户端04publicclassChatA{publicstaticvoidmain(String[]args)throwsException{DatagramSocketds=newDatagramSocket(8888);//启动发送信息线程newThread(newSendRunnable(ds,"localhost",9999)).start();//启动接收信息线程newThread(newReceiveRunnable(ds)).start(); }}1创建第一个聊天客户端在聊天客户端代码中,只要分别启动发送信息线程和接收信息线程就可以进行信息的接收与发送了,代码如下:创建聊天客户端04publicclassChatB{ publicstaticvoidmain(String[]args)throwsException{ DatagramSocketds=newDatagramSocket(9999);//启动发送信息线程newThread(newSendRunnable(ds,"localhost",8888)).start();newThread(newReceiveRunnable(ds)).start();//启动接收信息线程 }}2创建第二个聊天客户端类04任务实施创建接收信息的线程2创建发送信息的线程1创建聊天客户端3聊天过程演示4聊天过程演示041.分别启动两个聊天客户端,并在A客户端输入聊天信息“下课了,我去吃饭了”2.B客户端则接收到信息3.B客户端也可以发送聊天信息“好的,你先走,我随后就到”4.则A客户端接收到B发送来的信息职业能力目标01任务描述与要求02知识储备03任务实施04AI赋能任务实施05AI赋能任务实施05UDP发送、接收缓冲区较小,高并发场景下可能因缓冲区满导致数据丢失或阻塞。AI工具(以豆包为例)可通过分析得出“优化缓冲区大小以提升吞吐量”的关键配置与说明,如下表所示。优化点核心API方法配置建议值设置发送缓冲区大小DatagramSocket.setSendBufferSize(intsize)8MB~64MB(8*1024*1024)设置接收缓冲区大小DatagramSocket.setReceiveBufferSize(intsize)8MB~64MB(8*1024*1024)数据报大小适配MTU手动控制DatagramPacket数据长度≤1472字节(IPv4)缓冲区复用重用byte[]缓冲区和DatagramPacket对象固定缓冲区数组谢谢大家学习项目二走进基于公司薪酬系统的Java编程基础与面向对象开发《Java面向对象程序设计》项目二走进基于公司薪酬系统的Java编程基础与面向对象开发【引导案例】某中型制造企业员工规模从100人扩张至500人后,原有Excel手工核算的薪酬模式问题频发:核算周期长达3-5天,上月因绩效奖金公式错误导致30余名员工薪酬偏差,复杂薪酬结构(全职/兼职/销售提成等多类)难以适配。所以后续引进了第三方开发的薪酬管理系统。项目二走进基于公司薪酬系统的Java编程基础与面向对象开发【引导案例】本项目将以薪酬系统的逻辑实现为实践载体,通过系统化学习Java编程基础与面向对象开发,帮助开发者掌握变量定义的规范化命名、数据类型的精准选择、流程控制语句的高效运用,以及类与对象、封装、继承等思想在复杂业务中的落地方法。最终目标是构建一套运算精准、扩展性强、易于维护的薪酬管理系统,实现从"人工核算"到"智能驱动"的转型跨越。面对复杂的薪酬规则,团队成员需分工协作:有人负责员工信息模块,有人专注薪酬计算逻辑,通过模块化开发实现"各司其职、协同高效",培养团队协作意识。同时,薪酬数据属于企业核心机密,开发过程中需严格遵守数据安全规范,杜绝信息泄露,彰显"严守底线"的职业操守。职业能力目标01任务描述与要求02知识储备03任务实施04AI任务赋能05任务一Java编程基础

熟练掌握Java基础语法,规范使用标识符、关键字及注释。

熟练运用各类变量与数据类型,完成声明、初始化等操作。

熟练使用运算符、选择与循环语句,处理流程控制问题。

熟练操作Java数组,掌握一/二维数组的声明、遍历。职业能力目标01知识目标职业能力目标01任务描述与要求02知识储备03任务实施04AI任务赋能05任务一Java编程基础任务描述与要求02任务聚焦于Java编程基础在公司薪酬系统中的实践应用,通过掌握变量、数据类型、运算符等核心知识,能够实现员工薪酬数据的高效处理与逻辑运算。在薪酬系统中,需运用基础语法完成薪资项计算等基础功能开发。完成薪酬系统中基础数据类型的声明与初始化运用运算符实现薪资计算逻辑(如税前工资、社保扣除等公式运算)使用选择与循环语句处理薪酬数据校验规范定义薪资计算相关方法(如个税计算方法、绩效奖金核算方法)任务要求任务描述职业能力目标01任务描述与要求0203知识储备任务实施04AI任务赋能05任务一Java编程基础

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组123456

Java的方法1标识符与关键字数据类型2Java基本语法03

标识符与关键字标识符:用于给类、变量、方法等命名的符号。关键字:Java语言中已经被赋予特定含义的单词,不能作为标识符使用。

类别核心规则

/特性示例标识符1.由字母、数字、下划线(_)、美元符号($)组成;

2.不能以数字开头;

3.不能是Java关键字;

4.区分大小写。userName、_age、$salary、Student(类名)、age3关键字1.Java预先定义、有特定语法含义的单词;

2.必须全小写;

3.功能固定(如声明类型、控制流程等),不能作为标识符。public、class、static、void、int、if、for1标识符与关键字数据类型2Java基本语法03

数据类型Java是一种强类型语言,所有变量必须先声明类型才能使用。Java的数据类型分为两大类:基本数据类型(PrimitiveTypes)和引用数据类型(ReferenceTypes)。

基本数据类型数据类型字节数范围示例byte1−128∼127byteb=10;short2−32768∼32767shorts=100;int4−2147483648∼2147483647intage=20;long8-2^63至2^63-1longl=10000000000L;float4单精度浮点数floatf=3.14f;double8双精度浮点数doubled=3.1415926;char2单个

Unicode字符charc='a';boolean1true或falsebooleanisTrue=true;03

数据类型引用数据类型类型分类定义特点示例代码类(Class)自定义或

Java内置的类,用于创建对象1.可实例化(通过new创建对象)

2.继承自Object类

3.可包含属性和方法Stringname=newString("Alice");

Datetoday=newDate();接口(Interface)抽象方法的集合,定义行为规范1.不能实例化,需由类实现(implements)

2.支持多实现

3.全抽象(Java8+支持默认方法)publicinterfaceRunnable{voidrun();}

classMyThreadimplementsRunnable{...}数组(Array)存储固定大小的同类型元素1.长度固定

2.元素类型统一

3.索引从0开始

4.继承自Object类int[]numbers=newint[5];

String[]names={"Alice","Bob"};枚举(Enum)一组预定义的常量值1.继承自java.lang.Enum

2.常量用逗号分隔

3.可包含方法和属性publicenumColor{RED,GREEN,BLUE;}

Colorc=Color.RED;注解(Annotation)用于为代码提供元数据(如标记、配置)1.以@符号开头

2.可用于类、方法、字段等

3.内置注解(如@Override)@Deprecated

publicvoidoldMethod(){...}

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组123456

Java的方法03

Java的变量在Java中,变量和常量是存储数据的基本单元,但它们的使用方式和特性有明显区别。以下是对Java变量与常量的介绍。

变量:属于程序里可变化的数据存储单元。在使用之前,必须先对其进行声明变量的类型以及名称,才可以对它进行赋值和使用常量:表示在程序运行期间数值不会发生改变。一般使用final关键字来定义常量。

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组1456

Java的方法231算术运算符关系运算符2Java的运算符4逻辑运算符条件运算符(三元运算符)35赋值运算符03

算术运算符算术运算符用于基本的算术运算inta=10;intb=3;System.out.println(a+b);//加法:13System.out.println(a-b);//减法:7System.out.println(a*b);//乘法:30System.out.println(a/b);//除法:3(整数除法自动取整)System.out.println(a%b);//取模(取余):1//自增/自减(常用于循环)intc=a++;//先赋值后自增:c=10,a=11intd=++b;//先自增后赋值:d=4,b=41算术运算符关系运算符2Java的运算符4逻辑运算符条件运算符(三元运算符)35赋值运算符03

关系运算符用于比较两个值的关系,结果为boolean类型intx=5;inty=10;System.out.println(x==y);//等于:falseSystem.out.println(x!=y);//不等于:trueSystem.out.println(x>y);//大于:falseSystem.out.println(x<y);//小于:trueSystem.out.println(x>=y);//大于等于:falseSystem.out.println(x<=y);//小于等于:true1算术运算符关系运算符2Java的运算符4逻辑运算符条件运算符(三元运算符)35赋值运算符03

逻辑运算符用于连接多个布尔表达式booleanp=true;booleanq=false;//逻辑与(&&):两边都为true才返回trueSystem.out.println(p&&q);//false//逻辑或(||):两边有一个为true就返回trueSystem.out.println(p||q);//true//逻辑非(!):取反System.out.println(!p);//false//短路特性(重点!)inta=5;booleanresult=(a>10)&&(a++>0);//左边为false,右边不执行System.out.println(a);//5(a++未执行)1算术运算符关系运算符2Java的运算符4逻辑运算符条件运算符(三元运算符)35赋值运算符03

赋值运算符用于给变量赋值,支持复合赋值简化代码intnum=10;//基本赋值//加等于num+=5;//等价于num=num+5→15//减等于num-=3;//等价于num=num-3→12//乘等于num*=2;//等价于num=num*2→24//除等于num/=4;//等价于num=num/4→6//取余等于num%=5;//等价于num=num%5→11算术运算符关系运算符2Java的运算符4逻辑运算符条件运算符(三元运算符)35赋值运算符03

条件运算符(三元运算符)用于简化if-else的单行表达式intscore=85;Stringresult=(score>=60)?"及格":"不及格";//等价于://if(score>=60)result="及格";elseresult="不及格";System.out.println(result);//及格

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组156

Java的方法2341选择结构循环结构2Java的选择与循环语句流程控制关键字303

选择结构if-else是基础的条件控制结构流程图intscore=85;if(score>=90){System.out.println("优秀");}elseif(score>=80){System.out.println("良好");}else{System.out.println("一般");}03

选择结构switch-case语句更适用于离散值匹配,与多重if相比更清晰intday=1;switch(day){case1:System.out.println("星期一");break;case2:System.out.println("星期二");break;//其他case语句default:System.out.println("未知");}1选择结构循环结构2Java的选择与循环语句流程控制关键字303

循环结构已知循环次数时建议使用for循环语句,流程如下//for(初始化表达式;条件表达式;迭代表达式)for(inti=1;i<=10;i++){//循环体:条件为true时重复执行的代码System.out.println("i="+i);}03

循环结构while循环适用于未知循环次数已知循环条件,先判断后执行inti=1;while(i<=10){//条件为true时重复执行的代码System.out.println("i="+i);i++;}do-while循环至少执行一次,再判断条件inti=11;do{//至少会执行一次的代码System.out.println("i="+i);i++;}while(i<=10);//条件为true时会重复执行1选择结构循环结构Java的选择与循环语句流程控制关键字3203

流程控制关键字break和continue语句,使用在循环语句中,功能如下。break:跳出当前循环。continue:跳过本次循环的剩余代码,继续下一次循环。

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组16

Java的方法23451数组的基本概念与特点数组的声明与初始化Java的数组数组的访问遍历3203

数组的基本概念与特点定义:数组是一个连续的内存空间,用于存储多个相同数据类型的元素(如int、double、String等)核心特点:

长度固定:一旦创建,长度不可修改(若需动态调整,需借助集合类如"ArrayList")

元素类型统一:数组中所有元素必须为同一数据类型(如int数组只能存储整数)

索引访问:元素通过索引(从0开始)访问,如"array[0]"表示第一个元素

引用类型:数组本身是引用数据类型,默认值为"null";数组元素的默认值与对应数据类型一致(如int数组元素默认值为0,对象数组默认值为"null")1数组的基本概念与特点数组的声明与初始化Java的数组数组的访问遍历3203

数组的声明与初始化//数据类型[]数组名;//声明一个int类型数组,用于存储薪资int[]salaries;//声明一个String类型数组,用于存储员工姓名

String[]employeeNames;

声明数组初始化需指定数组长度或直接赋值,分为动态初始化(先指定长度,后赋值)和静态初始化(声明时直接赋值)int[]salaries=newint[3];//初始化一个长度为3的int数组

//为元素赋值(索引0~2)

salaries[0]=8000;//第1名员工薪资

salaries[1]=9500;//第2名员工薪资

salaries[2]=7800;//第3名员工薪资

1.动态初始化语法:数组名=new数据类型[长度];03

数组的声明与初始化2.静态初始化数组:语法:数组名=new数据类型[]{元素1,元素2,...};(可省略new数据类型[])double[]performances={92.5,88.0,95.3,89.7};//静态初始化,长度为4//等价于:double[]performances=newdouble[]{92.5,88.0,95.3,89.7};1数组的基本概念与特点数组的声明与初始化Java的数组数组的访问遍历32

数组的访问遍历03访问元素:通过数组名[索引]访问或修改元素,注意索引范围0~长度-1,超出范围会抛出ArrayIndexOutOfBoundsException异常。int[]salaries={8000,9500,7800};System.out.println(salaries[1]);//访问索引1的元素,输出:9500salaries[2]=8200;//修改索引2的元素值

System.out.println(salaries[2]);//输出:8200

数组的访问遍历03遍历数组:可以使用普通for循环,通过索引遍历,适合需要修改元素或获取索引的场景。代码示例如下示例(计算员工平均薪资)int[]salaries={8000,9500,8200};intsum=0;for(inti=0;i<salaries.length;i++){//length属性获取数组长度sum+=salaries[i];}//平均薪资:(8000+9500+8200)/3=8566.67doubleavg=sum/(double)salaries.length;System.out.println("平均薪资:"+avg);

知识储备03Java基本语法Java的变量Java的运算符Java的选择与循环语句

Java的数组16

Java的方法23451方法的分类与示例2方法的定义与基本结构Java的方法方法的参数传递机制3

方法的定义与基本结构03方法由方法头和方法体组成,代码语法格式如下所示修饰符

返回值类型

方法名(参数列表){//方法体:实现具体功能的代码return返回值;//如果返回值类型为void,则无需return语句}

方法的定义与基本结构03关键要素解释:修饰符:如public、private、static等,控制方法的访问权限和调用方式返回值类型:方法执行后返回的数据类型(如int、String),若无返回值则用void方法名:遵循驼峰命名法(如calculateSalary),需准确描述方法功能参数列表:方法执行所需的输入数据,多个参数用逗号分隔(如inta,doubleb)返回值:通过return语句返回结果,必须与返回值类型匹配2方法的定义与基本结构1方法的分类与示例Java的方法方法的参数传递机制3

方法的分类与示例03无参无返回值方法:适用于无需输入数据、无需返回结果的场景(如打印菜单)。代码示例如下有参无返回值方法:适用于需要输入数据但无需返回结果的场景(如打印员工信息)。代码示例如下publicstaticvoidprintWelcomeMessage(){System.out.println("欢迎使用薪酬管理系统");System.out.println("-------------------");}publicstaticvoidprintEmployeeInfo(Stringname,intage

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论