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

八股文面试day6

什么是代理?为什么要用动态代理?

代理模式大概意思是:为其他对象提供一个代理项或者是占位符,以控制对这个对象的访问

代理模式核心思想:创建一个代理对象,在客户端和目标对象之间的一个中介,主要作用就是保护目标对象以及增强目标对象

静态代理:相当于是这个代理对象我们需要手动去创建,而且一个代理对象只能服务于一种业务类型对象,那么当我们有n个业务目标对象的时候,就需要n个静态代理对象,这样的话就不利于我们业务的扩展

举例:有一个程序员张三,他平时加班比较多,并且加上公司的异性同事又比较少,然后又不善于与其沟通,那自己又缺少人脉和资源,所以一直没有找对象,这时张三的父亲张老三就比较着急了,他就利用自己的人脉然后经常给张三安排相亲,那张老三就是张三的代理的相亲对象,那么问题来了,一般情况下,张老三是不会给李四去安排相亲的,因为张老三是不会关心李四有没有对象这个事情,李四有没有对象只有李老四才会关心,那么这个时候呢,就出现了一个新的职业叫媒婆,媒婆就会关心张三李四王五赵六等这些有没有对象,媒婆就成了所有相亲需求的代理对象,那么这样的代理对象就可以服务于所有相关业务对象,这就相当于动态代理对象

减少代理对象的个数,从而去降低程序的复杂度,易于复杂业务的动态扩展

jdk proxy的基本实现原理

  1. 拿到目标对象的引用,并且通过反射去获取目标对象所有的接口
  2. 要重新去生成一个新的代理类,实现目标类所有的接口方法
  3. 把增强的逻辑代码加入到新生成的代理类的源代码中
  4. 动态去编译代理类的源代码并且生成字节码即class文件,这个部分是内存中完成的
  5. 去加载并执行新生成的代理对象

CGLib和JDK动态代理的对比

  • JDK动态代理是实现目标对象的接口,而CGLib是继承目标对象
  • JDK和CGLib都是在运行期生成字节码
  • JDK通过反射来调用目标方法,而CGLib是通过FastClass机制调用目标方法

目标对象即被代理对象 

为什么不用UUID来做主键?

  1. 无序不是趋势递增,而是会导致树的分裂与合并,树的问题虽然查询快,但是修改比链表慢,增加数据的时候会很慢 联想hashmap1.8以后他加了一个红黑树,他在链表和红黑树之间转来转去,如果数据小于6了,就把它转为链表了
  2. 内存 页放的数据越少,同样的数据我需要的页数越多 层级可能越高 磁盘io次数越多(int -> String) 

SpringBoot和传统的Spring有什么区别

首先,springboot采用了约定大于配置这样一个理念,大大简化了spring应用的初期搭建以及后期的维护工作,它提供大量的自动配置,开发者不需要进行繁琐的XML配置就可以专注于核心业务的开发

其次,springboot内置了Tomcat等应用服务器,让项目的部署也变得更加方便,同时springboot还提供了许多starters组件,方便集成各种常用的框架和中间件,比如Redis,JPA,MQ等,相比之下,传统的Spring配置更加灵活,可以适应各种复杂项目的需求,但是相应的配置更加复杂,对于我个人而言,我更加倾向于使用SpringBoot,因为它能让我更加专注与业务代码的编写,而不需要花费大量的时间在配置和环境搭建上,以上就是我对这个问题的理解

项目举例描述

比如说我先拿到这个文件,然后去遍历这个文件里面的词组,然后我给他建立一个正排的索引和一个倒排的索引,通过一个ID,也就是集合的下标,他们建立关系,然后查询的话就是用倒排获得这种ID,再通过正牌去拿到文章的内容,然后再展示出来,然后这边就会涉及到权重的问题和排序的问题 

反射

反射是指在运行时检查和操作类、接口、字段、方法等程序结构的能力。通过反射,可以在运行时获取类的信息,创建类的实例,调用类的方法,访问和修改类的字段等。通过反射可以提高程序的灵活性和可扩展性,可以实现更多的功能。但在使用反射时需要考虑性能问题以及安全等问题。

