java面试总结

时间:2024.4.13

面试题一

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()

更多相关推荐:
Java总结

Java总结Java语言不允许程序员直接控制内存空间的使用。内存空间的分配和回收是有jre负责在后台自动进行,尤其是无用内存空间的回收操作。垃圾回收器不可以被强制执行,但程序员可以通过调用system.gc()…

Java总结

Java总结一.1.Java程序的执行Java先由.Java文件编译生成.class文件,再由.class文件通过不同操作系统的虚拟机进行解释从而执行程序结果。编译命令:javac+文件名.Java解释命令:j…

JAVA总结

1.构造函数:是一种特殊的函数,没有返回值。构造函数的名称与类的名称相同。一般用于初始化成员变量的值。使用super关键字来调用父类的构造函数。2.方法的重载:法名相同但参数的个数或类型不同,一般情况下是在一个…

二级JAVA总结

对长度为n的线性表进行冒泡排序,最坏情况先需要比较的次数为log2n。对长度为n的线性表进行顺序排序,最坏情况先需要比较的次数为n。高内聚低耦合有利于模块的独立性。二叉树属于非线性结构。算法具有可行性、确定性、…

java总结

个人介绍:1.名字可以不用介绍;2.×××大学,学了什么(大致介绍)3.如何进入第一家公司;4.工作年限;5.大致讲下在公司所作的项目;技术方面:1.抽象类与接口的区别;2.版本控制(CVS,VSS)3.常用的…

JAVA总结

在这忙忙碌碌的这段时间里,经过老师的辅导,迅速的将一点没有学的JAVA基础搞定了!有了基础学习还是好,万事开头难这句话说的太对了,学计算机语言我觉得记忆好的方法就是多打代码,课前预习,课堂上认真听讲,把现学的方…

java总结

1.读入数据用Scanner2.向文件写数据用PrintWriter3.this.dispose();这个方法可以真正在内存中移除JFrame从类java.awt.Window继承的方法:dispose()pu…

IO流(JAVA)总结

IO流(JAVA)总结一:整体说明用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到另一个装饰,多个装饰可以随意的组合…

java总结记背文档

1、Java基础1.1Java基础1.Java语法2.面向对象3.常见API4.集合框架1.2Java界面编程1.AWT2.事件机制3.Swing1.3JavaAPI1.JavaIO2.多线程3.网络编程4.反…

java 总结

接近两个月的学习,敲的代码比三年都多。从没有想过要从事软件行业,面对就业的压力,自己不得不重新审视自己。加上现在软件这么好的就业环境。无锡这地不错。就是离家太远。目前学的都是基础,虽然认真学好,但以前在学校上课…

java总结

将数据成员声明为静态的,那么每次调用的时候,静态成员的值并不会因之而改变。如果想在主函数调用函数(不是有对象进行调用),比如while(test()),那么test()必须声明为静态的。构造器,在c++中叫构造…

java总结

//在java中,对大小写敏感,比如两个变量log和Log,代表的是不同的变量。整型占用4个字节short占用2个字节long占用8个字节byte占用是一个字节,整型的范围与机器无关,这是因为在java中存在着…

java总结(59篇)