JAVA面试问题_第1页
JAVA面试问题_第2页
JAVA面试问题_第3页
JAVA面试问题_第4页
JAVA面试问题_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象的特征抽象、封装、继承、多态equals和=的区别“=”基本数据类型比较的是值,引用类型的比较的是地址如果equals()没有重写,和”=”的功能一致线程的实现方式1. 继承Thread类2. 实现runnable接口线程的状态及其之间的切换方式你知道的集合框架(容器)有哪些?Hashtable和hashmap的区别就HashMap与HashTable主要从三方面来说。一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全

2、的,不是同步的, 由于非线程安全,效率上可能高于Hashtable三.值:hashMap允许将null作为一个entry的key或者value,而Hashtable不允许。Vector和ArrayList的异同实现原理相同,功能相同,很多情况下可以互用两者的主要区别如下Vector线程安全,ArrayList重速度轻安全,线程非安全长度需增长时,Vector默认增长一倍,ArrayList增长50%Arraylist和Linkedlist的区别1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问和遍历,Arraylis效率要优于Link

3、edlist。3.对于增加和删除操作,Linkedlist效率要优于Arraylist。Set和list的区别Set是无序唯一,List是有序不唯一。异常结构体系,至少写出3个运行时异常及其解释2222w2szz方 法 名 说 明Exception 异常层次结构的根类 ArithmeticException 算术错误情形,如以零作除数ArrayIndexOutOfBoundsException 数组下标越界NullPointerException 尝试访问 null 对象成员ClassNotFoundException 不能加载所需的类InputMismatchException 欲得到数据类

4、型与实际输入类型不匹配IllegalArgumentException 方法接收到非法参数ClassCastException 对象强制类型转换出错NumberFormatException 数字格式转换异常,如把abc转换成数字AJAX是什么意思?有哪些技术组成,你是怎么实现的?/*和服务器建立连接*/xmlHttpRequest.open(post, CheckNameServlet?username=+ userNameText.value, true);/*指定回调函数*/xmlHttpRequest.onreadystatechange = returnValue;/*发送请求*/x

5、mlHttpRequest.send(null);如何使用js动态创建元素,如何使用jquery动态创建元素js动态创建元素(文本框)function addoption() var _dd=document.getElementById(voteoptions);var _p=document.createElement(p);var _input=document.createElement(input);_input.type=text;_input.className=input-text;_input.setAttribute(name, options);_p.appendChil

6、d(_input);_dd.appendChild(_p);jquery动态创建元素(文本框)function addoption() $(#messagediv).append();如何应用正则表达式验证邮箱,说出5个正则表达式符号的意思?验证邮箱:var reg=/w+w+(.a-zA-Z2,3)1,2$/;Jsp内置对象,及其解释和常用方法request对象 客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了解到客户的需求,然后做出响应。getParameter(String name) 获取参数名为name的参数值getParameterValues(String na

7、me) 获取参数名为name的所有参数,比如参数是多个checkboxsetAttribute(String name,Object value)getAttribute(String name)response对象 响应客户请求的有关信息addCookie(Cookie cookie) 添加cookie对象sendRedirect(String URL)重定向session对象 它指的是客户端与服务器的一次会话,从客户端连到服务器的一个 WebApplication开始,直到客户端与服务器断开连接为止。getId() 获取session的IDinvalidate() 清空session内容s

8、etAttribute(String name,Object value)getAttribute(String name)out对象 它是JspWriter类的实例,是向客户端输出内容常用的对象print(String str) 进行页面输出close() 关闭缓冲区,清除所有内容page对象 它是指向当前JSP页面本身,有点象类中的this指针,它是 java.lang.Object类的实例application对象 它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭getRealPath 获取指定path的绝对路径setAttribute(String na

9、me,Object value)getAttribute(String name)exception对象 它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。pageContext对象 它提供了对JSP页面内所有的对象及名字空间的访问getOut()getPage()getRequest()getResponse()getSession()config对象 它是在一个Servlet初始化时,JSP引擎向它传递信息用的getInitParameter(name) 获取Servlet初始化参数getServletContext() 获取当前Application contextSe

