当前位置: 首页 > news >正文

基于 Java 解释一下硬编码和非硬编码?

基于 Java 解释一下硬编码和非硬编码?

文章目录

  • 基于 Java 解释一下硬编码和非硬编码?
  • 一、基本说明
  • 二、硬编码(Hardcoding)
  • 三、非硬编码

一、基本说明

硬编码和非硬编码是指软件开发中配置数据和变量处理方式的概念。

二、硬编码(Hardcoding)

硬编码(Hardcoding): 硬编码是指在程序代码中直接写入具体的数据、配置信息或常量,而不是通过外部配置文件、数据库或用户输入来获取。硬编码使得修改这些值时需要直接更改代码并重新编译程序。这通常被认为是一种不良的编程实践,因为它违反了可维护性、灵活性和可扩展性原则。

例如,如果你在代码中直接指定了数据库的连接字符串,那么当你需要更换数据库服务器时,就需要修改代码并重新部署应用程序

Java 中硬编码的示例:

public class HardcodedExample {private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/mydatabase";// 其他代码...
}

三、非硬编码

非硬编码(Non-Hardcoding): 非硬编码是指通过外部配置文件、环境变量、命令行参数、数据库或用户输入等方式来设置和获取程序中使用的数据和配置信息。这样做的好处是,修改配置时无需更改程序本身的代码,只需修改外部资源即可,提高了程序的灵活性和可维护性

Java 中非硬编码的示例(使用属性文件):

database.properties 文件:

database.url=jdbc:mysql://localhost:3306/mydatabase

Java 代码中读取属性文件:

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;public class NonHardcodedExample {private String databaseUrl;public NonHardcodedExample() {Properties properties = new Properties();try {properties.load(new FileInputStream("database.properties"));databaseUrl = properties.getProperty("database.url");} catch (IOException e) {e.printStackTrace();}}// 其他代码...
}

在上述非硬编码的示例中,如果数据库URL发生变化,只需修改database.properties文件中的database.url属性值,而无需更改和重新编译Java代码。这大大提高了应用程序的灵活性,使得维护和配置更新更加简单。

http://www.lryc.cn/news/233126.html

相关文章:

  • 【机器学习7】优化算法
  • 常见的近似算法
  • 【完整详细】IntelliJ IDEA中使用Docker插件一键部署前后端分离项目
  • ubuntu20.04 安装TensorRT,解决依赖问题
  • 你知道如何科学的学习吗?-关于个人成长的思考
  • Java学习之路 —— 多线程
  • 【云原生-Kurbernetes篇】K8s的存储卷/数据卷+PV与PVC
  • 二层、三层交换机之间到底有什么区别?
  • 【论文阅读】2736. 最大和查询-2023.11.17
  • 2. zk集群部署
  • 抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!
  • IDEA软件使用步骤
  • 设计模式-11-模板模式
  • 【技术分享】EIGRP stub实验
  • Python 爬虫 AES DES加密反爬
  • (论文阅读30/100)Convolutional Pose Machines
  • vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll
  • WPF显示3D图形
  • Xrdp+Cpolar实现远程访问Linux Kali桌面
  • 赚钱
  • Django command执行脚本
  • GLSL: Shader cannot be patched for instancing.
  • Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )
  • css 设置网页最小字体为12px
  • Failed to restart networking.service: Unit networking.service not found.
  • 基于单片机设计的水平仪(STC589C52+MPU6050)
  • 射频与微波综合测试仪-4958手持式微波综合测试仪
  • Redis内存淘汰机制
  • EXCEL——计算数据分散程度的相关函数
  • 详解如何使用Jenkins一键打包部署SpringBoot项目