Java作为一门广泛应用于企业级应用开发的语言,其后端开发能力是技术栈中的重要组成部分。在Java后端开发的学习中,项目实践是一个不可或缺的部分,它能够帮助开发者更好地理解和掌握理论知识,并将这些知识应用到实际开发中去。今天,我们有幸获得了一份名为“苍穹外卖”的Java后端项目讲义资料压缩包。这份资料的出现,对于那些希望通过实际项目来提高自身Java后端开发水平的开发者来说,无疑是一个宝贵的资源。 “苍穹外卖”项目讲义资料首先从Java基础讲起,详细解释了Java的基本语法、面向对象的概念以及Java的各种高级特性。这部分内容是整个讲义的基础,它帮助初学者建立起扎实的Java编程基础,为学习后端开发打下坚实的基础。随后,资料会详细讲解Java Web开发技术,包括但不限于Servlet技术、JSP技术、以及MVC设计模式。这些技术是构建现代Web应用不可或缺的元素,通过这部分的学习,学员能够了解并掌握如何构建动态网站,以及如何将Java代码与网页技术相结合。 在基础部分之上,接下来的资料内容深入到Java后端开发的核心——Spring框架的学习。Spring框架是目前最流行的Java企业应用开发框架之一,它包括了Spring Core、Spring MVC、Spring Boot等多个子项目。讲义资料会对这些组件进行详尽的解析和应用案例的演示,学员通过这部分学习,能够掌握如何使用Spring来简化企业级应用的开发。 除了框架学习之外,数据库的应用也是后端开发的一个重点。在这个讲义资料中,自然也不会缺少对数据库操作的讲解。从JDBC的使用,到关系型数据库MySQL的深入讲解,再到非关系型数据库MongoDB的基本使用,这部分内容涵盖了数据库操作的方方面面,帮助开发者能够灵活地使用各种数据库来存储和管理应用数据。 此外,为了适应微服务架构的流行趋势,资料中也对微服务架构以及Spring Cloud相关技术进行了讲解。这部分内容包括服务注册与发现、配置中心、负载均衡、分布式跟踪等服务化组件的介绍和使用案例,为学习者打开了微服务开发的大门。 为了提升项目的实战性和完整性,资料中还包含了“苍穹外卖”项目的完整代码和详细说明。通过剖析实际的项目代码,学员可以更深入地了解一个完整的项目是如何从零开始构建的,包括但不限于项目架构设计、模块划分、接口设计、数据流转、异常处理、安全控制等方面。 可以说,“苍穹外卖讲义资料”是一个十分全面的Java后端项目学习资料合集,它不仅适合Java初学者逐步提升,也适合有一定基础的开发者进行知识的查漏补缺和实践技能的提高。
2025-12-14 17:55:03 289.77MB java
1
车间调度问题(Job Shop Scheduling Problem, JSSP)是生产调度中的一类问题,主要目标是在满足所有作业的约束条件下,安排生产任务的顺序,以达到优化生产效率和资源利用率的目的。JSSP在实际生产中尤为重要,因为它的解决方案直接关联到生产成本、交货期限和产品质量。由于车间调度问题是一个典型的NP难问题(NP-hard problem),随着作业和机器数量的增加,计算复杂度呈指数级上升,所以找到最优解是非常困难的。因此,研究者们开发了多种方法来解决这类问题,包括传统算法和启发式算法。 Matlab是一种广泛使用的数值计算环境和编程语言,因其简便易用和强大的数学运算功能在工程和科学研究领域中具有极高的应用价值。在车间调度问题的求解中,Matlab可以用来实现各种优化算法,包括但不限于遗传算法、模拟退火、粒子群优化算法和蚁群算法等。Matlab强大的可视化功能还能够帮助研究人员对调度结果进行直观展示和分析,极大地简化了算法的开发和调试过程。 优化算法配套资料是针对特定算法或问题提供的一系列辅助材料,这通常包括算法的理论介绍、Matlab实现代码、案例分析以及结果评估等。这些资料对于理解和应用特定算法、解决实际问题具有重要的参考价值。对于初学者来说,这些配套资料有助于快速掌握算法原理和编程技巧,而对于经验丰富的研究人员而言,它们则是深入研究和创新的基石。 视频配套资料在教授和学习优化算法的过程中也起到了至关重要的作用。通过观看视频,学习者可以直观地了解算法的基本流程、关键步骤和调试技巧,甚至可以从中获取到一些专业的优化经验。视频资料常常结合实际案例进行讲解,有助于学习者将抽象的理论知识应用到具体问题中去,从而加深对算法的理解和记忆。 在车间调度问题中应用Matlab优化算法,可以帮助工程师和调度员对车间作业进行有效的安排,从而缩短生产周期、提高设备利用率、降低生产成本和满足交货期要求。然而,该问题涉及的因素众多,如作业的优先级、机器的可用性、交货期限、生产成本、质量要求等,因此需要综合考虑这些因素,合理设计调度策略。 为了更好地应对车间调度问题,研究者们不断优化和改进现有的优化算法。例如,他们可能将多个算法结合在一起,发挥各自的优点,以求得到更好的调度方案。在Matlab环境下,通过编程实现这些复合算法并进行仿真测试,成为解决车间调度问题的重要途径之一。 车间调度问题对于制造业来说是一个极具挑战性的问题,它需要通过高效的算法来解决。Matlab由于其强大的计算和可视化功能,成为了研究和实现这些优化算法的理想工具。相关配套资料,尤其是视频资料,可以大大降低学习和应用这些算法的难度,是车间调度问题研究与实践中的宝贵资源。随着人工智能和机器学习技术的发展,未来的车间调度将更加智能化,算法也将更加高效和精准,为制造业带来革命性的变革。
2025-12-12 18:24:11 725KB
1
山东大学软件学院软件工程复习资料为软件工程专业的学生提供了全面的学习材料。这份资料内容广泛,涵盖了软件工程学科的多个重要领域,比如软件需求分析、设计、编码、测试以及项目管理等。它不仅包含了课本上的基础知识点,还包括了实际案例分析和行业标准,旨在帮助学生深入理解软件开发的整个流程。 在需求分析部分,学生可以学习如何与客户沟通,准确捕捉和记录需求,同时掌握编写需求规格说明书的技能。设计阶段则会介绍软件架构设计的基本原则,包括如何根据需求选择合适的设计模式,并且如何设计出用户友好的界面。 在编码阶段,复习资料会讲解各种编程语言的特性,帮助学生掌握良好的编程习惯和代码风格,同时强调编写可读性强、可维护性高的代码的重要性。软件测试部分则会让学生了解不同的测试方法,如单元测试、集成测试、系统测试和验收测试,以及如何制定测试计划和执行测试。 项目管理是软件工程的另一个核心内容,复习资料会向学生展示如何使用项目管理工具进行项目规划、进度跟踪、风险控制和资源分配。同时,还会介绍敏捷开发方法,以及如何在团队中高效协作。 此外,这些复习资料通常还会包含往年的试题和模拟题,让学生通过实践来检验自己的学习效果,同时培养应试技巧和时间管理能力。资料还会提供关于最新软件工程发展趋势和技术创新的讨论,激发学生的创新思维和前瞻性。 这份复习资料是山东大学软件学院学生准备软件工程考试的重要参考。它不仅帮助学生巩固专业知识,还能够提升解决实际问题的能力,为他们未来的职业生涯打下坚实的基础。
2025-12-10 17:17:19 17.71MB 学习资料
1
NCC资料下载(需要可下载)
2025-12-09 16:27:01 987.67MB
1
【NCC开发资料详解】 NCC,全称为“New Cloud Computing”,是由用友公司推出的一款企业级云服务平台,主要用于企业信息化建设,提供高效、安全、灵活的云计算解决方案。本资料集将详细介绍NCC的开发环境、开发流程以及相关工具,帮助开发者更好地理解和应用NCC平台。 1. **NCC平台概述** NCC平台基于云计算技术,为企业提供了一个统一的开发、部署和管理应用程序的平台。它支持多租户模式,具备高可用性和弹性扩展能力,能够满足不同规模企业的需求。NCC平台的核心功能包括:应用开发、云服务集成、数据管理、工作流引擎以及监控和安全管理等。 2. **开发环境配置** 在开始NCC开发之前,需要安装并配置NCC的开发环境,这通常包括Java开发工具(如JDK)、集成开发环境(IDE,如Eclipse或IntelliJ IDEA)、NCC SDK以及相关的构建工具(如Maven或Gradle)。确保所有依赖库和插件正确安装,是保证开发顺利进行的基础。 3. **NCC应用开发** NCC应用开发主要使用Java语言,遵循NCC提供的API和框架进行。开发者可以利用NCC提供的服务组件快速构建业务逻辑,例如,通过NCC的云数据库服务来存储和操作数据,使用工作流引擎实现业务流程自动化。 4. **云服务集成** NCC平台允许开发者集成多种云服务,如存储服务、消息队列服务、大数据分析服务等。通过API接口,开发者可以轻松地在应用中接入这些服务,提升应用的功能性和性能。 5. **数据管理** 在NCC中,数据管理包括数据模型设计、数据迁移和数据安全。开发者应熟悉NCC的数据模型工具,合理设计数据结构,并利用NCC的数据备份和恢复机制,确保数据的安全性和完整性。 6. **工作流引擎** NCC内置的工作流引擎可以帮助开发者实现复杂的业务流程自动化。开发者需要学习如何定义工作流节点、设置流转规则,并与业务逻辑进行联动,以提高工作效率。 7. **监控和安全管理** 对于NCC应用的监控,开发者需要了解如何使用NCC提供的监控工具,如日志分析、性能指标监控等,以便及时发现并解决问题。同时,NCC平台提供了丰富的安全机制,包括访问控制、身份验证、加密等,开发者需掌握这些安全策略,保障应用的安全运行。 8. **测试与部署** 开发完成后,需要进行单元测试、集成测试和压力测试,确保应用的质量。NCC平台支持持续集成和持续部署(CI/CD),开发者可以配置自动化部署流程,实现快速、稳定的版本迭代。 9. **最佳实践与案例分享** 学习NCC开发的过程中,参考和借鉴已有的最佳实践和成功案例是非常有价值的。这些案例通常包含了解决特定问题的策略、优化性能的方法以及提升用户体验的设计思路。 通过深入学习和实践这些知识点,开发者将能够熟练掌握NCC平台的开发技巧,创建出满足企业需求的高质量云应用。这份"NCC开发资料新"压缩包将是你探索NCC世界的重要指南,它包含了详细的文档、示例代码和教程,助你一臂之力。
2025-12-09 16:25:46 419.32MB
1
"MATLAB基于锅炉水温与流量串级控制系统的设计" 本设计旨在设计锅炉温度流量串级控制系统,综合应用过程控制理论、仿真技术、计算机远程控制、组态软件等。该系统通过实验法建立锅炉的数学模型,得到锅炉温度与进水流量之间的传递函数,并通过对理论设计的控制方案进行仿真,得到较好的响应曲线,为实际控制系统的实现提供先决条件。 一、过程控制概述 过程控制是自动化技术的重要组成部分,普遍运用于石油、化工、电力、冶金、轻工、纺织、建材等工业部门。过程控制技术的发展经历了从单输入单输出系统到复杂过程控制系统的演变,目前已经应用于工业生产中。 二、串级控制系统 串级控制系统是过程控制系统的一种,通过串级连接多个控制器来实现对锅炉温度和进水流量的控制。串级控制系统可以更好地控制锅炉的温度和流量,提高锅炉的运行效率和安全性。 三、MATLAB软件 MATLAB是一种基于矩阵运算的编程语言和开发环境,广泛应用于科学计算、数据分析、仿真和控制系统设计等领域。该设计使用MATLAB软件来设计锅炉温度流量串级控制系统,进行仿真和分析。 四、PID控制器原理 PID控制器是一种常用的控制算法,通过对锅炉温度和进水流量的实时监控和调整,实现对锅炉的控制。PID控制器原理是通过比例、积分和微分三个部分来实现对锅炉的控制。 五、建立被控对象模型 建立被控对象模型是设计锅炉温度流量串级控制系统的重要步骤。通过实验法建立锅炉的数学模型,得到锅炉温度与进水流量之间的传递函数。 六、控制方案设计 控制方案设计是设计锅炉温度流量串级控制系统的关键步骤。通过对理论设计的控制方案进行仿真,得到较好的响应曲线,为实际控制系统的实现提供先决条件。 七、仿真结果分析 仿真结果分析是设计锅炉温度流量串级控制系统的最后一步骤。通过对仿真结果的分析,验证设计的正确性和可靠性。 八、结论 设计的锅炉温度流量串级控制系统可以实现在锅炉温度和进水流量的自动控制,提高锅炉的运行效率和安全性。该设计可以为实际控制系统的实现提供先决条件。 九、参考文献 [1]李晓东.过程控制系统设计[M].北京:机械工业出版社,2015. [2]王晓晓.MATLAB在过程控制系统设计中的应用[D].北京:中国科学技术大学,2018. [3]张晓晓.PID控制器原理及其应用[D].上海:上海交通大学,2019. 十、结语 设计的锅炉温度流量串级控制系统可以实现在锅炉温度和进水流量的自动控制,提高锅炉的运行效率和安全性。该设计可以为实际控制系统的实现提供先决条件。
2025-12-07 15:06:13 2.36MB
1
### Raspberry Pi 3 内存芯片资料:EDB8132B4PB-8D-F #### 一、概述 本文将详细介绍应用于Raspberry Pi 3B的内存芯片——EDB8132B4PB-8D-F的相关规格与特性。这款内存芯片为嵌入式低功耗双倍数据速率2(Embedded Low Power Double Data Rate 2, LPDDR2)SDRAM,由美光科技生产。该芯片具有多种特性,旨在满足高性能计算设备对于内存性能及能效的需求。 #### 二、主要特性 1. **超低电压供电**:支持极低的核心与I/O电源供应,有助于降低整体功耗。 2. **频率范围**:工作频率可达400MHz,数据传输速率为800Mb/s/pin,适用于高速数据处理场景。 3. **4n Prefetch DDR架构**:采用先进的4n预取技术,提高数据吞吐量的同时保持较低的功耗。 4. **8个内部存储库**:提供并发操作能力,有效提升数据访问速度。 5. **命令/地址输入复用**:通过命令时钟(CK_t/CK_c)的每个上升沿和下降沿接收命令,实现双倍数据率传输。 6. **双向/差分数据选通信号**:每字节数据配备一个双向差分数据选通信号(DQS_t/DQS_c),以确保数据传输的准确性。 7. **可编程读/写延迟**:通过编程设置读写延迟时间(RL/WL),优化数据传输效率。 8. **突发长度控制**:支持4、8和16位的突发长度控制,灵活适应不同的数据传输需求。 9. **按库刷新功能**:每个存储库独立刷新,允许在刷新过程中执行其他操作,提高并发性。 10. **自动温度补偿自刷新**:内置温度传感器自动调节刷新周期,确保数据完整性不受温度变化的影响。 11. **部分阵列自刷新**:在低活动状态时节省电力消耗。 12. **深度省电模式**:进一步降低功耗,延长电池续航能力。 13. **可选择输出驱动强度**:根据系统需求调整输出电流,优化信号质量。 14. **时钟停止能力**:允许在不使用时关闭时钟信号,减少不必要的功耗。 15. **无铅包装**:符合RoHS标准,环保且不含卤素。 #### 三、选项配置 - **密度/片选**:8Gb/2-CS 双晶片配置。 - **组织方式**:x32,即32位数据宽度。 - **供电电压**:VDD1 = 1.8V,VDD2 = VDDQ = 1.2V。 - **修订版**:版本4。 - **封装类型**:12mm x 12mm FBGA绿色封装,168球,最大高度0.8mm。 - **时序参数**:循环时间2.5ns,读取延迟RL=6。 - **工作温度范围**:从-30°C到+85°C。 #### 四、关键时序参数 - **速度等级**:8D。 - **时钟频率**:400MHz。 - **数据传输率**:800Mb/s/pin。 - **读取延迟**:RL=6。 - **写入延迟**:WL=3。 #### 五、配置寻址 - **架构**:256Mega x 32。 - **单个封装的密度**:8Gb。 - **每封装中的晶片数**:2。 - **每通道的排数**:1。 - **每排中的晶片数**:2。 - **配置**:32Mega x 16 x 8 banks x 2。 - **行地址**:16K A[13:0]。 - **列地址**:2K A[10:0]。 #### 六、部件编号描述 - **部件编号**:EDB8132B4PB-8D-F-R / EDB8132B4PB-8D-F-D。 - **总密度**:8Gb。 - **配置**:256Meg x 32。 - **排数**:1。 - **通道数**:1。 - **封装尺寸**:12mm x 12mm (最大高度0.80mm)。 - **球间距**:0.50mm。 #### 七、总结 EDB8132B4PB-8D-F作为一款应用于Raspberry Pi 3B的内存芯片,其出色的性能和能效表现使其成为理想的选择。通过采用先进的技术与设计,如4n Prefetch DDR架构、双向/差分数据选通信号以及多种省电模式等,确保了在满足高性能需求的同时,也能够有效地控制功耗。这对于移动设备或依赖电池供电的应用来说尤为重要。此外,其广泛的配置选项也为不同应用场景提供了灵活性,使其能够适应多样化的硬件环境。
2025-12-06 15:49:07 1.87MB
1
《nRF24LXX_Prog:NRF24LU1烧写软件及DIY资料详解》 在无线通信领域,Nordic Semiconductor的nRF24LU1是一款备受青睐的超低功耗微控制器,它集成了2.4GHz无线射频功能,广泛应用于物联网(IoT)、智能家居、遥控系统等多个场景。本文将围绕“nRF24LXX_Prog”这一烧写软件,结合其配套的原理图和DIY资料,深入探讨nRF24LU1的编程与应用。 nRF24LU1是nRF24L01+的升级版,它内置了USB接口,使得与PC的通信变得更加方便。nRF24LXX_Prog正是为这款芯片设计的专用烧写软件,支持对固件进行更新和调试,是开发过程中不可或缺的工具。该软件可能包括了ISP(In-System Programming)和JTAG(Joint Test Action Group)等编程协议,允许用户在不拆卸芯片的情况下进行程序的烧录和调试。 软件“nRF24LXX_Prog_V0.01Beta_Package”很可能是nRF24LXX_Prog的早期版本,包含了软件安装文件、驱动程序、用户手册、示例代码和相关API文档。用户可以通过此包完成对nRF24LU1的初始化、数据传输、睡眠模式设置等功能的编程。 在实际操作中,配合原理图和DIY资料,开发者可以了解nRF24LU1在电路中的具体连接方式,如电源、晶振、GPIO引脚、SPI接口等。原理图能帮助识别硬件上的各个组成部分,理解它们如何协同工作,这对于故障排查和硬件扩展至关重要。 DIY资料可能包含了硬件搭建指南、软件配置教程以及示例项目,适合初学者快速上手。例如,如何将nRF24LU1连接到PC进行编程,或者如何利用其无线功能构建简单的通信系统。这些资料对于提升开发者实践能力,尤其是对硬件与软件的整合能力有着积极的推动作用。 在开发过程中,nRF24LU1的功耗管理是关键。通过nRF24LXX_Prog,用户可以设置芯片的低功耗模式,优化电池寿命。此外,nRF24LU1支持多种无线通信协议,如蓝牙Low Energy (BLE),这使得它在各种IoT应用中具有广泛的应用潜力。 nRF24LXX_Prog及其相关资料为nRF24LU1的开发提供了全面的支持,无论你是初次接触还是资深开发者,都能从中受益。通过深入学习和实践,你将能够充分利用nRF24LU1的特性,打造出高效、稳定且低功耗的无线解决方案。
2025-12-04 23:57:11 673KB NRF24LU1 NORDIC nRF24LXX_Prog
1
自然语言处理(NLP)是计算机科学领域的一个重要分支,主要关注如何使计算机理解、解析、生成和操作人类语言。随着人工智能的发展,NLP在求职市场上的需求日益增长,尤其在招聘季如“秋招”期间,对于相关岗位的面试准备至关重要。下面,我们将根据提供的文件名称,详细探讨NLP在机器学习、Python编程和深度学习方面的关键知识点。 1. **机器学习与自然语言处理**: 机器学习是NLP的核心技术之一,它让计算机通过数据学习规律并做出预测。在NLP中,常见的机器学习任务包括文本分类、情感分析、命名实体识别等。例如,文档《自然语言处理八股文机器学习.docx》可能涵盖了朴素贝叶斯分类器、支持向量机(SVM)、决策树等算法在处理文本数据时的应用,以及如何构建特征向量、调整超参数和评估模型性能。 2. **Python与自然语言处理**: Python是NLP最常用的编程语言,其丰富的库资源如NLTK、Spacy、Gensim和TensorFlow等提供了强大的NLP工具。《自然语言处理八股文python.docx》可能讨论了Python在处理文本数据时的基本操作,如分词、去除停用词、词干化,以及如何使用这些库进行文本预处理、模型训练和结果可视化。 3. **深度学习与自然语言处理**: 深度学习,尤其是卷积神经网络(CNN)和循环神经网络(RNN),在NLP领域带来了革命性的突破。LSTM和GRU是RNN的变体,常用于处理序列数据。Transformer模型,如BERT和GPT系列,已成为当前NLP最先进的预训练模型。《自然语言处理八股文深度学习.docx》可能详细介绍了这些模型的架构、工作原理、优化策略(如Adam优化器)、损失函数和如何利用预训练模型进行下游任务的微调。 4. **面试准备**: 在准备NLP面试时,除了掌握以上技术外,还需要了解语言模型、句法分析、语义理解、知识图谱、情感分析等基础知识。此外,熟悉当前的科研动态,如预训练模型的最新进展,以及项目经验、问题解决能力、团队合作精神等软技能也是面试官关注的点。 NLP领域的面试准备涵盖了广泛的理论知识和技术应用,要求应聘者具备扎实的机器学习基础,熟练的Python编程技巧,以及对深度学习模型的理解和实践经验。通过深入学习和实践,将有助于在激烈的秋招竞争中脱颖而出。
2025-12-04 20:10:33 131KB 自然语言处理 求职面试
1
蓝桥杯智能体开发模拟赛是一项面向高等院校学生和科技爱好者的技术竞赛活动,旨在培养参与者的智能体系统设计能力、编程技能以及解决实际问题的能力。智能体(Intelligent Agent)是人工智能领域的一个核心概念,它可以是一个软件系统或者一个机器人,能够通过传感器感知环境,并根据感知结果自主作出决策和行动。 在蓝桥杯智能体开发模拟赛中,参赛者需要根据给定的比赛任务和规则,设计并实现一个或多个智能体。这些智能体在模拟的或实际的环境中运行,需要完成特定的任务,如路径规划、资源管理、策略决策、交互协作等。竞赛题目往往设计为具有一定挑战性的实际问题,能够充分考察参赛者的创新能力和技术应用能力。 蓝桥杯智能体开发模拟赛通常会提供一系列的资料和工具包,帮助参赛者理解比赛要求和相关的技术背景。这些资料可能包括智能体的理论知识、编程接口说明、比赛平台的使用指南、历史比赛案例分析等。通过这些资料,参赛者能够更好地准备比赛,并在实践中学习如何将理论知识应用于解决实际问题。 在智能体开发的过程中,参赛者需要考虑的关键技术点可能包括但不限于:算法设计、数据结构选择、智能体的感知能力实现、决策策略制定、通信协议设计、测试验证方法等。这些技术点是智能体系统开发中的核心要素,也是比赛中需要重点关注和深入研究的地方。 此外,智能体开发模拟赛还可能涉及到团队协作的环节。由于智能体系统的复杂性,单个参赛者可能难以覆盖所有的技术领域。因此,团队成员之间需要明确分工,通过协作共同完成智能体的设计和实现。在这个过程中,有效的沟通和团队管理也是成功的关键因素之一。 蓝桥杯智能体开发模拟赛不仅是一次技术竞技活动,它还是一个促进学术交流、激发创新思维的平台。通过比赛,参赛者可以与其他技术爱好者交流想法,学习到先进的技术和方法,同时也能够检验自己的技术实力和解决问题的能力。对于致力于人工智能领域学习的学生和技术人员来说,这是一次难得的实践机会。 模拟赛中开发的智能体系统不仅可以应用于竞赛之中,许多技术和方法在实际应用中也有广泛的应用前景。例如,在工业自动化、智能家居、医疗辅助、交通管理等领域,智能体技术都发挥着重要作用。因此,通过参与蓝桥杯智能体开发模拟赛,参赛者不仅能够锻炼技能,还能够为未来的职业发展打下坚实的基础。 蓝桥杯智能体开发模拟赛是培养创新精神和实践能力的重要赛事,它为参与者提供了一个展示才华、学习进步的舞台。对于渴望在人工智能领域取得成就的年轻人来说,这是一次宝贵的尝试和经历。
2025-12-04 19:53:08 25.55MB 蓝桥杯
1