初级程序员面试题总结(一):

本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。1,谈一谈spring。答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容…

大家好,又见面了,我是你们的朋友全栈君。

本人将这几天面试的题目总结一些,如果出现错误请指正,谢谢。
1,谈一谈spring。
答:spring是为java程序开发提供的综合性的基础java开发平台,它提供了从表现层SpringMVC到业务层Spring再到持久层springData的一套完整的解决方案。spring的核心有两大块,第一块是AOP,面向切面编程,它将程序与业务分离,集中来解决一些公共问题。第二块是IOC,控制反转,由容器来帮助对象寻找依赖并实现注入。
spring实现了低耦合,它可以与很多主流框架进行集成,如mybbatis,struts等。
2,谈一谈spring IOC/DI。
答:IOC,就是将对象的创建权,交给IOC容器来进行管理,IOC帮助对象寻找对象依赖并注入,而不是由对象主动去找。
IOC容器就像一个婚介所一样,我们先在婚介所登记我们需要怎么样的女朋友,然后婚介所会根据条件来为你提供一个女朋友,你需要做的就是和女朋友谈恋爱就可以。
3,依赖注入的几种方式?你一般选择用哪种注入?
答:三种方式。setter方法注入、构造器注入、接口注入。
一般使用注解注入方式
4,spring 是如何管理bean的?
spring是通过容器来对bean进行管理。通常我们理解的容器有BeanFactory和ApplicationContext.BeanFactory使用了工厂模式,负责读取bean的配置文档,负责bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期。ApplicationContext具有beanfactory的所有功能,同时还提供国际化支持,事件管理,AOP等,因此一般使用ApplicationContext。
spring管理bean的生命周期,先是实例化一个bean,然后使用IOC/DI将需要的对象进行依赖注入,然后进过一系列的调用与使用,最后如果bean不再被使用或者容器销毁则会调用destroy方法进行销毁,生命周期结束。
5,spring的常用注解:
答:@controller,@service,@Repository,@ComPonent
6,springMVC和struts的区别:
答:
(1) springmvc的入口是个DispatcherServlet,前端控制器;struts的入口是一个监听器
(2)springmvc是基于方法的实现,传入方法的形参,可以设计为单例模式或者多例模式。struts是基于类的实现,参数为方法的属性。
(3)struts更符合OOP编程思想,springmvc更谨慎,在servlet上扩展。
(4)springmvc可以和spring可以认为是零配置,管理方面和安全方面较struts高。
7,为什么在项目中使用springmvc而不使用struts2?
答:首先,springMVC是基于方法开发的,struts是基于类开发的;
其次,springMVC可以进行单例开发,struts只能进行多例开发;
最后,springMVC的速度比struts快。
8,说一下Mybatis和Hibernate的区别?
答:1,mybatis是轻量级的半自动化框架;hibernate是轻量级的全自动框架;
2,使用hibernate开发时开发量要小一点,不用写sql语句,全自动生成;mybatis相对工作量要大,需要写大量的sql语句;
3,mybatis对于sql优化方面要比hibernate好,heibernate会查询出所有的字段,性能会有一点损耗;mybatis可以根据需求自己定制sql语句,实现sql优化。
4,hibernate数据库移植性很强,而mybatis对数据库的依赖性比较强,更换数据库一般需要修改sql语句。
9,sql优化。
答:1,对查询进行优化,避免权标扫描;
2,避免在where子句中对字段进行null判断;
3,避免在where子句中使用<>、!=等操作符;
4,少用in、not in;
5,避免使用like;
6,避免在where子句中进行表达式操作;
7,不要使用太多的索引;
8,不要使用select *,应尽力查询需要的字段。
10,mysql创建自增长列关键词:auto_increment
11,mysql查询前10条数据:select * from employee limit 0,10;
12,oracle三层分页关键词:rownum
13,将一张表数据复制到另一张表:create table sss as (select * from aaa)
14,hashmap和hashtable的区别:
答:hashmap与hasptable都完成了map接口。最主要的区别是hashtable是线程安全的,hashtable不是线程安全的,在多个线程访问hashtable时,不需要为它的方法实现同步,访问hashmap的时候需要实现同步。
hashmap允许空的键值对,hashtable不允许,因此效率上hashmap要高于hashtable。
15,hashmap的底层实现原理:
答:HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。(具体自查)
16,ArrayList和LinkedListd的区别:
答:ArrayList是基于数组的,linkedList是基于链表的;
arrayList查询速度快,添加速度慢;linkedlist添加速度快,查询速度慢;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126914.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 办公技巧 SecureCRTPortable如何设置自动保存日志[通俗易懂]

    办公技巧 SecureCRTPortable如何设置自动保存日志[通俗易懂]1.选项-全局选项-常规-默认回话-编辑默认设置-日志文件2.将日志文件名改为:路径+%H_%M%D_%h%m%s3.在连接时自动加入:[%Y%M%D_%h:%m:%s]4.在每行自动加入:[%h:%m:%s]5.保存,选择所有回话,即可在下一次连接时自动保存日志文件显示项可选:%H:主机名%S:串口名%Y:年%M:月%D:日%h:时%m:分%s:秒…

  • 基于SSH的实验室设备管理系统mysql[通俗易懂]

    基于SSH的实验室设备管理系统mysql[通俗易懂]### 环境:JSP+SHH框架+MySQL数据库+jdk+tomcat每个功能模块的具体功能如下所述:实验室教师端(管理员端)通知管理模块该模块是实验管理员发布通知公告的地方,具体包括新增通知公告、删除通知公告。预约和借用记录管理模块这是两个模块,而其设计思想大致相同,借用记录管理模块主要是对借用的设备仪器进行记录,其包括借用人、借用时间、归还时间和审核。借用设备需要管理员的审核…

    2022年10月13日
  • Pytest(16)随机执行测试用例pytest-random-order「建议收藏」

    Pytest(16)随机执行测试用例pytest-random-order「建议收藏」前言通常我们认为每个测试用例都是相互独立的,因此需要保证测试结果不依赖于测试顺序,以不同的顺序运行测试用例,可以得到相同的结果。pytest默认运行用例的顺序是按模块和用例命名的ASCII编码

  • web后端开发php,web后端开发主要做什么?

    web后端开发php,web后端开发主要做什么?应用程序或web服务可以分为两大部分:前端和后端。从这些名字可以猜出他们的角色。前端是你可以“看到”的部分。它是让你与应用程序或服务交互的部分。颜色、动画、布局以及所有其他增加你使用应用或网站体验的酷东西就是前端。前端通常称为用户界面(UI)。后端是你看不到的部分。它是应用程序或网站的内部工作。这包括服务器、数据库等。比如你正在本网站上读一篇文章。字体、颜色、图案等构成这一页的正面。但是,本文的网…

  • MATLAB函数拟合使用

    MATLAB函数拟合使用1函数命令拟合最常用的函数拟合命令为fit,语法为|[拟合结果拟合精度]=fit(X数据,Y数据,‘拟合类型’)其中,具体的拟合类型可以参看帮助文档,也可以使用fittype来自定义新的函数类型,比如定义拟合函数a*x+b*x^2+exp(4*x);|newtype=fittype(‘a*x+b*x^2+exp(4*x)’);fit(x,y,newtype);x=[1;2;…

  • js数组删除元素的方法_指甲都是小坑缺什么元素

    js数组删除元素的方法_指甲都是小坑缺什么元素JavaScript数组元素删除

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号