10、rvlet的生命周期1.实例化 Servlet 容器创建 Servlet 的实例2.初始化 该容器调用 init() 方法(只执行一次)3.请求处理 如果请求 Servlet,则容器调用 service() 方法4.服务终止 销毁实例之前调用 destroy() 方法DAO模式由什么组成?实体类、dao接口、dao实现类、操作数据库的工具类简单说说三层架构,并说说他有什么好处?表示层业务逻辑层数据库访问层好处:将解决方案的组件分隔到不同的层中 在同一个层中组件之间保持内聚性层与层之间保持松耦合什么是MVC设计模式,说说他有什么好处? 模型 - Model 接收视图请求数据,进行业务处理,返回处

11、理结果 视图 - View 交互界面,负责数据采集和处理、用户的请求 控制器 - Controller 接收用户端请求,将模型和视图联系在一起,实现用户请求的功能 承上启下的枢纽 优点 各司其职、互不干涉 有利于开发中的分工 有利于组件的重用 缺点 系统结构和实现复杂 视图和控制器过于紧密 适合大型应用程序说说hibernate的认识,说说他有什么优点? Hibernate 一个开发源代码的对象关系映射框架 对JDBC进行了非常轻量级的对象封装 将JavaBean对象和数据库的表建立对应关系优点: Hibernate 是一个优秀的Java 持久化层解决方案 是当今主流的对象关系映射工具 Hib

12、ernate 简化了JDBC 繁琐的编码 Hibernate 将数据库的连接信息都存放在配置文件中说说你对struts2的认识,说说他有什么优点? Struts 2是一个MVC框架,以WebWork设计思想为核心,吸收了Struts 1的部分优点 Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性说说struts2的执行过程 1、客户端向Servlet容器(如Tomcat)提交一个请求 2、请求经过一系列过滤器(如ActionContextCleanUp过滤器等) 3、核心控制器被调用,询问ActionMapper来决定请求是否需要调用某个Action

13、4、如果ActionMapper决定需要调用某个Action,核心控制器把控制权委派给ActionProxy (备注:JSP请求无需调用Action) 5、ActionProxy通过Configuration Manager询问框架的配置文件(struts.xml),找到需调用的Action类 6、ActionProxy创建一个ActionInvocation的实例 7、 ActionInvocation负责调用Action,在此之前会依次调用所有配置的拦截器 8、Action执行完毕,ActionInvocation负责根据结果码字符串在struts.xml的配置中找到对应的返回结果 9、拦

14、截器被再次执行 10、过滤器被再次执行谈谈你对spring的认识,他有什么优点?Spring 轻量级框架, Java EE的春天,当前主流框架 目标 使现有技术更加易用,推进编码最佳实践 内容 依赖注入容器 Web集成 数据访问支持 简化Hibernate编码 声明式事务 AOP实现oracle左连接和右连接的区别?语法分别是什么?/*左外连接,以左表为基准*/select u.realname,o.tel,o.id,o.createtime,o.status from es_user uleft outer join es_order oon u.id=o.user_id;-以没有加号的表为

15、基表(左外连接)select u.realname,o.tel,o.id,o.createtime,o.status from es_user u ,es_order owhere u.id=o.user_id(+);右外连接语法就是right outer join 以右表为基准如何在oracle创建一个存储过程创建一个存储过程,带输入参数、带输出参数create or replace procedure proc_find_userinfo(v_id number,v_name out varchar2)asBegin select into v_name from news_

16、user u where u.id=v_id;end proc_find_userinfo;declare v_name varchar2(50):=1;begin proc_find_userinfo(1, v_name); dbms_output.put_line(v_name);end;如何创建一个游标,并读取显示游标的例子declare v_id number; v_hire_date userinfo_temp.hire_date%type; /*声明查询新闻用户信息的游标*/ cursor cur_userinfo_temp is select u.id, u.hire_date

17、from userinfo_temp u;begin /*打开游标*/ open cur_userinfo_temp; loop /*提取游标*/ fetch cur_userinfo_temp into v_id, v_hire_date; /*如果没有下一行数据,就退出循环*/ exit when cur_userinfo_temp%notfound;dbms_output.put_line(v_id|v_hire_date); end loop; /*关闭游标*/ close cur_userinfo_temp;end;动态游标例子declare /*定义ref游标类型*/ type r

