java软件工程师面试基本题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在项目中主要遇到的困难?
讲一下对Springmvc的理解?
SpringMvc是基于过滤器对servlet进行了封装的一个框架,我们使用的时候就是在web.xml 文件中配置DispatcherServlet类;
SpringMvc工作时主要是通过DispatcherServlet管理接收到的请求并进行处理。
Spring用的是注释还是配置文件
注释
讲一下Spring常用的注解
autowrite
Resource
Qualifier
repository
service
controller
requestMapper
responseBody
requestParam
ModelAttribute
Scope
Session和cookie的区别?怎么动手清除cookie?用代码?
session打开浏览器创建的,每个浏览器对应一个session
cookie是在客户端本地,不会随着浏览器关闭而消失
用户可以自己清除本地cookie,也可以在程序中使用代码清除
“记住我”怎么实现?吧什么存到session?
使用cookie记住加密的账号和密码
怎么把MyBatis整合到spring?MyBatis的#和$区别?
MyBatis最重要的配置是数据库连接、SqlSession的创建和sql映射文件
可以将mybatis的数据库连接和SqlSession和对sql映射文件的扫描配置到spring配置文件中
mybatis中#可以表示任何数据类型都可以,$单独表示数字
Mybites支持延迟加码吗?原理是什么?
mybatis支持延迟加载
在查询的时候不会加载出关联表,但是需要用到关联表的时候,不需要再单独写查询语句,mybatis会自动查询出需要的关联表信息
多态的了解?Java支持多继承吗?
多态按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态
不支持
String 和stringbuffer的区别?什么时候用string,什么时候用stringbuffer?
String和StringBuffer的区别在于String的内容是不可以修改的,而StringBuffer可以被修改,
String一旦被修改或者重新赋值,就会创建出一个新的对象
Hashmap和hashtable的区别?Hashmap是有序还是无序?
继承的父类不同,hashtable继承自Dictionary类,HashMap继承自AbstractMap类
HashTable线程安全,应为它每个方法都加入了Synchronize,而HashMap是线程不安全的
怎么保证Java的线程安全?Spring的IOC和AOP?
使用Synchronized关键字,也可以使用特殊变量Volatile
IOC控制反转,就是将设计好的对象交给spring容器来控制,对象内获取依赖对象的方式,由原来的通过New来创建依赖对象,改变为
通过Spring容器来获取依赖对象
AOP,面向切面编程,它是一种思想,而不是一种实现,Java对Aop的实现有两种方式,Filter 和代理模式,
Spring的AOP是通过JAVA的代理模式来实现的,它是一种动态代理,以Spring的声明式事务来说,调用Service层的方法时,根据
原来Service层的方法和Spring中配置的事务级别,来动态生成一个代理类,执行代理类
的代码而不是执行原来Service层中的代码
数据库用的是什么?MySQL怎么创建或者自定义函数?
mysql
delimiter //
create function function_name(参数列表)
returns 返回值类型
begin
方法内部执行的代码
end //
触发器用过没有?怎么在一个存储过程里面记住一个日志?
触发器没有用过
游标有用过吗?MySQL怎么实现分页的?如果一个SQL语句order by一个字段性能比较慢要怎么做?常用的SQL优化手段?
游标没用过
mysql使用limit关键字实现分页
order by性能慢可以在order by 的字段建立索引
前台做的多不,JQuery有几种选择器?
九种
常用的是基本选择器、层次选择器
“#”和“.”的区别?Html的代码是从上往下执行区还是从下往上?
#是Id选择器,.是类选择器
HTML代码是从上到下执行的
有用过easyUI吗?Ajax中post和get的区别?
EasyUI没用过
get一般传送一些简单数据,大小在1KB以下,数据会追加到url中
post的传送的数据量比get要大,因为它把数据作为HTTP消息的实体内容发送给WEB服务器
图片服务器?图片后台上传的?图片上传怎么实现?
图片服务器怎么显示吗?是http的地址还是什么?
直接写Nginx的路径,通过Nginx访问图片服务器
你自己负责的是什么?推荐商品的表是怎么设计的?
讲一下springmvc ? springmvc 的核心?springmvc 做配制的时候,怎么配制?返回是Json还是数据?
SpringMVC是一个基于MVC设计模式的框架,它的核心是HandlerMapping,SpringMVC的配置很简单,只需要配置一个InternalResourceViewResolver,解析逻辑视图名,web.xml中,需要配置一个Servlet,配置SpringMVC的拦截路径,
有用到maven吗?怎么在本地仓库书写一个架包?Tomcat怎么部署,session的过期时间的优先级?消息队列?了解过吗?Spingboot有了解没?
maven是用过的
一般来说,一个jar包要添加到项目中,是要添加到专门管理jar包的父工程中,其他模块直接依赖父工程中的jar包就可以了
tomcat的部署,tomcat是依赖于jdk的,部署tomcat之前,首先要先安装jkd,有了jdk,tomcat直接部署和到电脑或服务器上就可以了
程序中的配置>web.xml中的配置>tomcat的配置
讲一下hibernate? hibernate和mybatis的最大区别?性能上的区别?
hibernate是一个全自动化的orm实现,内部封装了jdbc操作和大量的sql语句hibernate和mybatis最大的区别就是对orm的实现一个是半自动化,一个是全自动化,简单来说就是mybatis需要编写sql语句,所以他的移植性比hibernate差,
如果换了一个数据库,hibernate只需要将方言修改一个,而mybatis基本上需要修改所有的sql语句