2018.3.13日下午3点面试,地点:广州市黄埔区纳金城D座。这一天我带着激动与紧张的心情11点半从学校出发,2点半到达了目的地点。一楼是售楼的,一进门口一堆热情的小哥哥就跑来问我来干嘛的,我说我来面试的那热情瞬间就没了,O(∩_∩)O哈哈~,上到五楼看到一大堆办公桌子那一瞬间就觉得这是我要找的工作环境结果当我找到了,公司就一小房间,5张桌子,其中4张办公桌子,一张即是会议桌也是我的笔试桌。公司就4个人,一个便是在boss直聘网上找邀我去面试的经理的助理(这里的老大),还有一个大约50多岁的中老年财务,剩下的2个是开发人员,一个应该是组长或以上级别的吧,面试题就是他给的。好了来说说面试题,总体上来说考的都是比较偏向基础的,总体考了4个方面:Java基础和servlet方向,线程,ssm框架知识,数据库知识。15道题错了4道,还被改错了一道。
总而言之错的都是我失算造成的,根本就没复习到框架这方面的知识错的也是这方面的题。本次面试还算有所收获的,起码知道下次该怎么复习了。
把不会的以及不太正确的题在这里做下笔记:
1.关于sleep和wait,以下描述错误的是(D)(这道就是改错了的题)
A.sleep是线程类的方法,wait是object的方法
B.sleep不释放对象锁,wait放弃对象锁
C.sleep暂停线程,但监控状态依然保持,结束后会自动恢复
D.wait进入等待锁定池,只有针对此对象发出notify方法获得对象锁进入运行状态
解析:
首先,sleep()是Thread类中的方法,而wait()则是Object类中的方法。
sleep()方法导致了程序暂停,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。
wait()方法会导致线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。注意是准备获取对象锁进入运行状态,而不是立即获得
深入了解:http://blog.csdn.net/u014561933/article/details/58639411
2.下列说法错误的有( CD)(我选了D)
A. 在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C. 在类方法中只能调用本类中的类方法
D. 在类方法中绝对不能调用实例方法
解析:
c是明显的错误,类方法可以调用外部其他类的方法。
至于D选项中,也是有问题的,只要实力化对象,也是可以调用实例方法的。
所有这里要选CD。
3.什么是Spring的依赖注入?
答:所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。(POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。)
拓展:依赖注入通常有两种:
设值注入(设值注入是指通过setter方法传入被调用者的实例。)
构造注入(所谓构造注入,指通过构造函数来完成依赖关系的设定,而不是通过setter方法。)
4.SpringMVC中的@RequestMapping和@ResponseBody的作用是什么?
答:
@RequestMapping作用:
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法,此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。
@ResponseBody作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
拓展: @RequestBody作用:
(1) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
(2)再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
5.SSM(SpringMVC+Spring+Mybatis)整合框架中,三者的作用分别是什么?
答:
Spring MVC 拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层
Spring 容器属于协调上下文,管理对象间的依赖,提供事务机制
mybatis 属于orm(Object Renational Mapping 对象/关系映射)持久层框架,将业务实体 与数据表联合 起来。
6.什么是索引?
答:索引是一种数据结构 。
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
7.主键和索引的区别是什么?
答:
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
唯一性索引列允许空值,而主键列不允许为空值。
主键列在创建时,已经默认为空值 + 唯一索引了。
主键可以被其他表引用为外键,而唯一索引不能。
一个表最多只能创建一个主键,但可以创建多个唯一索引。
主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。
在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。