18、ef_news_user is ref cursor return news_user%rowtype; /*声明变量接收数据*/ v_news_user news_user%rowtype; /*声明游标*/ user_cur ref_news_user;begin /* 打开游标,并绑定查询语句 */ open user_cur for select * from news_user; loop /*提取游标*/ Fetch user_cur into v_news_user; exit when user_cur%notfound; dbms_output.put_line(v_news

19、_user.id|v_news_); end loop;end;如何利用存储过程读取游标/*创建一个输出参数为动态游标的存储过程*/create or replace procedure proc_account_info_1 (ref_cur_account out sys_refcursor) asbegin /*打开一个动态游标*/ open ref_cur_account for select * from account;end proc_account_info_1;declare/*定义一个动态游标类型的变量,作为输出参数*/ v_ref_cur sys_ref

20、cursor; v_account account%rowtype;begin /*调用存储过程,传入参数*/ proc_account_info_1(v_ref_cur); loop /*提取游标*/ fetch v_ref_cur into v_account; exit when v_ref_cur%notfound; /*打印id*/ dbms_output.put_line(v_account.id); end loop; close v_ref_cur;end;单例模式如何实现?public class SingletonClass private static Singleton

21、Class instance = null;private SingletonClass() public static SingletonClass getInstance() if (instance = null) synchronized (instance) instance = new SingletonClass();return instance;代理模式如何实现?一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。接口public interface Italk public void talk(Stri

22、ng message );真正对象public class People implements Italk Overridepublic void talk(String message) System.out.println(你好,+message);代理对象public class PeopleProxy implements Italk private Italk italk;public PeopleProxy (Italk italk) super();this.italk = italk;Overridepublic void talk(String message) italk.

23、talk(message);song();public void song()System.out.println(唱歌!);测试public class MainTest public static void main(String args) People p=new People();PeopleProxy peopleProxy=new PeopleProxy(p);peopleProxy.talk(我是代理);结果为:你好,我是代理唱歌!什么是递归,如何实现?斐波那契数列程序调用自身的编程技巧叫做递归例:Fibonacci数列1,1,2,3,5,8,13public static i

24、nt fab(int index) if (index = 1 | index = 2) return 1; else return fab(index - 1) + fab(index - 2);1*2*3*4npublic static int multiply(int n) if (n = 1) return 1; else return n * multiply(n - 1);Java种集中排序方式 冒泡排序算法/* * 依次比较相邻的两个元素,通过一次比较把未排序序列中最大(或最小)的元素放置在未排序序列的末尾 */public static int bubbleSort(int a

25、rgs) for (int i = 0; i args.length - 1; i+) for (int j = i + 1; j argsj) int temp = argsi;argsi = argsj;argsj = temp;return args; 选择排序算法/* * 每一次从待排序的数据元素中选出最小(或最大)的一个元素, 顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 * * param args * return */public static int selectSort(int args) for (int i = 0; i args.length - 1;

26、 i+) int min = i;for (int j = i + 1; j argsj) min = j;if (min != i) int temp = argsi;argsi = argsmin;argsmin = temp;return args; 快速排序/* * 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都小,然后再按此方法对这两部分数据分别进行快速排序, * 整个排序过程可以递归进行,以此达到整个数据变成有序序列。 * * param data * param start * param end */public static vo

