java面试经历以及心得:第一家公司

来源:互联网 发布:node.js addlistener 编辑:程序博客网 时间:2024/04/28 16:53

 

一进面试公司,前台没有让我填任何资料,也没做任何的笔试题,直接把我带到接待室。面试官进来带了一台笔记本坐在我对面,首先让我自我介绍,在这一环节上之前没什么准备,就简单介绍了一些自己的工作经历,没几句话就讲完了。看着面试官的表情,就知道不是太满意。随后问了我比较熟悉那些框架以及数据库,根据我的回答,他就问了一些ssh框架,mysql的问题。他问的问题基本上都很原理性的东西,但我有回答模糊模糊,有的就回答不上来。有些知识的原理是学过,但这么久了,那能记住那么多。2天前做的面试题,一个都没碰上,运气有点背。结果肯定是不合格,匆匆的就结束了面试,临走之前送了建议:“多看点书!”这真的让我很受打击,也感觉非常羞亏。回去之后,我在网上找答案,不停的做面试题目,一直到凌晨2点才上床睡觉,但躺床上也睡不着觉,满脑子都是面试题。下面就是面试到的题目以及答案:
自我介绍模板:
   我叫某某,某某学校毕业,学的是某某专业,是一个性格比较什么什么样的人。从事java开发有多少年的经验,做过什么项目,在项目主要用到的是什么框架什么数据库,负责过什么模块的开发。现在做想什么(想做什么,代表着你的职业理想。在这个部分,你应该介绍自己对应聘职位、行业的看法和理想,包括你的职业生涯规划、对工作的兴趣与热情、未来的工作蓝图、对行业发展趋势的看法等。)

 

1:mysql有那些储存引擎,分别介绍一些它们

MySQL常用的存储引擎为MyISAM、InnoDB、MEMORY、MERGE,其中InnoDB提供事务安全表,其他存储引擎都是非事务安全表。

MyISAM是MySQL的默认存储引擎。MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求。

InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

MEMORY存储引擎使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。

MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。

MERGE存储引擎是一组MyISAM表的级合,这些MyISAM表必须结构完全相同。MERGE表本身没有数据,对MERGE类型的表进行查询、更新、删除的操作,就是对内部的MyISAM表进行.

2:两个字段经常用来做搜索,怎么优化查询性能

两个字段相加做别名,并新建索引。

3:如果是千万条分布记录查询,怎样优化查询性能

建一个分页查询表,不使用limit语句,避免全表搜索

4:hibernagte三种状态

临时状态(数据库中没有相应记录,也没有存到seesion中),持久状态(session跟数据库都有存储记录),游离状态(数据库中有相应的记录,但没有存储到session中)

5:hibernate一级缓存跟二级缓存区别

Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是事务范围的缓存。这一级别的缓存由hibernate管理的,一般情

况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态动态加载和卸载,属于多事务级别,要防止事务并发性。

Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的QueryCache。

6:什么样的数据适合存放到第二级缓存中?

1.很少被修改的数据

2.不是很重要的数据,允许出现偶尔并发的数据

3.不会被并发访问的数据

7:常用的缓存插件Hibernater的二级缓存是一个插件,下面是几种常用的缓存插件:

EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了支持。

  OSCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,提供了丰富的缓存数据过期策略,对Hibernate的查询缓存提供了支持。

  SwarmCache:可作为群集范围内的缓存,但不支持Hibernate的查询缓存。

JBossCache:可作为群集范围内的缓存,支持事务型并发访问策略,对Hibernate的查询缓存提供了支持

8:配置二级缓存的主要步骤

  1选择需要使用二级缓存的持久化类,设置它的命名缓存的并发访问策略。这是最值得认真考虑的步骤。

       2选择合适的缓存插件,然后编辑该插件的配置文件。

9:springMVC概念

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.

 

10:事务概念

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。

 

11:Spring嵌套事务

事务嵌套就是两个事务 一个外部事务,一个子事务,也可以这样外部事务调用子事务,核心是要配置savepoint

  

 

 

 

 

0 0
原创粉丝点击