我们爱分享--SSH方面的面试《-》

Excel COUNTIF函数原理与实战避坑指南 COUNTIF是Excel中最基础也最易误用的统计函数,其本质是一个严格字符比对引擎,而非智能搜索工具。它通过逐单元格匹配文本、数值或带运算符的条件表达式实现单条件计数,核心在于精确性与数据类型一致性。理解其对大小写敏感、空格/不可见字符零容忍、通配符仅作用于文本等底层逻辑,是避免#VALUE!、#NAME?及结果为0等高频错误的关键。在财务建模、供应链分析、销售报表等真实场景中,需结合TRIM/CLEAN/EXACT/SUMPRODUCT等函数协同清洗与扩展能力。本文聚焦COUNTIF的执行机制、典型误用 阅读详情
回忆当初面试,SSH方面的,被问到很多相同的问题,随之,就将这些面试题总结出来,给即将面试的童鞋一些小小总结,没办反,现在SSH依然这么火。
大家都是被逼的!
Struts1工作原理
Struts1工作原理图

1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想)
 
2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。
 
3、form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。
 
4、派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。
 
5、处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。
 
6、返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。
 
7、查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。
 
8、响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。
Struts1优缺点(为什么要用strust1)
1.优点: 
       ①开源的框架,结构清晰 
       ②是MVC的经典实现(MVC是一种思想,而不是一种技术) 
       ③处理异常机制,实现国际化 
       ④具有强大的标签库 
       ⑤解决了JSP页面存在大量的JAVA代码,维护起来方便 
       ⑥在formBean中会自动提交,不会去使用传统的get、set方法得到值、取值 

2.缺点: 
       ①配置复杂 
       ②测试不方便 
       ③依赖web容器 
       ④action是一个单例模式,必须设置为线程安全 
Struts2工作原理
struts2工作原理图

1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 
6 ActionProxy创建一个ActionInvocation的实例。 
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的
Struts2优缺点(即为什么要用struts2)
Struts2就会自动的进行验证。还有很多,比如国际化资源文件等。 
Struts2的开发中来,如果你重来没有用过任何框架,你也可以通过快速的学习,加入到Struts2的应用开发中来,因为它足够的简单。 
大量的拦截器:
Struts2本身提供了大量的可重用的拦截器,比如类型转换拦截器,很多时候我们从页面取得参数,这个时候它是String类型的,我们需要手动。
基于插件的框架:
Struts2是一个基于插件的框架,社区中提供了很多实用的插件,比如jfreechat/json等等,使用这些插件可以简化我们的开发,加快开发进度。
struts2最大的缺点莫过于在好多web服务器上支持不好,例如在websphere5.5,weblogic8.1及以前版本支持非常查,需要用最新的。
多种视图的支持:
多种视图的支持:jsp,freemarker,Veloctiy,只要你愿意,你甚至可以通过轻松的改造让它支持pdf,同一个项目中你可以支持多种视图。
更加的模块化:
与Struts1.X 相比,Struts2更加的模块化,可以轻松将配置信息按功能界限拆分成多个文件,便于管理和团队协作开发。
与Spring的集成:
与Struts1.x相比,Struts2不必再自己编写singleton,进一步的降低了程序间的耦合性,就Struts2内部本身而言,降低了框架本身的偶合性。
基于pojo易于测试:
在Struts1.x中我需要Mock出这两个Http对象,使我们很难编写Action的单元测试,与Struts1.x相比,Struts2的Action 不再依赖于
 
HttpServletRequest和HttpServletResponse对象,使我们能够更方便的针对Action编写单元测试。
Hibernate工作原理
1.         读取并解析配置文件
2.         读取并解析映射信息,创建SessionFactory
3.         打开Sesssion
4.         创建事务Transation
5.         持久化操作
6.         提交事务
7.         关闭Session
8.         关闭SesstionFactory

Hibernate优缺点
优点: 
1: hibernate是基于ORMapping技术的开源的框架,对JDBC进行了轻量级的封装,使用面向对象的思维来操纵数据库。 
2:hibernate提供了session缓存和二级缓存,对于不需要进行复杂查询的系统,性能有提升。 
3:低侵入式设计 