27、id sort(int data, int start, int end) if (end - start = 0) return;int last = start;for (int i = start + 1; i = end; i+) if (datai datastart) int temp = data+last;datalast = datai;datai = temp;int temp = datalast;datalast = datastart;datastart = temp;sort(data, start, last - 1);sort(data, last + 1, e

28、nd);Jdbc查询和修改操作如何实现?public class BaseDao String url=jdbc:oracle:thin:localhost:1521:ol;String user=xiaofang;String password=abcd;Connection connection=null;Statement stat=null;ResultSet rs=null;PreparedStatement pst=null;statictry /*1、加载驱动*/Class.forName(oracle.jdbc.driver.OracleDriver); catch (Clas

29、sNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();/*2、建立连接*/public void open()try connection=DriverManager.getConnection(url, user, password); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();/*查询*/public ResultSet selectSql(String sql)try stat=con

30、nection.createStatement(); rs=stat.executeQuery(sql); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return rs;/*增删改*/public int execSql(String sql,List par)try pst=connection.prepareStatement(sql); if(par!=null)for (int i = 0; i par.size(); i+) pst.setObject(i+1, par.ge

31、t(i); return pst.executeUpdate(); catch (SQLException e) e.printStackTrace();return 0;/*释放资源*/public void close()try if(rs!=null)rs.close();if(stat!=null)stat.close();if(pst!=null)pst.close();if(connection!=null)connection.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStack

32、Trace();默写spring事务的配置 OpenSessionInViewFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter OpenSessionInViewFilter /* 写出linux下常用命令(5个)Jquery中有哪些选择器类CSS选择器基本选择器名称语法构成描述示例标签选择器element根据给定的标签名匹配元素$(h2)选取所有h2元素类选择器.class根据给定的class匹配元素$(.title)选取所有class为title的元素ID选择器#id根据给定的id匹配元素$(

33、#title)选取id为title的元素名称语法构成描述示例并集选择器selector1,selector2,.,selectorN将每一个选择器匹配的元素合并后一起返回$(div,p,.title)选取所有div、p和拥有class为title的元素交集选择器element.class或element#id匹配指定class或id的某元素或元素集合$(h2.title)选取所有拥有class为title的h2元素全局选择器*匹配所有元素$(*)选取所有元素层次选择器名称语法构成描述示例后代选择器ancestordescendant选取ancestor元素里的所有descendant(后代)元

34、素$(#menuspan)选取#menu下的元素子选择器parentchild选取parent元素下的child(子)元素$(#menuspan)选取#menu的子元素相邻元素选择器prev+next选取紧邻prev元素之后的next元素$(h2+dl)选取紧邻元素之后的同辈元素同辈元素选择器prevsibings选取prev元素之后的所有siblings元素$(h2dl)选取元素之后所有的同辈元素属性选择器名称语法构成描述示例属性选择器attribute选取包含给定属性的元素$(href)选取含有href属性的元素attribute=value选取等于给定属性是某个特定值的元素$(href=

35、#)选取href属性值为“#”的元素attribute!=value选取不等于给定属性是某个特定值的元素$(href!=#)选取href属性值不为“#”的元素过滤选择器基本过滤选择器名称语法构成描述示例基本过滤选择器:first选取第一个元素$(li:first)选取所有元素中的第一个元素:last选取最后一个元素$(li:last)选取所有元素中的最后一个元素:even选取索引是偶数的所有元素(index从0开始)$(li:even)选取索引是偶数的所有元素:odd选取索引是奇数的所有元素(index从0开始)$(li:odd)选取索引是奇数的所有元素名称语法构成描述示例基本过滤选择器:eq

36、(index)选取索引等于index的元素(index从0开始)$(li:eq(1)选取索引等于1的元素:gt(index)选取索引大于index的元素(index从0开始)$(li:gt(1)选取索引大于1的元素(注:大于1,不包括1):lt(index)选取索引小于index的元素(index从0开始)$(“li:lt(1)”)选取索引小于1的元素(注:小于1,不包括1)名称语法构成描述示例基本过滤选择器:not(selector)选取去除所有与给定选择器匹配的元素$(li:not(.three)选取class不是three的元素:header选取所有标题元素,如h1h6$(:header

37、)选取网页中所有标题元素:focus选取当前获取焦点的元素$(:focus)选取当前获取焦点的元素可见性过滤选择器名称语法构成描述示例可见性过滤选择器:visible选取所有可见的元素$(:visible)选取所有可见的元素:hidden选取所有隐藏的元素$(:hidden)选取所有隐藏的元素Jquery事件绑定的几种方式及区别?如何Ajax实现?什么是事件冒泡?Java中如何解析xmlDOM方式解析DOM把XML文映射成一个倒挂的树使用DOM解析XML文档的步骤:创建解析器工厂对象由解析器工厂对象创建解析器对象由解析器对象对指定XML文件进行解析,构建相应DOM树,创建Document对象以

38、Document对象为起点对DOM树的节点进行增删改查操作DOM的优点DOM规范与语言和平台无关内存中拥有整个DOM树,可以随即访问文档的任何节点/ 1、得到DOM解析器的工厂实例DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();try / 2、从DOM工厂获得DOM解析器DocumentBuilder db = dbf.newDocumentBuilder();/ 3、解析XML文档,得到一个Document,即DOM树Document doc = db.parse(pet2.xml);/ 4、得到所有节点列表

39、信息NodeList dogList = doc.getElementsByTagName(dog);System.out.println(xml文档中共有 + dogList.getLength() + 条狗狗信息);/ 5、轮循狗狗信息for (int i = 0; i dogList.getLength(); i+) / 5.1、获取第i个狗狗元素信息Node dog = dogList.item(i);/ 5.2、获取第i个狗狗元素的id属性的值并输出Element element = (Element) dog;String attrValue = element.getAttribute(id);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论