精华内容
参与话题
问答
  • SQL岗位30个面试题,SQL面试问题及答案

    千次阅读 多人点赞 2019-06-19 17:42:34
    SQL岗位30个面试题,SQL面试问题及答案: 什么是SQL? SQL(结构化查询语言)是一种设计用于检索和操作数据的数据库。它属于美国国家标准协会(ANSI)的一种标准,可用于执行Select(选择)、Update(更新)、...

    SQL岗位30个面试题,SQL面试问题及答案:

    1. 什么是SQL?

    SQL(结构化查询语言)是一种设计用于检索和操作数据的数据库。它属于美国国家标准协会(ANSI)的一种标准,可用于执行Select(选择)、Update(更新)、Delete(删除)和Insert(插入)等数据任务。

    1. 数据库中的表和字段是什么?

    表是在具有列和行的模型中设计的数据集合。在表中,指定了列数称为字段,但未定义行数称为记录。

    1. 什么是数据库?

    数据库是有序形式的一组信息,用于访问、存储和检索数据。

    1. DBMS的类型是什么?

    DBMS是一个控制数据维护和使用的程序,它被认为是管理数据的文件管理器。有四种类型的DBMS:

    · 关系DBMS

    · 分层DBMS

    · 网络DBMS

    · 面向对象的关系DBMS

    最有用的DBMS是Relational DBMS。它为数据提供了一个关系运算符。

    1. 编写一些不同类型的SQL命令

    SQL命令分为以下类型:

    · DDL(数据定义语言) - 用于定义数据库的结构。

    · DCL(数据控制语言) - 用于为用户提供权限。

    · DML(数据操作语言) - 用于管理数据。

    · DQL(数据查询语言) - 所有命令都在SQL中,用于检索DQL中的数据。

    · TCL(事务控制语言) - 用于管理DML所做的更改。

    1. SQL中的视图是什么?

    它包含来自一个或多个表的行和列,可以定义为虚拟表。它消耗的内存较少。

    句法:

    CREATE VIEW view_name AS

    SELECT column_name1, column_name2

    FROM table_name

    WHERE CONDITION;

    1. 什么是SQL中的Joins(连接)?

    Join用于从相关的行和列中检索数据。它在两个或多个表之间工作,并且它从两个表返回至少一个匹配。

    Joins类型是:

    · Right Join (右连接)

    · Left Join(左连接)

    · Inner Join(内连接)

    · Outer Join(外连接)

    · Self-Join (自连接)

    · Cross Join(交叉连接)

    · Full Join(全连接)

    1. SQL中的Query(查询)是什么?

    数据库查询是数据库表中的数据请求。查询可以是选择查询或任何其他类型的查询。

    1. 什么是Subquery(子查询)以及什么是Types(类型)?

    子查询是查询的一部分。外部查询已知主查询,内部查询识别子查询。始终首先执行子查询,并将结果传递给主查询。

    1. 什么是Autoincrement(自动增量)?

    Autoincrement是一个关键字,用于在表中插入新记录时生成数字。

    1. SQL中的Constraints(约束)是什么?

    它可用于设置表中数据类型的限制。在创建或更新表语句时,可以使用约束。一些限制是:

    · NOT NULL

    · PRIMARY KEY

    · FOREIGN KEY

    · UNIQUE

    · CHECK

    · DEFAULT

    1. SQL中有多少Key(键),它们如何工作?

    SQL中有不同类型的键:

    · SuperKey(超级密钥)——一个或多个密钥的集合被定义为超级密钥,它用于唯一地标识表中的记录。主键,唯一键和备用键是超级键的子集。

    · PrimaryKey(主键)——它是表中的一个或多个字段的集合。它们不接受空值和重复值。并且表中只存在一个主键。

    · ForeignKey(外键)——在一个表中定义主键并在另一个表中定义字段的键被标识为外键。

    · UniqueKey(唯一键)——除了主键之外,表中还有更多键,它们只标识记录,但唯一的区别是它们只接受一个空值但不接受重复值。

    · CandidateKey(候选密钥)——在任何情况下,如果需要,任何候选密钥都可以作为主键。

    · CompoundKey(复合键)——此键是候选键和主键的组合。

    · AlternateKey(备用密钥)——在任何情况下,如果需要,任何备用密钥都可以作为主键或候选键。

    1. 什么是Normalization(规范化)?

    规范化是一种设计技术,它以减少数据依赖性的方式排列表,将表分成小模块并按关系链接。

    1. 什么是Denormalization(非规范化)?

    非规范化是一种优化方法,我们将多余的数据增加到表中,并在规范化后应用。

    1. 什么是Stored Procedure(存储过程)?

    存储过程是一组SQL语句,用作访问数据库的函数。为了减少网络流量并提高性能,可使用存储过程。

    句法:

    CREATE Procedure Procedure_Name

    (

    //Parameters

    )

    AS

    BEGIN

    SQL statements in stored procedures to update/retrieve records

    END

    1. 什么是Index(索引)?

    索引用于加速查询的性能。它可以更快地从表中检索数据。可以在一组列上创建索引。

    1. Clustered(群集)和Non-Clustered Index(非群集)索引之间有什么区别?

    聚集索引——有助于轻松检索数据,并且只有一个聚集索引与一个表一起分配。它会更改记录在数据库中的保存方式。

    非聚集索引——与聚集索引相比,非聚集索引很慢。并且在非集群索引的情况下,该表可以具有多个索引,为表创建一个对象,该表是搜索后指向表的一个点。

    1. 什么是Trigger(触发器)?

    触发器用于对表执行特定操作,例如INSERT、UPDATE或DELETE。它是一种存储过程。动作和事件是触发器的主要组成部分。执行Action时,事件响应该操作而出现。

    1. 数据库中的Properties(属性)是什么?

    通常,这些属性称为ACID。它们在数据库事务中起作用。

    Atomicity(原子性)——在连接两个或多个单独数据的事务中,要么所有部分都已提交,要么都没有。

    Consistency(一致性)——事务或者生成新的有效数据状态,或者如果发生任何失望,则在事务启动之前将所有数据返回到其状态。

    Isolation(隔离性)——正在进行且尚未提交的事务必须继续与任何其他操作隔离。

    Durability(持久性)——在此操作中,系统保存已提交的数据,每当事件失败和系统重新启动时,所有数据都可在其正确位置获得。

    1. SQL中有多少Statements(语句)?

    SQL语句分为几类:

    · 数据定义语言语句

    · 数据操作语言语句

    · 交易控制声明

    · 会话控制声明

    · 系统控制声明

    · 嵌入式SQL语句

    1. 什么是CLAUSE(字句)?

    它被定义为通过为查询提供条件来设置结果集的限制。他们从整个记录中过滤掉一些行。

    一些SQL的字句是WHERE和HAVING。

    22.什么是Aggregate Functions(聚合函数)?

    它是一个返回单个值的数学函数。

    SQL中的聚合函数是:

    · AVG()——返回平均值

    · COUNT()——返回行数

    · MAX()——返回最大值

    · MIN()——返回最小值

    · ROUND()——基于十进制规范,此函数对数字字段进行舍入

    · SUM()——返回总和

    1. 什么是String Functions(字符串函数)?

    为了操作字符串,我们使用字符串函数。其中一些是:

    · LEN()——返回值的长度。

    · LOWER()——将字符数据转换为小写。

    · UPPER()——将字符数据转换为大写。

    · SUBSTRING()——提取字符。

    · LTRIM()——从头开始删除字符串的所有空格。

    · RTRIM()——删除结尾处字符串的所有空格。

    · CONCAT()——连接函数。

    · REPLACE()——更新内容。

    1. 什么是Collation(排序规则)?

    排序规则是一组规则,用于确定数据如何通过比较进行排序。例如使用一组规则存储的字符数据,这些规则定义了正确字符的序列以及类型、重音和区分大小写。

    1. 什么是Cursor(游标)?

    在系统内存中执行SQL语句时,会创建一个临时工作区,称为“游标”。在select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。

    游标有两种类型:

    · ImplicitCursor(隐式游标)

    · ExplicitCursor(显式游标)

    1. 什么是SQL Server?

    SQLserver是Microsoft关系数据库管理系统(RDBMS)的一种类型或示例。它在IT环境下提供广泛的事务处理和商业智能。

    1. SQL中有哪些Operators(运算符)?

    运算符是一个保留字,主要用于SQL语句的WHERE子句中以进行操作。

    · 算术运算

    · 逻辑运算

    · 比较运算符()

    · 复合算子()

    1. 如何定义NULL值,Blank Space(空格)和ZERO(0)?

    Null值是没有值的字段。它与0不同。假设有一个表,并且在表中有一个字段,可以在不添加值的情况下将记录插入字段,然后该字段将以NULL值保存。

    空格是我们提供的值。

    0只是一个数字。

    1. 什么是Data Warehouse(数据仓库)?

    数据仓库被称为来自多个信息源的中央数据中心。这些数据可用于在线处理和挖掘。

    1. UNIQUE KEY(唯一键)和PRIMARY KEY(主键)之间有什么区别?

    在表中,应该只有一个主键,但在另一种情况下,唯一键可以为任意数量。

    主键不允许NULL值,但唯一键允许NULL值。

    展开全文
  • 面试问题

    2012-07-25 17:47:32
    都辞职一个月了,还没有找到工作,哎 也去过很多家面试公司,不知道怎么回事 就是不要我[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/1.gif][/img],怎么办,谁能给我分享一下你的面试...
  • spring和springMVC的面试问题总结

    万次阅读 多人点赞 2017-08-30 10:44:25
    1.Spring中AOP的应用场景、Aop原理、好处? 答:AOP--Aspect Oriented Programming面向切面编程;用来封装横切关注点,具体可以在下面的场景中使用: Authentication 权限、Caching 缓存、Context passing 内容传递...

    1.Spring中AOP的应用场景、Aop原理、好处?

    答:AOP--Aspect Oriented Programming面向切面编程;用来封装横切关注点,具体可以在下面的场景中使用:

    Authentication 权限、Caching 缓存、Context passing 内容传递、Error handling 错误处理Lazy loading懒加载、Debugging调试、logging, tracing, profiling and monitoring 记录跟踪优化 校准、Performance optimization 性能优化、Persistence 持久化、Resource pooling 资源池、Synchronization 同步、Transactions 事务

    原理:AOP是面向切面编程,是通过动态代理的方式为程序添加统一功能,集中解决一些公共问题。

    优点:1.各个步骤之间的良好隔离性耦合性大大降低 
               2.源代码无关性,再扩展功能的同时不对源码进行修改操作 

    2.Spring中IOC的作用与原理?对象创建的过程。

    答:IOC--Inversion of Control控制反转。当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例对象。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者 直接使用。

    3.介绍spring框架

       它是一个一站式(full-stack全栈式)框架,提供了从表现层-springMVC到业务层-spring再到持久层-springdata的一套完整的解决方案。我们在项目中可以只使用spring一个框架,它就可以提供表现层的mvc框架,持久层的Dao框架。它的两大核心IoC和AOP更是为我们程序解耦和代码简洁易维护提供了支持。

    4.Spring常见创建对象的注解?

    答:@Component@Controller@ Service@ Repository

    5.Spring中用到的设计模式

    答:简单工厂、工厂方法、单例模式、适配器、包装器、代理、观察者、策略、模板方法

    详细介绍:请参考本微博的:开发常用设计模式

    6.Spring的优点?

    答:1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 
    2.可以使用容易提供的众多服务,如事务管理,消息服务等 
    3.容器提供单例模式支持 
    4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 
    5.容器提供了众多的辅助类,能加快应用的开发 
    6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 
    7.spring属于低侵入式设计,代码的污染极低 
    8.独立于各种应用服务器 
    9.spring的DI机制降低了业务对象替换的复杂性 
    10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring 的部分或全部 

    7.Spring Bean的作用域之间有什么区别?

    Spring容器中的bean可以分为5个范围。所有范围的名称都是自说明的,但是为了避免混淆,还是让我们来解释一下:

    singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由bean factory自身来维护。

    prototype:原形范围与单例范围相反,为每一个bean请求提供一个实例。

    request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。

    Session:与请求范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。

    global-session:global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。

    全局作用域与Servlet中的session作用域效果相同。

    8.Spring管理事务有几种方式?

    答:有两种方式:

    1、编程式事务,在代码中硬编码。(不推荐使用)

    2、声明式事务,在配置文件中配置(推荐使用)

    声明式事务又分为两种:

    a、基于XML的声明式事务

    b、基于注解的声明式事务

    9.spring中自动装配的方式有哪些?

    答:1、 No:即不启用自动装配。

    2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printer的bean,然后使用Seter方法为其注入。

    3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。

    4、 constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。

    5、 autodetect:在byType和constructor之间自动的选择注入方式。

    6、 default:由上级标签<beans>的default-autowire属性确定。

    10.spring中的核心类有那些,各有什么作用?

    答:BeanFactory:产生一个新的实例,可以实现单例模式

    BeanWrapper:提供统一的get及set方法

    ApplicationContext:提供框架的实现,包括BeanFactory的所有功能

    11.Bean的调用方式有哪些?

    答:有三种方式可以得到Bean并进行调用:
    1、使用BeanWrapper
    HelloWorld hw=new HelloWorld();
    BeanWrapper bw=new BeanWrapperImpl(hw);
    bw.setPropertyvalue(”msg”,”HelloWorld”);
    system.out.println(bw.getPropertyCalue(”msg”));
    2、使用BeanFactory
    InputStream is=new FileInputStream(”config.xml”);
    XmlBeanFactory factory=new XmlBeanFactory(is);
    HelloWorld hw=(HelloWorld) factory.getBean(”HelloWorld”);
    system.out.println(hw.getMsg());
    3、使用ApplicationConttext
    ApplicationContext actx=new FleSystemXmlApplicationContext(”config.xml”);
    HelloWorld hw=(HelloWorld) actx.getBean(”HelloWorld”);
    System.out.println(hw.getMsg());

    12.什么是IOC,什么又是DI,他们有什么区别?

    答:依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:把一个 数据库连接已参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外 部以减少依赖

    应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所 以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

    13.spring有两种代理方式:

    答: 若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。

          优点:因为有接口,所以使系统更加松耦合

          缺点:为每一个目标类创建接口

    若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。

          优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。

          缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。

    14.springMVC的流程?

    答:1.用户发送请求至前端控制器DispatcherServlet

    2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    4.DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

    5.执行处理器(Controller,也叫后端控制器)。

    6.Controller执行完成返回ModelAndView

    7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

    8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器

    9.ViewReslover解析后返回具体View

    10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

    11.DispatcherServlet响应用户

    15.Springmvc的优点

    答:1.它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件.并且和Spring提供的其他基础结构紧密集成.

    2.不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)

    3. 可以任意使用各种视图技术,而不仅仅局限于JSP

    4 . 支持各种请求资源的映射策略

    5 .它应是易于扩展的

    如有披露或问题欢迎留言或者入群探讨

    展开全文
  • 上一篇文章我们总结了10个大数据面试入门级问题,大家是否有收获,如果还没有看的小伙伴,可以直接跳转《干货|50个大数据面试问题及答案第一篇:10个大数据面试入门级问题》开始学习吧! 本次我们慧都网分析的是10...

    上一篇文章我们总结了10个大数据面试入门级问题,大家是否有收获,如果还没有看的小伙伴,可以直接跳转《干货|50个大数据面试问题及答案第一篇:10个大数据面试入门级问题》开始学习吧!

    本次我们慧都网分析的是10个已经在大数据行业工作的老司机们面试时的问题及建议答案,话不多说,赶紧开始今天的学习。

    大数据面试

    基于大数据已从业者的面试问题

    如果您在大数据世界中有相当丰富的工作经验,那么根据您以前的经验,您将在大数据面试中被问到一些问题。这些问题可能与您的经验或基于场景有关。所以,准备好这些最好的大数据面试问题和答案 。

    11.您有大数据经验吗?如果有,请分享一下。

    如何处理:  问题没有具体答案,因为这是一个主观问题,答案取决于您以前的经验。在大数据访谈期间询问这个问题,面试官想要了解您以前的经验,并且还试图评估您是否适合项目要求。

    那么,你将如何处理这个问题呢?如果您有以前的经验,请在过去的职位上开始履行职责,并慢慢向对话添加详细信息。告诉他们您使项目成功的贡献。一般来说,这个问题是在面试中提出的第二或第三个问题。后面的问题是基于这个问题,所以请仔细回答。您还应该注意不要过度使用以前工作的一个方面。保持简单和重点。

    12.您更喜欢好的数据还是好的模型?为什么?

    如何处理: 这是一个棘手的问题,但通常在大数据面试中被问到。它要求您在好的数据或好的模型之间进行选择。作为候选人,您应该尝试根据自己的经验回答这个问题。许多公司希望遵循严格的数据评估流程,这意味着他们已经选择了数据模型。在这种情况下,拥有良好的数据可能会改变游戏规则。另一种方式也适用于基于良好数据选择的模型。

    正如我们已经提到的,请根据您的经验回答。但是,不要说拥有良好的数据和良好的模型很重要,因为在现实生活中很难同时拥有这两个数据。

    13.您是否会优化算法或代码以使其运行更快?

    如何处理: 这个问题的答案应该始终是“是”。真实世界的性能很重要,它不依赖于您在项目中使用的数据或模型。

    面试官可能也有兴趣知道您是否有任何以前的代码或算法优化经验。对于初学者来说,这显然取决于他过去从事过哪些项目。有经验的候选人也可以相应地分享他们的经验。但是,请诚实地对待您的工作,如果您过去没有优化代码,那就没关系了。只需让面试官了解您的真实体验,您就可以破解大数据访谈。

    14.您如何处理数据准备?

    如何处理: 数据准备是大数据项目的关键步骤之一。大数据访谈可能涉及至少一个基于数据准备的问题。当面试官问你这个问题时,他想知道你在数据准备过程中采取了哪些步骤或预防措施。

    如您所知,需要数据准备才能获得必要的数据,然后可以进一步用于建模目的。你应该把这个消息传达给面试官。您还应该强调要使用的模型类型以及选择特定模型的原因。最后,但并非最不重要,您还应该讨论重要的数据准备术语,如转换变量,异常值,非结构化数据,识别差距等。

    15.您如何将非结构化数据转换为结构化数据?

    如何处理: 非结构化数据在大数据中非常常见。应将非结构化数据转换为结构化数据,以确保正确的数据分析。您可以通过简要区分两者来开始回答问题。完成后,您现在可以讨论用于将一个表单转换为另一个表单的方法。您也可以分享您所做的真实情况。如果您最近刚毕业,那么您可以分享与您的学术项目相关的信息。

    通过正确回答这个问题,您发出信号表明您了解结构化和非结构化数据的类型,并且具有使用这些数据的实践经验。如果你具体回答这个问题,你肯定能够破解大数据访谈。

    16.哪种硬件配置对Hadoop作业最有利?

    配置4/8 GB RAM和ECC内存的双处理器或核心机器是运行Hadoop操作的理想选择。但是,硬件配置因项目特定的工作流程和流程而异,因此需要进行自定义。

    17.当两个用户尝试访问HDFS中的同一文件时会发生什么?

    HDFS NameNode支持独占只写。因此,只有第一个用户将收到文件访问权限,第二个用户将被拒绝。

    18.如何在NameNode关闭时恢复它?

    需要执行以下步骤才能启动并运行Hadoop集群:

    1. 使用文件系统元数据副本的FsImage启动新的NameNode。 
    2. 配置DataNode以及客户端以使它们确认新启动的NameNode。
    3. 一旦新的NameNode完成加载从DataNode收到足够块报告的最后一个检查点FsImage,它将开始为客户端提供服务。 

    在大型Hadoop集群的情况下,NameNode恢复过程会消耗大量时间,这在日常维护的情况下将成为更大的挑战。

    19.您对Hadoop中的Rack Awareness有何了解?

    它是一种应用于NameNode的算法,用于决定块及其副本的放置方式。根据机架定义,同一机架内的DataNode之间的网络流量最小化。例如,如果我们将复制因子视为3,则将两个副本放在一个机架上,而将第三个副本放在单独的机架中。

    20.“HDFS Block”和“Input Split”有什么区别?

    HDFS将输入数据物理地划分为用于处理的块,这被称为HDFS块。

    输入拆分是映射器用于映射操作的逻辑数据划分。

    欢迎咨询慧都在线客服,我们将帮您转接大数据专家团队,并发送相关资料给您!

    下集预告:干货|50个大数据面试问题及答案第三篇:10个大数据Hadoop面试问题

    展开全文
  • java面试之项目面试问题--不看面试会后悔的

    万次阅读 多人点赞 2017-06-01 22:38:24
    1.请描述下你做的项目:XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。2.结合项目谈谈你对MVC的理解MVC是model-view-controler的简称。...

    1.请描述下你做的项目:

    XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。
    2.结合项目谈谈你对MVC的理解

    MVC是model-view-controler的简称。也就是模型-视图-控制器。mvc是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。mvc中的模型、视图、控制器分别担任着不同的任务。
    视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
    模型:模型表示业务数据和业务处理。相当于javaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性。
    控制器:当用户单击web页面中的提交按钮时,控制器接收请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结构。
    MVC的处理过程:首先控制器接收用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结构。并通过视图呈现给用户。如在项目中要对应MVC的话;View对应项目中的jsp,controler对应action,model对应service+dao层的业务逻辑和持久层的操作。

    3.项目中为什么要使用ssh(三大框架的优点)

    1.使用struts是因为struts是基于mvc模式的,很好的将应用程序进行了分层,使开发者更关注业务逻辑的实现;struts有着丰富的标签库,能大大的提高开发效率。
    2.使用Hibernate;是因为Hibernate为java应用提供了一个易用的、搞效率的对象关系映射框架。hibernate是个轻量级的持久层框架,功能丰富。
    3.使用spring;是因为spring基于ioc(控制反转)和aop框架多层j2ee系统的框架
    4.挑选一个你做的功能说明ssh框架的应用原理

    1.在表示层中,首先通过jsp页面实现交互界面,负责传送请求(request)和接收响应(response),然后struts根据配置文件(struts。xml)将actionServlet接收到的request委派给响应的action处理。
    2.在业务层中,管理服务组件的spring ioc容器负责向action提供业务模型(model)组件和组件的协作对象数据处理(dao)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
    3.在持久层中,则依赖于hibernate的对象化映射和数据库交互,处理dao组件请求的数据,并返回处理结果。

    综合上面的概述;然后可以把我们做的信息发布管理模块用上述的方式实例化描述一遍。

    5.struts工作原理

    -------按照struts工作原理图说
    1.客户端发出一个指向servlet容器的请求;
    2.请求会经过strutsPrepareAndExecuteFilter过滤器;
    3.过滤器和请求将访问strut2的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。
    如:ConfigurationManager、ActionMapper和Objectfactory.ConfigurationManager存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,results,Interceptors,等)都是通过Objectfactory来创建的。过滤器会通过询问ActionMapper类来查找请求中需要用到的Action。
    4.如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。
    5.ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了Action的执行状态,或者说它控制的action的执行步骤。它持有Action实例和所有的Interceptor。
    6.ActionInvocation实例使用命名模式来调用,1.ActionInvocation初始化时,根据配置,加载Action相关的所有Interceptor.2.通过ActionInvocation.invoke方法调用Action实现时,执行Interceptor。在调用action的过程前后,涉及到相关拦截器(Interceptor)的调用。
    7.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。

    --------------通俗的说------------
    发送http请求
    web服务器(tomcat、weblogic)
    执行struts核心过滤器StrutsprepareAndExecuteFilter
    加载struts配置文件中配置信息,找到对应的Action类并实例化
    执行各类拦截器和action中对应方法
    配置文件中找到返回结果
    转发到具体页面或其他操作

    6.struts有什么优缺点

    --------------优点------------
    1.实现MVC模式,结构清晰;
    2.丰富的struts的标记库,利用好能大大提高开发效率
    3.全局结果与声明式异常;
    4.可使用OGNL进行参数传递
    5.各类方便使用的拦截器

    --------------缺点-------------
    1.转到表现层时,需要配置结果页面;页面多了比较繁杂;
    2.对Servlet的依赖性过强
    3.struts标签稍微比el表达式繁重

    7.为何使用spring

    spring是一个轻量级的控制反转(ioc)、面向切面(AOp)、面向接口、事务管理、包容促进其他框架;使系统中用到的其他框架的耦合程度大大降低,扩展性强、简单易用好管理。

    8.spring在项目中如何充当粘合剂

    1.在项目中利用spring的ioc(控制反转或依赖注入),明确的定义组件接口(如UserDao),开发者可以独立开发各个组件,然后根据组件间的依赖关系组装(UserAction依赖于UserService,UserService依赖于Userdao)运行,很好的把struts(Action)和hibernate(dao的实现)结合起来;
    2.spring的事务管理把hibernate对数据库的操作进行了事务配置
    9.描述在系统中如何使用了spring的事务控制

    spring事务包括编程事务和声明式事务。在系统中使用了声明式的事务管理是用spring的AOP来实现的;配置了只读事务和回滚事务(传播行为为REQUIRED)当出现错误后进行事务回滚操作。在项目中通过aop切入事务到service层,这样做能使一次业务逻辑操作如果包括几个数据库操作都控制在一个事务中。
    10.Hibernate工作原理以及为什么要用?

    原理:
    1.读取并解析配置文件
    2.读取并解析映射信息,创建SessionFactory
    3.打开Session
    4.创建事务Transaction
    5.持久化操作
    6.提交事务
    7.关闭Session
    8关闭SessionFactory

    为什么要用:
    1.对Jdbc访问数据库代码做了封装,大大简化了数据访问层繁琐的重复性代码。
    2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度上简化DAO层的编码工作。3.Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
    4.Hibernate的性能非常好,因为他是一个轻量级框架。映射的灵活性很出色。他支持各种关系数据库,从一对一到多对对的各种复杂关系。

    11.Hibernate在系统中使用的优化策略

    Hibernate对数据的缓存包括两个级:一级缓存,在Session的级别上进行,主要是对象缓存,以其id为键保存对象,在Session的生命期间存在;二级缓存,在SessionFactory的级别上进行,有对象缓存和查询缓存,查询缓存以查询条件为键保存查询结果,在SessionFactory的生命期间存在,默认地,Hibernate只启用一级缓存

    12.列举你在开发中常用的struts标签

    property、iterator、if、date、form、a、url、textfiled、textarea、select、radio、checkboxlist、
    hidden、param

    13.Jquery异步获取数据的方式有几种?有何区别?

    1.load载入远程Html文件代码并插入至Dom中
    2.get
    3.post
    4.ajax
    5.getJSON
    6.getScript通过get方式请求载入并执行一个JavaScript脚本。

    14,简述UML并书名你是用Rose常用于什么情况,画什么图?

    UML是统一建模语言;用于在软件开发各个阶段中用图形的方式描述流程和功能需求;IBM
    Rational Rose是uml建模工具之一比较多的在需求阶段,常用于画例图,类图,时序图。

    15.请简述导入导出的工具类;并说明你导出过的最大数据量

    POI(合并单元格对象和背景色的应用)

    最后这里还找到了百度文库当中的一些面试题:内容很多,就不一一列举出来了。
    传送门:最全的ssh框架面试题

    ssm框架面试题:http://www.2cto.com/kf/201702/603919.html

    展开全文
  • 大数据时代才刚刚开始。随着越来越多的公司倾向于大数据运营,...在本文中,慧都网将介绍与大数据相关的前50大数据面试问题。 50个最受欢迎的大数据访谈和面试问题 为了使您的职业生涯更具优势,您应该为大数据面...
  • 计算机网络面试问题集锦

    万次阅读 多人点赞 2018-03-26 17:16:40
    转载自点击打开链接1、Http和Https的区别 Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加...资...
  • HashMap底层实现原理及面试问题

    万次阅读 多人点赞 2018-08-29 11:00:56
    ①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode...HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存...
  • 大数据面试易被提问的题,大数据面试技巧都有哪些呢?介绍一下大数据人才面试的小贴士。 1、结合自身经验分析目标行业 我们找工作时,需要根据自己的实际情况和企业的情况来定,而不是在网上盲投,见什...
  • 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最...
  • 面试/笔试第一弹 —— 计算机网络面试问题集锦

    万次阅读 多人点赞 2017-10-21 14:57:33
    本文对面试/笔试过程中经常会被问到的一些关于计算机网络的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,建议大家读一读《图解...
  • Map面试问题

    万次阅读 2020-10-27 16:13:58
    Map 在面试中,占据了很大一部分的面试题目,其中以 HashMap 为主,这些面试题目有的可以说得清楚,有的很难说清楚,如果是面对面面试的话,建议画一画。 1 Map 整体数据结构类问题 1.1 说一说 HashMap 底层数据结构...
  • 丁香园iOS电话面试问题总结

    万次阅读 2017-06-21 01:35:24
    加密的详细过程 在不知道二进制文件格式的情况下如何区分文件 常见的几种线程锁 怎么保证线程安全 SDWebImage具体实现和具体类 ...realm的简单介绍和使用时的线程问题 跨线程时的使用 简单讲一讲RunTime和RunL
  • java中的引用和对象的区别,它们各自存在什么地方? 数据库有哪几大范式?一般数据库设计到第几范式就足够了? 谈谈你对云计算的理解(我给扯到p2p加速了,老师又问p2p的理解) 现场根据需求写一个sql语句 ...
  • 这是面试官很喜欢问的一个问题,你是会刁难你的一个地方。如果你在项目中是核心解决了一些技术难题,那这个问题对你来说应该是很好回答的。你可以说出这个项目遇到的技术问题,以及你是怎么解决的。这种问题往往可以...
  • 测试面试问题总汇

    万次阅读 多人点赞 2018-12-17 20:51:24
    2.项目人员配置(遇到什么问题找谁,有多少人投入测试,测试环境,硬件,软件);3.要测试的软件的主流程,异常流程,测试重点;4。项目整体规划(发布时间 第二布:指定测试策略、测试计划和bug定义标准,这一步...
  • 常见数据库面试问题

    万次阅读 多人点赞 2018-03-08 20:12:45
    常见的数据库面试题有哪些呢?(非DBA向) (一)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句。 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句...
  • 商城项目面试问题整理

    万次阅读 多人点赞 2018-09-04 16:48:03
    1.网站并发数: 经过压力测试可以支持3000左右的并发,可以满足目前的业务需求。由于我们的系统是分布式架构,支持水平扩展,如果将来并发量提高的话,可以增加服务器来提高并发量。 2.人员配置 ...
  • [面试]-- Hive面试问题

    千次阅读 2016-06-06 13:51:02
    A所有的hive任务都会有reducer的执行吗? 答:不是,由于当前hive的优化,使得一般简单的任务不会去用reducer任务;只有稍微复杂的任务才会有reducer任务 举例:使用select * from person ;...
  • 面试/笔试第二弹 —— 操作系统面试问题集锦

    万次阅读 多人点赞 2017-10-21 16:08:50
    本文对面试/笔试过程中经常会被问到的一些关于操作系统的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和整体掌握,建议大家读一读...
  • MySQL面试问题

    万次阅读 多人点赞 2019-03-25 16:04:58
    索引是什么?有什么作用以及缺点 定义:索引是存储引擎用于快速查找数据的一种数据结构。 MySQL数据库基本的索引类型:普通索引、唯一索引、主键索引和全文索引。 普通索引:允许被索引的数据列包含重复的列 ...
  • 面试系列 -- 常见面试问题回答思路

    千次阅读 2019-01-28 10:42:27
    本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中“悟”出面试的规律及回答问题的思维方式,达到“活学活用”。     问题一...
  • Flask面试问题

    万次阅读 多人点赞 2018-07-21 19:56:09
    1,什么是Flask,有什么优点? 概念解释 Flask是一个Web框架,有人就是说Flask为你提供一个工具,库和技术来允许你构建一个Web应用程序。这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里应用或...
  • 数据库面试问题集锦

    万次阅读 多人点赞 2018-08-27 13:59:59
     本文对面试/笔试过程中经常会被问到的一些关于数据库(MySQL)的问题进行了梳理和总结,包括数据库索引、数据库锁、数据库事务和MySQL优化等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们...
  • String字符串 底层实现方式 SDS 简单动态字符串(raw/embstr) typedef char *sds; struct sdshdr { // 记录buf数据中已使用的字节数目 int len; // 记录buf 剩余的字符长度 int free;... // 字符数据,用于...
  • 单片机面试问题

    万次阅读 多人点赞 2018-03-23 17:12:48
     单片机单片机的最小系统?内部的主要结构?答:最小系统:电源、晶振(为系统提供基本的时钟信号)、复位电路;内部结构:ROM/RAM、计时器、中断、I/O串并行口、总线扩展控制。RAM和ROM的区别?...

空空如也

1 2 3 4 5 ... 20
收藏数 115,697
精华内容 46,278
热门标签
关键字:

面试问题