缺点: 
1:hibernate学习成本太高。 
2:不适合有复杂的sql查询(统计) 。 
3:不适合大量的聚集操作,(存储过程)
优缺点补充:
1、 不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效; 
2、因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了; 
3、使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作); 
4、Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口) 
5、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们一般称为轻量级框架 
6、Hibernate代码测试方便。
Excel/WPS VBA自定义函数实战:从原理到部署的完整指南 在数据处理领域,函数是封装计算逻辑的核心单元,它通过预定义规则将输入转换为输出,实现计算过程的抽象与复用。其工作原理基于参数传递与返回值机制,确保计算的可预测性。自定义函数的技术价值在于突破软件内置功能限制,允许用户根据特定业务逻辑定制计算规则,从而提升数据处理的自动化水平与准确性。在Excel或WPS表格等电子表格应用场景中,面对复杂业务计算、数据清洗或动态报表生成等需求,内置函数往往无法满足。通过VBA(Visual Basic for Applications)编程,用户可以创建自定义公式函数(UDF 阅读详情

相关推荐

Excel VBA与工作表函数差异解析:FIND、SUBSTITUTE、MATCH等函数跨界使用指南

在Excel数据处理中,函数是核心计算工具,分为工作表函数和VBA内置函数两套体系。工作表函数如SUMIFS、VLOOKUP等直接在单元格中运行,而VBA函数则在编程环境中操作变量。两者虽名称相似,但在调用方式、参数要求、错误处理等方面存在本质差异。理解这些差异对提升自动化脚本的健壮性和效率至关重要。例如,文本查找函数在工作表中用FIND/SEARCH,在VBA中则需使用InStr或通过WorksheetFunction对象调用,且错误处理机制完全不同。掌握这些区别能帮助开发者在数据清洗、报表生成等场景中避

weixin_30386713的博客 435

Excel LAMBDA函数精讲:从基础语法到递归与数组实战

在Excel公式处理中,LAMBDA函数正成为一种重要的自定义函数工具,它允许用户将复杂逻辑封装为可复用的命名函数。其核心原理是参数化输入与表达式计算,配合Excel 365的动态数组函数如MAP、REDUCE、SCAN,能够实现批量数据的高效处理。递归机制则进一步拓展了层级拆解场景,如阶乘和斐波那契计算。在实际工程中,LAMBDA函数可应用于业绩拆分、文本提取、多条件查找等高频需求,有效避免长公式的重复维护问题。掌握LAMBDA函数能显著提升公式的可读性和可维护性,是Excel高阶用户进阶的关键技能。本文

429

Python Playwright实战:豆瓣电影TOP10数据爬取与Excel报表生成

浏览器自动化是Web数据采集和测试领域的关键技术,它通过模拟真实用户操作来获取动态渲染的页面内容。其核心原理是程序化控制浏览器引擎,执行JavaScript并获取完整的DOM结构,从而解决传统静态爬虫难以处理单页应用(SPA)和复杂交互的问题。在技术价值层面,自动化工具能显著提升数据采集的稳定性和效率,尤其适用于需要处理反爬机制或动态内容的场景。以豆瓣电影TOP10数据采集为例,通过Playwright这一现代浏览器自动化框架,可以完整实现从页面导航、元素定位到数据提取的全流程,并结合openpyxl库将结

weixin_34319817的博客 440

Excel乘法进阶:从基础运算到数据关系建模

Excel中的乘法远不止‘=A1*B1’的简单计算,其本质是建立数据维度间的映射关系,涵盖位置对应、类型一致与动态扩展三大原理。掌握相对/绝对/混合引用可规避90%的公式翻车;SUMPRODUCT、XLOOKUP和MMULT等函数组合,支撑条件过滤、跨表查找与多维加权等高阶场景。技术价值在于将业务规则(如分段提成、区域加成)转化为可维护、可验证的结构化逻辑,广泛应用于财务提成核算、销售ROI分析、库存周转建模等真实工作流。本文聚焦乘法作为数据建模引擎的核心实践路径。

defkaug153461的博客 396

Excel/WPS中REDUCE与LAMBDA递归:折叠与展开的选型指南

在表格公式的世界里,数据计算常被划分为两类:一类是把大量数据折叠成少数结果,另一类是将未知深度的层级结构逐层展开。前者对应数组折叠编程思想,后者依赖递归逻辑。REDUCE函数通过迭代折叠维护累加器,循环次数由数组长度决定,适合分组汇总、动态拼接等场景;而LAMBDA递归通过函数自调用实现深度遍历,终止条件由IF判断控制,特别适合处理多级BOM、部门树等树形结构。理解二者在终止条件、循环深度和底层逻辑上的差异,能帮助工程师在数据处理时快速做出正确选型,避免公式卡死或性能瓶颈。本文从基础概念切入,结合真实案例对

weixin_33889245的博客 418

别再手动复制了!Excel里用这个公式批量生成UUID(带连字符/无连字符两种格式)

本文详细介绍了在Excel中使用公式批量生成符合RFC 4122标准的UUID(带连字符/无连字符两种格式)的方法。通过核心公式解析和实战技巧,帮助用户高效生成唯一标识符,适用于数据库迁移、测试数据准备等场景,大幅提升工作效率。

weixin_30261095的博客 495

Excel原生蒙特卡洛模拟:零代码构建可审计决策模型

蒙特卡洛模拟是一种通过随机采样逼近复杂系统不确定性的基础统计方法,其核心在于概率分布建模、相关性控制与结果稳健聚合。相比Python或R等编程工具,Excel凭借所见即所得的公式追溯性、零部署门槛和天然业务语言对齐能力,在中等复杂度决策支持场景中展现出独特工程价值。尤其在金融风险测算、供应链仿真与制造业可靠性分析等领域,Monte Carlo Simulation in Excel已成为跨部门协同、管理层汇报与快速验证的首选范式。本文聚焦Excel原生函数(如RAND、NORM.INV、数据表)与结构化设计

weixin_34228387的博客 495

Excel公式构建与优化全指南:从基础到高阶应用

计算公式作为数据处理的基础工具,通过运算符、函数和变量的组合实现复杂运算逻辑。其核心原理遵循数学运算优先级(PEMDAS),并可通过函数库扩展计算能力。在Excel等工具中,合理运用动态数组公式和命名范围能显著提升工作效率,而分步拆解法和边界值测试则是保障公式准确性的关键方法。这些技术在财务分析、工程计算等场景中尤为重要,例如NPV净现值计算和材料强度公式都需要精确的参数设置。掌握公式调试技巧如F9分步计算、循环引用检查,以及建立个人公式库,能够帮助职场人士将数据处理效率提升数倍。

weixin_29034963的博客 357

Excel交替行色实战指南:原理、四种实现与企业级避坑

交替行色是电子表格中提升数据可读性的基础视觉优化技术,其核心原理源于人眼对明暗节奏的生理敏感性,通过建立稳定的视觉锚点降低‘视觉滑脱’错误率。在数据分析、财务核对、审计归档等高频场景中,它直接关联操作准确率与人工校验效率。本文深入解析表格法、条件格式、VBA宏及混合法四大实现路径,重点揭示MOD(ROW()-X,2)公式中的非易失性优化、起始行偏移逻辑、跨页连续打印等关键技术细节,并融合RGB精确配色、性能临界点实测与ISO/IEC 27001合规实践,为动态报表与终版交付提供可落地的工程化方案。

weixin_30654419的博客 354

Python处理表格数据常用的 N+个操作

对于异常值,我们可以使用`describe()`方法了解数据的分布情况,进而识别可能的异常值,并使用`clip()`方法、`where()`方法或自定义逻辑进行异常值的处理。读取数据后,我们往往需要对数据进行清洗和预处理。例如,我们可以使用`dropna()`方法删除缺失值,使用`fillna()`方法填充缺失值,使用`replace()`方法替换特定值等。同时,我们可以使用`sort_values()`方法对数据进行排序,使用`groupby()`方法对数据进行分组,以便进一步分析数据的分布和特征。

qq_56262770的博客 971

Python数据分析——认识matplotlib

在python中没法像excel一样通过简单的操作实现数据可视化。但是我们仍然有必要学习python的数据可视化方法,原因有二:第一,为了在享受python数据分析的优点的同时进行数据可视化工作。第二,python可以绘制一些比较复杂的图形。众所周知,Python绘图库有很多,各有特点,而Maplotlib是最基础的Python可视化库。Matplotlib是一个用于Python编程语言的绘图库,它可以用于创建各种静态、动态、交互式的可视化图表,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形。

nanfeng101的博客 1348

Power BI中SUMX函数核心原理与实战避坑指南

SUMX是DAX中实现行级迭代计算的关键函数,其本质是在指定表的每一行上下文中执行表达式并聚合结果,区别于简单列求和的SUM。它解决了跨列表达式计算(如单价×数量)、多对一关系下的明细级聚合、动态条件筛选等典型问题,技术价值在于精准控制计算粒度与上下文传递。广泛应用于销售总额、毛利、客单价、复购率等BI核心指标建模。本文聚焦SUMX的参数选择逻辑、行上下文陷阱、RELATED调用规范及性能优化策略,结合Power BI真实项目场景,系统拆解SUMX、FILTER、CALCULATE协同使用的工程实践方法。

weixin_33997389的博客 381

Office 365 VBA自动化办公实战:从零基础到高效数据处理

在数据处理与办公自动化领域,掌握一门脚本语言能极大提升工作效率。VBA(Visual Basic for Applications)作为内置于Microsoft Office套件的编程语言,其核心原理是通过对象模型控制应用程序组件,实现对文档、表格等元素的自动化操作。这项技术的价值在于将重复性手动任务转化为可重复执行的程序,特别适合处理Excel中的批量数据整理、格式转换与报表生成。在常见的办公场景中,如月度销售数据汇总、多文件数据合并及交互式查询工具构建,VBA都能发挥关键作用。本文聚焦于Office 3

weixin_33675507的博客 360

VOFA+串口调试工具:嵌入式数据可视化与实时波形分析实战

串口通信是嵌入式系统开发中设备与上位机交互的基础技术,其核心原理在于通过异步串行传输实现数据交换。在调试过程中,实时数据可视化能极大提升效率,传统方法常面临性能瓶颈。VOFA+作为一款开源、跨平台的串口与网络数据可视化调试工具,通过插件化架构和高效数据协议,将原始数据流实时渲染为波形图、仪表盘等控件,实现了调试体验的革新。其支持的JustFloat等二进制协议,在嵌入式系统调试、传感器数据监控、控制算法调参等场景下,能显著优化数据传输效率与实时性。本文以VOFA+为例,深入解析如何利用此类工具进行嵌入式数据

434

SAP ABAP开发实战:从可编辑ALV到复杂业务集成的30期培训深度解析

在企业级ERP系统开发中,SAP ABAP作为核心定制化语言,其核心价值在于将编程逻辑与复杂的业务场景深度融合。理解其原理,需要从SAP数据字典、模块化编程和标准框架入手,掌握如何通过增强、接口等技术实现业务需求的灵活定制。这种技术能力直接体现在解决诸如“abap alv单元格可编辑”和“SAP Webservice配置”等高频搜索的工程实践问题上。本文聚焦于ABAP开发者的核心技能栈构建,通过一个完整的可编辑ALV报表并导出Excel的实战案例,系统拆解了从环境搭建、数据操作、用户交互到性能优化的全链路开

weixin_33910137的博客 446

微信聊天记录取证工具开发实战:逆向解析与数据提取

数据取证是信息安全与数字调查中的关键技术,其核心在于从电子设备中安全、完整地提取并分析数据。在移动应用取证领域,即时通讯数据因其包含大量关键信息而成为重点。微信作为主流通讯工具,其数据存储涉及本地数据库加密、文件散列存储等复杂机制。通过逆向工程分析其存储原理,可以构建定制化的取证工具,实现数据的结构化提取与证据链固定。这一过程不仅需要理解SQLite数据库加密、哈希算法等基础技术,还需掌握Android/iOS系统文件结构。实践中,使用Python结合sqlite3、hashlib等库进行开发,能够高效处理

weixin_34146805的博客 394

JMeter参数化四种实现方式详解:从CSV到JSR223的实战指南

在软件性能测试领域,参数化是模拟真实用户负载、提升测试有效性的核心技术。其核心原理是通过动态数据替换脚本中的固定值,从而避免数据冲突、模拟真实业务场景并实现数据驱动测试。这项技术的核心价值在于,它能显著提升性能测试的真实性和准确性,确保测试结果能够真实反映系统在高并发、多样化数据请求下的表现。典型的应用场景包括用户登录、商品查询、订单处理等需要大量唯一或随机数据的并发测试。本文将深入解析JMeter中实现参数化的四种核心方式,特别是CSV数据文件配置和函数助手的使用,帮助测试工程师构建更可靠、高效的性能测试

weixin_34174422的博客 414

GitHub Copilot实战入门:零配置用Codex提升编码效率

代码补全工具是现代开发者的效率基石,其核心原理在于大语言模型对编程语义的理解与上下文感知生成。以Codex为代表的专业代码模型,通过海量开源代码训练,具备跨语言、高准确率的片段生成能力,技术价值体现在降低重复劳动、加速知识转化与增强工程可维护性。典型应用场景包括SQL自动生成、日志分析脚本编写、API文档自动化等日常开发‘脏活累活’。本文聚焦GitHub Copilot这一最主流的Codex落地产品,提供免API密钥、免Docker、免模型部署的极简上手路径,并详解注释驱动、上下文控制、负向提示等关键实践技

weixin_33736649的博客 400
上一篇: 码农创业,6年就赚了80万
下一篇: 十个最具潜力的技术认证
cheneyjava
博客等级 码龄14年 9粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值