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

C# 面试高频题:装箱和拆箱是如何影响性能的?隙

OCP原则

ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。

依赖倒置原则(DIP)

什么是依赖倒置原则

核心是面向接口编程、面向抽象编程, 不是面向具体编程。

依赖倒置原则的目的

降低耦合度,提高扩展力

什么是控制反转

控制反转:Ioc(Inversion of Controll),一种编程思想、设计模式。为了降低程序耦合度

反转有两点:

不在程序中采用硬编码的方式new对象,把创建对象交给别人(UserService userService = new UserServiceImplForMysql())。

不在程序中采用硬编码的方式维护对象关系。

spring框架

spring实现了Ioc,因此可以创建和维护对象见的关系。

控制反转实现方式主要有 依赖注入(Dependency Injection DI)

依赖注入的方式有以下方式:

Set注入(执行Set方法赋值)

构造方法注入(执行构造方法赋值)

依赖注入中的“依赖”、“注入”的含义

依赖:A对象和B对象的关系

注入:是一种手段,通过这种手段让A和B产生关系。

依赖注入的实现方式有:set注入和构造方法注入。

set注入

配置文件配置bean

在类中写set方法

package com.ali.service;

import com.ali.dao.UserDao;

public class UserService {

private UserDao userDao;

// set注入需要提供一个set方法,方法名以set开头,spring容器调用这个set方法注入UserDao

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

public void saveUser(){

userDao.insertUser();

}

}

这样即可注入成功。

注入外部bean

注入内部bean

注入简单类型

实际开发中,一般不会吧Date类型当作简单类型,会使用ref来注入Date类型

级联属性赋值

注入数组

注入List和Set类型

张三

里斯

詹姆思

北京

上海

广州

注入Map集合

注入Properties类型

v1

v2

v3

注入null和空字符串

注入特殊字符串

构造注入

配置文件配置bean

2.使用p命名空间注入属性,语法:p:属性名="属性值" p:属性名-ref="引用类型属性值"-->

c命名空间注入(简化构造注入)

基于xml的自动装配byName

基于xml的自动装配byType

引入外部的属性配置文件

jdbc.properties文件

jdbc.diverClass=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/spring6db?useSSL=false&server

jdbc.username=root

jdbc.password=123456

spring怎么实例化对象?

默认情况下spring通过反射机制,调用类的无参数构造方法实例化对象

把创建好的对象存储到Map结构中。

当有多个配置文件时,可读取多个配置文件

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml","spring-dao.xml");

可以在配置文件中注入jdk自带的类,只要这个类有无参数构造方法就行。

getBean()时,Bean的id不存在时会报错

从类路径之外的路径获取xml配置文件

// 读取类路径之外的配置文件

ApplicationContext context = new FileSystemXmlApplicationContext("D:/applicationContext.xml");

Object user= context.getBean("user"); // 获取spring容器中的对象

ApplicationContext的超级父接口是BeanFactory。

BeanFactory是Ioc容器的顶级接口。

spring的Ioc容器底层使用了工厂模式。

启用Log4j2

spring5之后支持Log4j2框架。

引入依赖

org.apache.logging.log4j

log4j-slf4j2-impl

2.19.0

org.apache.logging.log4j

log4j-core

2.19.0

编写配置文件,文件名必须是log4j2.xml,放在类根路径下

使用日志框架 ,在SpringTest01类中使用如下代码

Logger logger = LoggerFactory.getLogger(SpringTest01.class);

logger.info("日志信息");凰咎旁称

http://www.jsqmd.com/news/614222/

相关文章:

  • 2026年执医课程性价比最新测评:零基础在职考生真正用得上的课程 - 医考机构品牌测评专家
  • 2.4 复现案例:在A股复现一个经典价值因子(代码+数据)
  • 从零构建大模型--实操--搭建python环境
  • Java响应式演进关键转折点(Loom+Spring WebFlux深度耦合剖析):JDK21 GA后仅剩90天的兼容窗口期
  • java内置方法总结及基础算法
  • 008、模型优化:剪枝、量化、蒸馏与TensorRT部署加速全攻略
  • 【2026开年巨献】精通Python十讲:第十讲 - 设计模式、架构与工程化思维
  • 微信网页版浏览器扩展技术实现与架构解析
  • 从零入门性能测试:理论+JMETER实操,看完就能上手啬
  • 如何用JIEJIE.NET有效保护.NET程序集版权?全面实践指南
  • DoraMate 项目(18) - Dora C# 绑定开发与集成指南:从 Node 到 NativeAOT Operator 的落地实践
  • 2026.04.07随记
  • 一文学习 工作流开发 BPMN、 Flowable脱
  • 【Hot 100 刷题计划】 LeetCode 240. 搜索二维矩阵 II | C++ 巧妙利用单调性 (BST 法)
  • AI写文+自动发布实现方法,自媒体矩阵新玩法
  • OpCore-Simplify:智能配置效率工具如何重塑黑苹果安装体验
  • 2026最新盘点:十大高清壁纸图片素材网站与背景图片素材网站推荐 - 品牌2025
  • YOLO-Master 与 YOLO 开始嫡
  • 我做的丐版 Claude Code 代码已开源
  • 题解:P16208 [ECUSTPC 2025] 金色走廊
  • OpenClaw 2026.3.31 版本授权报错/执行被拒问题排查与解决
  • Product Hunt 每日热榜 | 2026-04-09
  • RimSort:智能模组管理工具解决RimWorld加载冲突与性能优化指南
  • CSSCI论文写作10:质化研究方法
  • 如何选择精密电子产品用排针排母厂家?2026年专业选购指南 - 品牌策略主理人
  • 隐写术工具技术指南:从原理到实践的完整探索
  • 如何突破NCM格式限制?ncmdumpGUI让音乐自由播放的完整方案
  • 3分钟掌握Windows安卓应用安装神器:APK-Installer终极指南
  • GoCodingInMyWay嘶
  • 5步快速解锁网易云音乐NCM文件:ncmdumpGUI完整使用指南