面试题一
1.map-reduce
2.hdhs
3.两个子节点,通过递归方法找到最近的主父节点
4.hashmap,treemap,linkedhashmap的区别
5.String-buffer,String-build的线程安全及区别
6.data-code和name-code的实现机制
7.素数和冒泡排序
8.jquery回调函数和ajax联合使用
name type success data(配置json数据,文本文件) 匿名方法
9.struts2的json数据返回的方式,内部缓存
10.jdbc和hibernate操作数据库的效率进行分析
11.spring的切面编程类以及切面编程怎么实现
12.ioc的三大实现方式setter、construct-arg、proxy的配置、底层实现
13.项目里的登陆register $.ajax{ }
14.spring-mvc的实现
15.struts2底层的检验器和拦截器的实现类型及实现组合
16.struts2底层在web项目内的运行流程
17.pageScop、requestScop、sessionScop、applicationScop
1、.部门表中第3条到第5条数据?
Select * from s_dept
Where rownum<=5
Minus
Select * from s_dept
Where rownum<3;
用SQL语句查询每门成绩都大于80的学生姓名
name km fs
张三 语文 81
张三 数学 75
李四 语文 76
王五 英语 90
李四 数学 90
王五 语文 81
王五 数学 99
方法一distinct去掉重复列
select name
from stu t1
where not exists(select 1 from tab where name = t1.name and fs < 80)
或select distinct Sname from S where ?Sname not in (select distinct Sname from S where grade<=80)
方法二
select name from stu group by name having min(fs)>=80
面试题二
1.String s = new String("afg");
String s = "afg";
两者的区别
2.MVC有哪几种实现方法?
3.servlet和jsp的区别
4.数据库中的左右连接
5.文件的上传和下载
面试三
1.&和&&的区别
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
2.进程和线程的区别
3.Math.random(11.5)和Math.random(-11.5)的值是多少,怎么算?
4.启动一个线程是调用start()还是调用run();
start()方法:用来启动一个线程,这时此线程处于就绪状态,然后通过调用此线程的run()方法来完成线程的运行操作。
run()方法:这只是一个方法,直接调用该方法只是把该方法的函数体给执行了一遍,并没真正启动一个线程,所以上面第二次运行的结果中会有main:线程
5.一个线程进入一个类的synchronized的方法,其他线程能否进入这个类的其他方法?
6.接口能否继承接口,抽象类能否继承接口
7.简述一下Spring的MVC实现方法和struts的MVC的实现方法,说出必要的XML的必要的需要配置的属性
8.Spring的aop和ioc是什么意思,在项目中都要那些用处
9.jquery中ajax如何实现
11.jsp的动态include和静态include有什么区别
12.hibernate和jdbc的步骤和区别
13.redict和forward两种跳转方式的区别
14.get和post两种提交方式的区别
17.什么是平衡二叉树
19.error和exception的区别
20.servlet的生命周期
21.linklist和arraylist和vector的性能的区别
23.你在开发中都用过哪些设计模式
24.匿名内部类是否能继承其它类,是否能继承接口
27.map、set、list的存储方式的区别
28.Spring的事务管理
15.什么是面向切面编程
16.项目中做过的东西,用了哪些东西,
17.如何将数据库中的东西显示到前台
18.什么是EL表达式
19.事务的四个特性,隔离机制
20.N个学生围城一圈,依次把123,说3的退出,剩下的围一圈接着报,问
21.输入xyz,从大到小输出(三种方法)
22.5只猴子,N个苹果,第一个猴子分成5分,多一个扔海里,然后拿走一份
23.一个弹球,从100米下落,每次弹起的高度为1/2,第十次弹球弹多高,共经历的距离
24.猴子吃桃问题
25.转换编码问题
26.设计模式
面试四
1.编程判断回文数
2.abcd(1234)倒叙输出(值,栈)
3.struts2MVC,springMVC
4.一级缓存和二级缓存的区别
5.struts2的工作原理
6.JavaScript能够写出几种数据类型。
7.你认为企业级项目开发的步骤?
用java代码实现:输出1,2,2,3,4,5的所有排列组合,4不能在第三位,3和5不能相邻
方法一
import?java.util.ArrayList;??
??
import?java.util.List;??
import?java.util.Set;??
import?java.util.TreeSet;??
/**?
?*??
?*?@author?赵学庆?www.java2000.net //摘录此人的作品
?*?
?*/??
public?class?T?{??
??public?static?List<String>?find(List<String>?list)?{??
????List<String>?rtn?=?new?ArrayList<String>();??
????String?str;??
????for?(int?i?=?0;?i?<?list.size();?i++)?{??
??????str?=?list.get(i);??
??????list.remove(i);??
??????if?(list.size()?==?0)?{??
????????rtn.add(str);??
??????}?else?{??
????????List<String>?sList?=?find(list);??
????????for?(String?s?:?sList)?{??
??????????rtn.add(str?+?s);??
??????????if?(s.length()?==?5)?{??
????????????addNumber(str?+?s);??
??????????}??
????????}??
??????}??
??????list.add(i,?str);??
????}??
????return?rtn;??
??}??
??
??public?static?void?addNumber(String?str)?{??
????if?(str.charAt(2)?==?'4'?||?str.contains("35")?||?str.contains("53"))?{??
??????return;??
????}??
????set.add(str);??
??}??
??
??public?static?Set<String>?set?=?new?TreeSet<String>();??
??
??public?static?void?main(String[]?args)?{??
????List<String>?list?=?new?ArrayList<String>();??
????list.add("1");??
????list.add("2");??
????list.add("2");??
????list.add("3");??
????list.add("4");??
????list.add("5");??
????find(list);??
????System.out.println(set.size());??
????int?cols?=?10;??
????for?(String?s?:?set)?{??
??????System.out.print(s+"?");??
??????if(cols--==1)?{??
????????System.out.println();??
????????cols?=?10;??
??????}??
????}??
??}??
}?
输出结果
198
网友提供的一个比较优化的算法
方法二
import?java.util.Set;??
import?java.util.TreeSet??
/**?
?*?原始版本没有考虑重复问题,我进行了修正.<br>?
?*?此算法的精华就是,让一个字符串的所有位置都进行互换,<br>?
?*?这样就产生了所有可能出现的字符串。?
?*??
?*?@author?赵学庆,nicky_zs?<a?href="http://www.java2000.net">www.java2000.net</a>?
?*/??
public?class?MyTest?{??
??public?static?void?main(String?args[])?{??
????char[]?number?=?new?char[]?{?'1',?'2',?'2',?'3',?'4',?'5'?};??
????perm(number,?0,?number.length?-?1);??
????System.out.println(set.size());??
????int?cols?=?10;??
????for?(String?s?:?set)?{??
??????System.out.print(s?+?"?");??
??????if?(cols--?==?1)?{??
????????System.out.println();??
????????cols?=?10;??
??????}??
????}??
??}??
??public?static?void?addNumber(String?str)?{??
????set.add(str);??
??}??
??public?static?Set<String>?set?=?new?TreeSet<String>();??
??public?static?void?perm(char[]?n,?int?beg,?int?end)?{??
????if?(beg?==?end)?{??
??????String?result?=?String.valueOf(n);??
??????if?(n[2]?==?'4')??
????????return;??
??????if?(result.contains("35")?||?result.contains("53"))??
????????return;??
??????addNumber(String.valueOf(n));??
??????return;??
????}??
????for?(int?i?=?beg;?i?<=?end;?++i)?{??
??????swap(n,?beg,?i);??
??????perm(n,?beg?+?1,?end);??
??????swap(n,?beg,?i);??
????}??
??}??
??public?static?int?number?=?0;??
??public?static?void?swap(char[]?n,?int?a,?int?b)?{??
????char?temp?=?n[a];??
????n[a]?=?n[b];??
????n[b]?=?temp;??
??}??
}?
第二篇:java面试总结
1. 面向对象三大特征是什么?你如何理解它们,并说明它们一般如何实现
封装:控制私有数据的可访问性,保护内部数据的安全 属性私有化,定义公有方法,访问私有属性
继承:代码重用 extends
多态:提高程序的可扩展性,可维护性 1) 继承 2)子类重写父类方法 3)运行时,父类定义,子类实例化
实现多态有哪些方法? 普通类继承 抽象类继承 接口实现
2. 抽象类和接口的相同点和不同点是什么?
相同点:都能约束子类的行为; 只能定义对象,不能实例化对象
不同点:接口实现了设计与编码的完全分离 抽象类中可以包含抽象也可以包含非抽象
接口多实现,抽象类单继承
3.
4. 简述Servlet的生命周期 实例化 初始化init 服务service 销毁destroy forward 和redirect的区别
forward:服务器端重定向 带着请求信息跳转
redirect: 客户端重定向,不带信息跳转
5. 说出jsp 的九个内置对象,并指出它们对应得ServletAPI
Out-----PrinterWriter
Request----HttpServletRequest
Response—HttpServletResponse
Session ----HttpSession
Application ----ServletContext
Page
Config---ServletConfig
pageContext---PageContext
exception--Exception
6. 过滤器的执行原理: 请求预处理 ;响应后处理
Class CustomerFilter implements Filter
{
Public void doFilter(request,response,FilterChain chain)
{
Request….
Response
chain.doFilter(request,response); //回归到原有请求处理
}
}
<filter>
<filter-name>LogFilter</filter-name>
<filter-class>com.eduask.filterdemo.filter.LogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
7. 监听器的执行原理
对web事件监听并进行处理的类
Class CustomListener implements ServletContextListener
{
}
<listener class=””/>
8. Session和Cookie的区别
Session:存储在服务器端
Cookie:存储在客户端
9. MVC的工作原理
用户请求到 (控制层) Servlet,Servlet调用(模型层)dao,dao返回结果给(控制层)Servlet
Servlet将结果显示到(视图层)jsp
10. Oracle的分页语句实现
Select no,其他列 from
(Select rownum as no, * from 表)where no between (页码-1)*每页个数+1 and 页码*每页个数
11. Struts2的工作流程
用户请求到核心控制器,核心控制器找到对应的Action,Action处理请求后返回逻辑视图result,根据struts.xml配置文件找多result对应的物理视图jsp,响应回客户端
12. 简述Struts2访问Servlet API的方法
ActionContext间接访问ServletAPI ,返回Map
ServletActionContext直接访问ServletAPI
13. Struts2中Action的实现手段有哪些?常用result类型有哪些?
Action实现手段:普通java类 pojo ; 实现Action接口 ;继承ActionSupport类
Result类型:dispatcher 带请求到jsp
Redirect 不带
RedirectAction 不带请求到action
Chain 带请求到Action
Stream 返回流
Json
14. 什么是json?java中如何将对象和json是如何相互转换的?
数据转换格式 {“name“:”张颖“,”age“:”30“}
{[“name“:”张颖“,”age“:”30“],[ “name“:”张颖“,”age“:”30“]}
toBean
fromObject
15. 什么是OGNL,它的组成是什么?如何使用OGNL?
对象图导航语言;在strust中用来实现类型转换和表达式输出
由值栈和栈上下文组成 值栈访问是直接使用${}; 栈上下文访问使用 #范围对象.参数名
16. 什么是国际化,实现国际化的步骤是什么?
在不更改程序代码的前提下,不同地区和国家显示当地的语言代码
1)在struts.xml中定义资源文件名称;2)定义资源文件 3)在指定jsp或action中显示资源文件信息
17. 什么是拦截器?拦截器的实现方法有哪些?使用拦截器的步骤是社么?
在struts2中定义常用操作的类,用于在Action之前进行预处理,Action执行之后后处理
实现方法:实现Interceptor接口
继承AbstractInterceptor类
继承MethodFilterInterceptor类 实现方法拦截
配置拦截器
<interceptors>
<interceptor name=”” class=””/>
<interceptor-stack name=””>
<interceptor-ref name=””/>
</interceptor-stack>
</interceptors>
<action>
<interceptor-ref name=””/>
</action>
18. 拦截器和过滤器的区别
拦截器作用在Action前后,过滤器作用在所有请求前后 拦截器可以访问ActionContext,过滤器不可以
19. Ajax的工作原理:异步请求,局部刷新
XMLHttpRequest对象:异步请求
20. Jquery中实现Ajax的方法
$.ajax()
$.get()
$.post()
$.load()