当前位置: 首页 > 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/619888/

相关文章:

  • QT点云渲染实战--从QGLWidget到交互式3D可视化
  • Vitis HLS 2021.2 配置 OpenCV 完整避坑指南:从CMake编译到环境变量设置
  • LabelImg标注数据转换全攻略:XML与TXT互转的Python脚本详解
  • 把手工发版产品化:一键部署闭环的工程落地复盘(FastAPI + Paramiko)
  • OpenClaw多模型切换:Qwen3-14b_int4_awq与其他本地模型的协同使用
  • 02_TiDB向量搜索深度实战:从基础概念到生产部署
  • IDEA中模块位置创建错了想重建时提示改模块已存在的解决办法
  • claw-code 源码分析:结构化输出与重试——`structured_output` 一类开关如何改变「可解析性」与失败语义?
  • Windows 11终极清理指南:如何用Win11Debloat让你的系统重获新生
  • 从视频孪生到空间计算:镜像视界以AI重构三维感知新范式
  • 新手必看:用PHP伪协议轻松拿下SWPUCTF新生赛的include题(附完整payload)
  • OpenClaw Control UI 剪贴板 HTTP 兼容性问题解决方案 - Clipboard API 降级实践
  • 别再死记硬背了!用Python+Arduino动手搭建一个简易的计算机控制系统(从传感器到执行器)
  • 从“利旧”到“新建”:一个5G室外宏站共建项目的设备连接与布线实战图解(含AAU/BBU/SPN)
  • 2025届学术党必备的十大降重复率平台实际效果
  • [obsidian | claude code ]
  • 前端转行AI Agent:收藏这份干货,让你的技能值翻倍!
  • 紧急预警:2026Q2起,未集成AI原生能力的低代码平台将无法通过等保3.0+AI专项审计!SITS2026演示全合规路径曝光
  • 如何为表名加上图标前缀_根据表前缀自动匹配图标
  • Python实战:用gensim玩转LDA主题模型评估(困惑度+一致性可视化)
  • 南京生发机构哪家好?2026年权威甄选指南 - 小艾信息发布
  • zq—算法基础:时空复杂度()推
  • 开关电源纹波与噪声的实战抑制技巧:从理论到PCB设计优化
  • claw-code 源码分析:OmX `$team` / `$ralph`——把 AI 辅助开发从偶发灵感变成可重复流水线
  • 初学者如何避免HTML工具卡顿_低门槛高效开发配置建议【技巧】
  • 基于eNSP的校园网高可用与无线覆盖综合实验
  • FigmaCN中文插件:设计师的终极中文界面解决方案
  • Switch第三方控制器完美支持方案:sys-con系统模块深度解析
  • Xinference-v1.17.1在嵌入式开发中的应用:基于Keil5的AI模型部署
  • Multi-Agent在智慧城市管理中的应用模拟:交通、能源与公共服务的协同