1.你认为项⽬中最重要的过程是那些?分析、设计阶段 尽量找出进度的优先级2.如果给你⼀个4-6⼈的team,怎么分配?
挑选⼀技术过硬的⼈作为我的替补。其它⼈平均分配任务,每周进⾏全⾯的任务分配,每个⼈领取⼀周的⼯作量,每天汇报进度。3.简述软件开发⽂档?
需求分析、概要设计、详细设计、操作⼿册、测试计划4.你认为⼀个项⽬如何才正确? 是企业利益最⼤化。5.你经常读那些书?
Java编程思想 Java模式 ⼈⽉神话6.springmvc的⼯作原理?
客户端请求提交到DispacherServlet
由DispacherServlet控制器查询HandlerMapping,找到处理请求的Controller Controller调⽤业务逻辑处理后,返回ModelAndView
DispacherServlet查询视图解析,找到ModelAndView指定的视图 视图负责将结果显⽰到客户端7.springmvc 和struts2的区别?
机制 :springmvc 的⼊⼝是servlet,struts2的⼊⼝是filter
性能 : springmvc 会⽐struts2快⼀点。springmvc是基于⽅法设计,struts2是基于类,每次发⼀次请求都会实例⼀个action,每个Action都会被注⼊属性。
参数传递:struts2是在接受参数的时候,可以采⽤属性来接收参数,这家说明可以让多个⽅法共享
拦截器机制:struts2有⾃⼰的interceptor机制,springmvc⽤的是独⽴的AOP⽅式,strtus2的配置⽂件还是⽐springmvc⼤,springmvc使⽤简洁,springMVC⽐struts2开发效率要⾼.8.struts2⼯作原理?
客户端初始化⼀个执⾏servlet的请求
这个请求经过⼀系列的过滤器,被FilterDispatcher调⽤,询问ActionMapper来决定是否调⽤ActionFilterDispatcher把请求的处理交给ActionProxy
ActionProxy通过Configuraction Manager询问相关的配置⽂件,找到需要的Action类ActionProxy创建ActionInvocation的实例ActionInvocation调⽤Action前后的拦截器
Action执⾏完毕后,根据struts.xml配置⽂件找到对应的视图页⾯9.Hibernate ⼯作原理?
读取并解析配置⽂件创建SessionFactory打开Session
创建事务:transaction持久化操作提交事务关闭Session
关闭SessionFactory10.为什么要⽤spring?
spring能够很好的和各⼤框架整合
spring 通过IOC容器管理了对象的创建和销毁 ⼯⼚模式
在使⽤hiberna,mybatis的时候,不⽤每次都编写提交的事务的代码,可以使⽤spring的AOP来管理事务 AOP其实就是⼀个动态代理的实现
声明式事务和编程式事务
11.mybatis的优缺点?
优点:SQL写在XML中,便于统⼀管理和优化
提供映射标签,⽀持对象和数据库的orm字段关系映射 可以对SQL进⾏优化 缺点: SQL⼯作量⼤
mybagtis移植姓不好 不⽀持级联
12.谈谈SSH整合?
struts(表⽰层)+spring(业务层)+hibernate(持久层)
struts是⼀个表⽰层的框架,主要⽤于接收请求,分发请求。struts其实属于MVC中的VC层次的 hibernate是⼀个持久层的框架,主要负责与关系数据库的操作
spring是⼀个业务层的框架,是⼀个整合的框架,能够很好的黏合表⽰层和持久层。
13.maven是什么?有什么作⽤?
是⼀个项⽬管理、构建⼯具
作⽤:帮助下载jar 寻找依赖,帮助下载依赖 热部署、热编译
14.WEB 前端优化?
减少HTTP请求的数量(合并css、js、图⽚)
利⽤浏览器的缓存机制
利⽤GZIP压缩机制:只针对⽂本类资源有效
把CSS⽂件放在HTML开头
把javascript⽂件放在HTML结尾 避免CSS表达式(判断浏览器) 使⽤javascript压缩 减少DNS查找 避免重定向 使⽤ajax
15.安全性测试
利⽤安全性测试技术,找到潜在的漏洞
16.事务隔离级别(4种)
Serializable(串⾏化):⼀个事务在执⾏过程中完全看不到其他事物对数据库所做的更新(事务执⾏的时候不允许别的事务并发执⾏,事务只能⼀个接着⼀个地执⾏,⽽不能并发执⾏)
Repeatable Read(可重复读):⼀个事务在执⾏过程中可以看到其它事务已经提交的新插⼊的记录,但是不能看到其它事务对已有记录的更新
Read Commited(读已提交数据):⼀个事务在执⾏过程中可以看到其它事务已经提交的新插⼊的记录,⽽且能看到其它事务已经提交的对已有记录的更新。
Read Uncommitted(读未提交数据):⼀个事务在执⾏过程中可以看到其它事务没有提交的新插⼊的记录的更新,⽽且能看其它事务没有提交到对已有记录的更新17.MYSQL存储引擎(4种)
MyISAM它不⽀持事务,也不⽀持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应⽤基本都可以使⽤这个引擎来创建表。
每个MyISAM在磁盘上存储成3个⽂件,其中⽂件名和表名都相同,但是扩展名分别为:
.frm(存储表定义)
MYD(MYData,存储数据)MYI(MYIndex,存储索引)
InnoDB
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能⼒的事务安全。但是对⽐MyISAM的存储引擎,InnoDB写的处理效率差⼀些并且会占⽤更多的磁盘空间以保留数据和索引。1)⾃动增长列2)外键约束MEMORY
memory使⽤存在内存中的内容来创建表。每个MEMORY表实际对应⼀个磁盘⽂件,格式是.frm。MEMORY类型的表访问⾮常快,因为它到数据是放在内存中的,并且默认使⽤HASH索引,但是⼀旦服务器关闭,表中的数据就会丢失,但表还会继续存在。
MERGE
merge存储引擎是⼀组MyISAM表的组合,这些MyISAM表结构必须完全相同,MERGE表中并没有数据,对MERGE类型的表可以进⾏查询、更新、删除的操作,这些操作实际上是对内部的MyISAM表进⾏操作。
18.事务传播特性
1. PROPAGATION_REQUIRED: 如果存在⼀个事务,则⽀持当前事务。如果没有事务则开启
2. PROPAGATION_SUPPORTS: 如果存在⼀个事务,⽀持当前事务。如果没有事务,则⾮事务的执⾏
3. PROPAGATION_MANDATORY: 如果已经存在⼀个事务,⽀持当前事务。如果没有⼀个活动的事务,则抛出异常。4. PROPAGATION_REQUIRES_NEW: 总是开启⼀个新的事务。如果⼀个事务已经存在,则将这个存在的事务挂起。5. PROPAGATION_NOT_SUPPORTED: 总是⾮事务地执⾏,并挂起任何存在的事务。6. PROPAGATION_NEVER: 总是⾮事务地执⾏,如果存在⼀个活动事务,则抛出异常
7. PROPAGATION_NESTED:如果⼀个活动的事务存在,则运⾏在⼀个嵌套的事务中. 如果没有活动事务,
20.TCP协议(传输控制协议Transmission Control Protocol )
建⽴链接:三次握⼿(1.给对⽅拨号 2.喂,您好,请问是哪位 3 我是⼩刘) 关闭链接:四次挥⼿ 保证可靠
21.shiro 是什么
Apache Shiro 是⼀个强⼤易⽤的java安全框架,提供了认证、授权、加密和会话管理等功能。认证 :验证⽤户来核实他们的⾝份授权:会话管理
22. 项⽬技术
前台:⾯向的客户
前端:css div js jquery
后端:springmvc spring mybatis 使⽤的优化技术:
1.页⾯静态化(Freemarker) 2.缓存
2.1 页⾯缓存(OSCache)
2.2 分布式缓存(memcached) 3. 图⽚分离(服务器)
4.负载均衡(解决⾼并发终极策略) 后台:(管理对象)
前端:css html js jquery
后端:springmvc spring mybatis 数据库:mysql
图⽚分离框架:jersey
注意:div table 区别 为什么前台使⽤div ⽽⾮table标签 div可以⼀块⼀块进⾏加载
23.什么RESTful(表现层状态转化)架构?
(1)每⼀个URI代表⼀种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进⾏操作,实现\"表现层状态转化\"。
因篇幅问题不能全部显示,请点此查看更多更全内容