克隆

线程安全

如何查看端口80有没有被占用

netstat -anp | grep 80

相关文章:

八股文面试day6

什么是代理?为什么要用动态代理? 代理模式大概意思是:为其他对象提供一个代理项或者是占位符,以控制对这个对象的访问 代理模式核心思想:创建一个代理对象,在客户端和目标对象之间的一个中介,…...

【Unity】EventSystem.current.IsPointerOverGameObject()对碰撞体起作用

本来我是用 EventSystem.current.IsPointerOverGameObject()来检测是否点击在UI上的,但是发现,他对我的碰撞体也是返回ture,研究半天。。。。找不出问题,然后发现我的相机上挂载了PhysicsRaycaster,去掉之后就好了,至于…...

形态学操作—闭运算

闭运算(Closing)是图像形态学中的一种操作,它结合了膨胀(Dilation)和腐蚀(Erosion)操作。闭运算的原理是先对图像执行腐蚀操作,然后再进行膨胀操作。这个过程能够消除图像中的小孔洞…...

HEVC-SCC rgb file input

关键字 csc allocateCSCBuffer()-> m_apcPicYuvCSC xCheckRDCostIntraCSC():更简单, enum ACTRDTestTypes { ACT_TWO_CLR 0, //two color space ACT_TRAN_CLR 1, //transformed color space ACT_ORG_CL…...

XG916Ⅱ轮式装载机后驱动桥设计机械设计CAD

wx供重浩:创享日记 对话框发送:装载机 获取完整论文报告工程源文件 本次设计内容为XG916Ⅱ装载机后驱动桥设计,大致上分为主传动的设计,差速器的设计,半轴的设计,最终传动的设计四大部分。其中主传动锥齿轮…...

pcr扩增原理中的变性 退火 延申扩增

一、PCR简介 聚合酶链式反应(PCR)是一种用于放大扩增特定的DNA片段的分子生物学技术,它可看作是生物体外的特殊DNA复制,PCR的最大特点是能将微量的DNA大幅增加。 二、PCR原理 1.背景 DNA的半保留复制是生物进化和传代的重要途…...

C语言——输入一个4位正整数,输出其逆数。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i,j 0;int a1,a2,a3,a4;printf("输入一个4位正整数&#xff1a;\n");scanf("%d",&i);a1 i/1000; a2 i/100%10; a3 i/10%10; a4 i%10; printf("千位a1%d,百位a…...

jQuery_02 引入jQuery,初试牛刀

引入jquery文件 我们在官网上点击dowmload那个 会发现进入了一个网页&#xff0c;里面全部是代码&#xff0c;你可能还在想为什么下载不了&#xff0c;其实jquery不跟vue一样&#xff0c;整个jquery就是一个js文件而已&#xff0c;所以直接ctrla 全选 ctrlc复制 &#xff0c;然…...

pandas获取年月第一天、最后一天,加一秒、加一天、午夜时间

Timestamp对象 # ts = pandas.Timestamp(year=2023, month=10, day=15, # hour=15, minute=5, second=50, tz="Asia/Shanghai") ts = pandas.Timestamp("2023-10-15 15:05:50", tz="Asia/Shanghai") # 2023-10-15 15:05…...

Unsupervised Condition GAN

Unsupervised Condition GAN主要有两种做法&#xff1a; Direct Transformation 直接输入domain X图片&#xff0c;经过Generator后生成对应的domain Y的图像。这种转化input和output不能够差太多。通常只能实现较小的转化&#xff0c;比如改变颜色等。 Projection to Commo…...

Crypto(11)HECTF-rsarsa(明文存在线性关系)

题目如下&#xff1a; from functools import reduce from Crypto.Util.number import * import random from secret import flag,hintdef generate_PQ(bits):x getPrime(bits) >> bits//2 << bits//2#右移bit//2位后左移bit//2位while True:p x random.getran…...

论文阅读 Forecasting at Scale (二)

最近在看时间序列的文章&#xff0c;回顾下经典 论文地址 项目地址 Forecasting at Scale 3.2、季节性 3.3、假日和活动事件3.4、模型拟合3.5、分析师参与的循环建模4、自动化预测评估4.1、使用基线预测4.2、建模预测准确性4.3、模拟历史预测4.4、识别大的预测误差 5、结论6、致…...

刷题感悟w

题目很长的一定要慢慢把题目的意思搞清楚 有重复操作不知道怎么办 可以用数组去标记 你好&#xff01;在C中&#xff0c;replace 函数通常是用于替换容器&#xff08;例如 std::vector 或 std::string&#xff09;中的特定元素的函数。以下是 std::replace 函数的一般用法&…...

记一次linux操作系统实验

前言 最近完成了一个需要修改和编译linux内核源码的操作系统实验&#xff0c;个人感觉这个实验还是比较有意思的。这次实验总共耗时4天&#xff0c;从对linux实现零基础&#xff0c;通过查阅资料和不断尝试&#xff0c;直到完成实验目标&#xff0c;在这过程中确实也收获颇丰&…...

java操作富文本插入到word模板

最近项目有个需求&#xff0c;大致流程是前端保存富文本&#xff08;html的代码&#xff09;到数据库&#xff0c;后台需要将富文本代码转成带格式的文字&#xff0c;插入到word模板里&#xff0c;然后将word转成pdf&#xff0c;再由前端调用接口下载pdf文件&#xff01; 1、思…...

JMeter---BeanShell实现接口前置和后置操作

在JMeter中&#xff0c;可以使用BeanShell脚本来实现接口的前置和后置操作。 下面是使用BeanShell脚本实现接口前置和后置操作的步骤&#xff1a; 1、在测试计划中添加一个BeanShell前置处理器或后置处理器。 右键点击需要添加前置或后置操作的接口请求&#xff0c;选择&quo…...

【Linux】共享内存

文章目录 一、共享内存的原理详谈共享内存的实现过程二、共享内存的接口函数1.shmget2. shmatshmdtshmctl 进程间使用共享内存通信三、共享内存的特性 关于代码 一、共享内存的原理 共享内存是由操作系统维护和管理的一块内存。 共享内存的本质是内核级的缓冲区。 一个进程向…...

五、双向NAT

学习防火墙之前&#xff0c;对路由交换应要有一定的认识 双向NAT1.1.基本原理1.2.NAT Inbound NAT Server1.3.域内NATNAT Server —————————————————————————————————————————————————— 双向NAT 经过前面介绍&#xff0c;…...

P1028 [NOIP2001 普及组] 数的计算

时刻记住一句话&#xff1a;写递归&#xff0c;1画图&#xff0c;2大脑放空&#xff01;&#xff01;&#xff01; 意思是&#xff0c;自己写递归题目&#xff0c;先用样例给的数据画图&#xff0c;然后想一个超级简单的思路&#xff0c;直接套上去就可以了。 上题干&#xff…...

浅析三相异步电动机控制的电气保护

安科瑞 华楠 摘 要&#xff1a;要求三相异步电动机的控制系统不仅要保证电机正常启动和运行&#xff0c;完成制动操作&#xff0c;还要通过相关保护措施维护电动机的安全使用。基于此&#xff0c;本文以电动机电气保护作为研究对象&#xff0c;结合三相异步电动机的机械特点&…...

预算编制怎么做?一文读懂预算编制六大步骤(附流程图)

月底了&#xff0c;又到了财务人最怕的预算编制时刻。说实话&#xff0c;你之所以怕做预算、总觉得做不好&#xff0c;根本原因还是流程出了问题。预算编制本身是一套严谨的管理流程&#xff0c;是有方法可循的。今天&#xff0c;我会按照最基础的六个步骤&#xff0c;一步步教…...

手把手教你用STM32CubeMX配置SAI接口驱动MEMS数字麦克风(PDM转PCM实战)

STM32CubeMX实战&#xff1a;SAI接口驱动MEMS麦克风的PDM转PCM全流程解析 在智能语音设备爆发的时代&#xff0c;MEMS数字麦克风因其小尺寸、高信噪比和抗干扰能力成为嵌入式音频采集的首选。但许多开发者首次接触PDM信号转换时&#xff0c;常被时钟同步、滤波器设计等问题困扰…...

高预应力混杂配筋,大跨度梁瘦身省钱的HPH构造

近期&#xff0c;工程领域持续热议的诸多话题当中&#xff0c;处于热度高位的话题之一&#xff0c;便是HPH构造。它并非全新的技术架构&#xff0c;而是一种能使大跨度混凝土梁达成“瘦身”效果&#xff0c;在根本上不削减强度的新型配筋技术手段。HPH构造&#xff0c;其全称为…...

实测10款降AI工具|去AI痕迹高效方法,附免费降AI技巧

前言&#xff1a;AI率动辄90%&#xff1f;降AI我踩过的坑全给你说透 各位正在赶论文的小伙伴看过来&#xff01;最近被问得最多的问题&#xff0c;就是论文的AIGC检测率太高怎么办。毕竟现在大家写文献综述、整理实验背景&#xff0c;多多少少都会用AI工具搭个框架&#xff0c…...

人IgE His标签蛋白如何助力肿瘤免疫疗法创新?

一、过敏反应与肿瘤免疫有何内在关联&#xff1f;过敏反应是机体免疫系统对花粉、海鲜、尘螨等环境抗原产生的过度防卫现象&#xff0c;临床表现为打喷嚏、皮疹甚至呼吸困难等症状。这一现象的免疫学基础在于肥大细胞的快速应答机制。作为免疫系统中的“哨兵”&#xff0c;肥大…...

解决Linux蓝牙音频连接疑难杂症:BlueZ 5.50与PulseAudio 12.2常见报错分析与修复指南

Linux蓝牙音频深度排障指南&#xff1a;从协议栈原理到实战修复 当你满心欢喜地戴上蓝牙耳机&#xff0c;准备在Linux系统上享受音乐时&#xff0c;却发现设备明明显示已连接却死活不出声——这种挫败感我太熟悉了。作为经历过数十种蓝牙音频故障的老兵&#xff0c;我将在本文分…...

Neon MCP Server 服务说明文档

1. 服务概述一句话简介&#xff1a;通过自然语言命令管理Neon数据库的MCP服务器服务名称&#xff1a;Neon MCP Server版本号&#xff1a;最新版本开发者/提供方&#xff1a;NeonDatabase Labs协议类型&#xff1a;MCP (Model Context Protocol)2. 核心功能列出该MCP服务提供的主…...

告别数据缺失烦恼:手把手教你用SwatWeather为SWAT模型插补气象数据(附临洮站1970-2020年实战)

水文建模实战&#xff1a;用SwatWeather高效处理气象数据缺失问题 临洮站50年气象数据的完整插补方案 从事水文模型研究的朋友们都知道&#xff0c;气象数据的完整性和准确性直接影响着模拟结果的可靠性。在实际工作中&#xff0c;我们常常会遇到历史气象数据存在缺失的情况——…...

图像质量评价避坑指南:手把手教你用OpenCV和lpips库批量计算PSNR/SSIM/LPIPS

图像质量评价避坑指南&#xff1a;手把手教你用OpenCV和lpips库批量计算PSNR/SSIM/LPIPS 在数字图像处理领域&#xff0c;量化评估图像质量是算法开发、效果验证和系统优化中不可或缺的一环。无论是评估超分辨率重建效果、测试压缩算法性能&#xff0c;还是验证图像修复质量&a…...

避坑指南:SpringBoot集成HAPI处理HL7消息时,你可能会遇到的编码与ACK回复问题

SpringBoot集成HAPI处理HL7消息的实战避坑指南 医疗系统间的数据交换往往采用HL7协议标准&#xff0c;而HAPI作为Java生态中最成熟的HL7处理框架&#xff0c;与SpringBoot的结合能快速构建稳定服务。但在实际联调中&#xff0c;开发者常会遇到字符集混乱、ACK响应不规范等"…...