Linkage conventions

本文介绍了程序间传递控制时必须遵循的寄存器和保存区链接约定,确保程序能够成功地从一个传递到另一个,并保持运行所需的寄存器内容和参数数据。

转自:http://publib.boulder.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.ieaa600%2Fchap2.htm

Linkage conventions are the register and save area conventions a program must follow when it receives control from another program or when it calls another program. It is important that all programs follow the linkage conventions described here to ensure that the programs can successfully pass control from one to the other while preserving register contents and parameter data that they need to run successfully.

内容概要:本文系统阐述了Java Persistence API(JPA)的核心概念、技术架构、核心组件及实践应用,重点介绍了JPA作为Java官方定义的对象关系映射(ORM)规范,如何通过实体类、EntityManager、JPQL和persistence.xml配置文件实现Java对象与数据库表之间的映射与操作。文章详细说明了JPA解决的传统JDBC开发痛点,如代码冗余、对象映射繁琐、跨数据库兼容性差等问题,并解析了JPA与Hibernate、EclipseLink等实现框架的关系。同时提供了基于Hibernate和MySQL的完整实践案例,涵盖Maven依赖配置、实体类定义、CRUD操作实现等关键步骤,并列举了常用JPA注解及其用途。最后总结了JPA的标准化优势、开发效率提升能力及在Spring生态中的延伸应用。 适合人群:具备一定Java基础,熟悉基本数据库操作,工作1-3年的后端开发人员或正在学习ORM技术的中级开发者。 使用场景及目标:①理解JPA作为ORM规范的核心原理与组件协作机制;②掌握基于JPA+Hibernate进行数据库操作的开发流程;③为技术选型、团队培训或向Spring Data JPA过渡提供理论与实践基础。 阅读建议:此资源以理论结合实践的方式讲解JPA,建议读者在学习过程中同步搭建环境,动手实现文中示例代码,重点关注EntityManager的使用、JPQL语法特点以及注解配置规则,从而深入理解JPA的设计思想与工程价值。
05-29
### Linkage in Programming or Software Development In the context of programming and software development, **linkage** refers to the process by which a linker resolves references between different object files or libraries. This is a critical step during the compilation of programs, particularly in languages like C and C++. The concept of linkage involves binding symbolic references (such as function names or variables) to their corresponding definitions across multiple translation units. The following concepts are essential when discussing linkage: 1. **Symbol Resolution**: During the linking phase, the linker identifies and resolves symbols that are declared in one file but defined in another. For instance, if a function `foo()` is declared in one source file and defined in another, the linker ensures these references align correctly[^2]. 2. **External vs. Internal Linkage**: - Symbols with **external linkage** are accessible across multiple translation units. This is typical for global variables and functions intended to be shared among different parts of a program. - Symbols with **internal linkage** are restricted to a single translation unit. These are often declared using the `static` keyword in C or C++[^4]. 3. **Dynamic Linking**: Dynamic linking allows shared libraries (or DLLs on Windows) to be loaded at runtime rather than being included in the final executable. This reduces the size of executables and promotes code reuse. The `.dynamic` section in ELF binaries plays a crucial role here, where tags like `DT_NEEDED` specify dependent libraries[^5]. 4. **Static Linking**: In contrast to dynamic linking, static linking embeds all necessary library code directly into the final executable. While this increases the size of the binary, it eliminates dependencies on external libraries at runtime[^3]. 5. **Name Mangling**: In C++, function overloading introduces the need for name mangling, a process that encodes additional information (such as parameter types) into the symbol name. This ensures that overloaded functions can coexist without naming conflicts during linkage[^2]. 6. **Weak Symbols**: Some linkers support weak symbols, which allow a symbol to have a default definition if no strong definition exists. This is useful for providing fallback implementations of functions or variables. ```c // Example of External and Internal Linkage in C // File: module1.c int global_variable = 10; // External linkage static int local_variable = 20; // Internal linkage void shared_function() { // Accessible from other files } // File: module2.c extern int global_variable; // Declaration with external linkage void use_shared_function() { shared_function(); // Calls the function defined in module1.c } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值