面试java.docx
- 文档编号:7730343
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:12
- 大小:23.69KB
面试java.docx
《面试java.docx》由会员分享,可在线阅读,更多相关《面试java.docx(12页珍藏版)》请在冰豆网上搜索。
面试java
面试
JAVA
目录
第1章Java基础1
第2章集合框架2
第3章IO流2
第4章多线程2
第5章Socket2
第6章JDBC3
第7章JSP3
第8章Servlet3
第9章Struts3
第10章hibernate4
第11章spring4
第12章设计模式5
第1章Java基础
1.面向对象几大特征,分别解释几大特征
2.Java包括哪些基本数据类型
3.什么是OOP?
什么是类?
请对比类和对象实例之间的关系
4.JDK、JRE、JVM是什么?
5.int和Integer有什么区别,互相之间如何转换
6.类加载的初始化顺序
7.final,finally,finalize的区别
8.Overload和Override的区别。
9.Overloaded的方法是否可以改变返回值的类型?
准确的说,不可以!
10.abstractclass和interface有什么区别?
11.equals()和“==”的区别
12.&和&&的区别。
13.Java构造方法的特点
14.Final可以修饰什么?
修饰后具有什么特点
15.接口是否可继承接口
16.抽象类是否可实现(implements)接口?
17.抽象类是否可继承实体类?
18.String是最基本的数据类型吗?
19.Strings=newString(“abc”);创建了几个StringObject?
20.String、StringBuffer、StringBuilder的区别
21.是否可以继承String类,为什么
22.接口是否可继承接口?
23.抽象类是否可实现接口?
24.抽象类是否可继承实体类?
25.GC是什么?
为什么要有GC?
26.异常的体系结构,从类与类之间的关系来回答
27.JAVA语言如何进行异常处理,关键字:
throws,throw,try,catch,finally分别代表什么意义?
28.error和exception有什么区别
29.常见的runtimeexception有哪些
30.Java有没有goto
31.Java有几种访问权限控制,请分别详细说明控制范围
32.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
33.Equals()和hashCode()有什么关系
34.Java反射机制的原理
35.@Retention的理解,自定义泛型
36.可变参数的用法
第2章集合框架
1.从接口、类的角度简述集合框架体系结构
2.说出ArrayList,Vector,LinkedList的存储性能和特性
3.Collection和Collections的区别,HashMap和Hashtable的区别
Collection是集合类的上级借口,继承于它的借口主要有Set和List;
Collections是针对集合类的一个帮助类,他提供了一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作;
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。
因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Mapinterface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
4.List,Set,Map是否继承自Collection接口
List、Set是,Map不是;
5.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
6.集合排序的常见二种写法
1.Collections的sort方法
2.实现Comparator接口实现comparator方法
7.如何将数组转换成集合,集合转换成数组
数组转集合:
Listlist=Arrays.asList(newString[]{“abc”,”abc”});
集合转数组:
toArray()
8.如何对各种集合进行迭代?
List:
add()、get()、for();
Set:
add()、通过Iterator取、iterator();
Map:
put()、通过keySet()、entrySet()迭代
9.entryset
entrySet比keySet更快
第3章IO流
1.java中有几种类型的流?
字符流、字节流;
输入流、输出流;
2.JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
InputStream、OutputStream、Reader、Writer
3.字节流与字符流的转换方法
InputStreamReaderOutputStreamWriter
4.JavaIO流基础分类方式(字节流、字符流与基本流、过滤流)及他们之间的关系
5.什么是java序列化,如何实现java序列化
实现序列化接口Serializable;ObjectOutputStream、ObjectInputStram
第4章多线程
1.多线程有几种实现方法
实现Runnable接口,实现run方法,newThread(对象).start();继承Thread类,new一个对象,对象.start()启动。
2.Thread和Runnable的区别和使用
Thread类的start不能覆盖;Runnable的run方法由Thread的start调用
3.如何实现线程同步
synchronized:
在同一时刻,只能被一个线程访问。
要求对象先持有对象上的锁。
代码执行完会自动释放锁。
wait()
notify()
4.如何启动一个线程
start方法
5.线程有哪些状态,这些状态是如何转换的
创建状态:
newThread
可运行状态:
Runnable,start方法启动线程后,分配了除cpu外的其他资源yield方法后,IO完成、join中断、sleep借宿、同步锁被释放
运行中状态:
Running,占有cpu,系统真正执行run方法
阻塞状态:
Blocked,sleep方法、join方法、wait方法,synchronized进入同步块后
死亡状态:
Dead,run运行结束或者异常退出
第5章Socket
TCP与UDP区别和使用
TCP:
面向连接,流的形式进行数据传递,更可靠;Socket,ServerSocket
UDP:
使用报文数据包,不面向连接;DatagramSocket、DatagramPacket
第6章JDBC
1.Java中访问数据库的步骤
导入驱动包、获得连接、获取语句对象、获得结果集、关闭结果集、语句对象、连接。
2.Statement,PreparedStatement,CallableStatement的功能、特点。
Statement,用于执行静态SQL语句并返回它所生成结果的对象;(只执行一次的语句用这个)
PreparedStatement,表示预编译的SQL语句的对象,执行前可以进行赋值操作;(反复使用的语句用这个,有效的防止sql注入)
CallableStatement执行存储过程,预编译的,带参数的;
3.如何利用JDBC的API获得插入数据的主键值
PreparedStatementpstmt=con.prepareStatement(“asdfsdf”,Statement.RETURN_GENERAT_KEYS);
pstmt.executeUpdate();
ResultSetrs=pstmt.getGeneratedKeys();
4.Tomcat连接池如何配置
6以上:
在MATE-INF下配置context.xml;
5.5:
conf/server.xml配置,在conf/context.xml加入链接;并在WEB-INF/web.xml下配置数据源
第7章JSP
1.JSP中动态INCLUDE与静态INCLUDE的写法是什么,区别是什么
动态include:
includepage=”test.jsp”flush=”true”/>可以传参,适合包含动态页面,可以动态刷新; 静态include: <%@includefile=”test.html”%>只包含页面代码,不能传参数。 2.9大隐式对象 输入、输出对象: request、response、out 作用域对象: pageContext、session、application servlet对象: page(代表servlet对象)、config(servlet配置) 错误对象: ExceptionisErrorPage=”true” 3.EL ExpressionLanguage表达式语言${}帮助我们方便的使用表达式写法 4.jstl javaStandardtagLibraryjava标准标签库;把java代码从页面中分离出来,简化开发,类似与html风格 5.post和get有什么异同,实现文件上传要用哪种方式 post: 传递的参数隐藏了,长度更长,更安全;文件上传只能用post get: 传递的参数在url后面;长度有限: 255 6.Request、Response对象的主要方法 request: getAttribute()、setAttribute()、getParameter()、getParameterValues()、setCharaterEncoding() response: setCharaterEcoding()、获得其他对象的方法。 。 。 7.jsp和html注释有什么区别 jsp看的到、html看不到 8.常见EL表达式的用法 ${} 9.JSP的内置对象及方法 10.Session与Cookie的区别 Session: 会话跟踪,服务器端维护 Cookie: 存储用户临时数据,客户端维护;javax.servlet.http.Cookie 第8章Servlet 1.Servlet的生命周期 初始化、实例化、服务、销毁 服务器加载servlet、服务器创建servlet实例、调用servlet实例的init方法、收到请求、调用service方法、调用doXxx方法处理请求并将输出结果返回客户端、等待下一个请求或由服务器卸载、调用destroy方法后被卸载。 2.Servlet的基本架构 javax.servlet javax.servlet.http Servlet接口》》GenericServlet抽象类》》HttpServlet抽象列》》用户自定义Servlet; 容器提供实现; init()、service()、doXxx()、destroy() 3.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 都是实现javaWEB的手段,JSP侧重试图,Servlet主要用于控制逻辑; jsp: servlet的简易方式,由java和html组合成一个.jsp文件,编译后是一个“类servlet” 4.简述Model1,Model2 都是MVC设计模式 Model1: jsp+javabeans,M由javabeans实现;V、C放在jsp中 Model2: jsp+servlet+javabeans,M: javabeans,V: jsp,C: servlet 5.重定向和转发的区别,对应的方法是什么? 重定向: redirect,告诉浏览器请求另一个地址,地址栏url改变 转发: forward,请求不中断,转发到另一个资源,请求另一个地址后再把返回类容返回给客户端,地址栏url不改变 6.servletconfig和servletcontext servletconfig: servlet的配置,init方法出入的参数。 servletcontext: 容器维护的一块存储空间,存放当前环境的一些信息和servlet相关信息,表示一个作用域。 7.简述开发一个servlet的步骤(非工具生成) 继承HttpServlet抽象类,可以实现: init、destroy、doXxx,在web.xml中配置servlet、servlet-mapping 8.getAttribute() 获得属性,取出数据 9.过滤器的原理,责任链设计模式的应用 向web应用程序的请求和响应处理添加功能的web服务组件,处在用户和web资源中间。 过滤器链FilterChain接口,调用过滤器链中的一系列过滤器。 10.请写出在你在web程序设计时,处理中文字符编码问题的一些经验 <%@pagepageEcoding=”utf-8”%>表示由jsp页面转译成servlet使用的编码形式 <%@pagecontentType=”text/html;charset=utf-8”%>请求发送的信息和响应消息的编码 工程的属性也使用UTF-8 第9章Struts 1.MVC是什么 一种设计模式,M: model模型;V: View视图;C: Control控制器 2.Struts的处理请求的全过程是什么? 3.简述用struts开发某个功能的实现步骤(非工具生成) 导入jar包》》配置web.xml》》数据访问层》》编写ActionForm》》编写Action》》新建并配置struts-config.xml》》开发视图层 4.Struts的核心配置文件是什么? struts-config.xml 5.分别说明action元素中,“path”、“name”、“scope”、“type”、“validate”和“input”属性的含义。 path: 访问路径 name: FormBean的名字 scope: 作用域 type: 类名 validate: 是否验证 input: 出错页面 6.请介绍org.apache.struts.action.DispatchAction的使用方法 可以写多个业务处理的方法 7.请介绍ActionForm的数据转换的原理 8.Struts常见Action类包括哪些,特点是什么? 9.Struts上传如何处理 10.ActionForm的作用是什么 11.Struts中的Action是servlet吗 不是 12.Action是线程安全的吗? 为什么? 应如何处理? Struts1: 线程不安全 Struts2: 安全 13.如何实现struts国际化,struts国际化的原理是什么? 根据用户地域不同,显示不同的语言信息 根据IE语言选项到资源文件里面找到对应的peoperties文件 第10章hibernate 1.ORM是什么 ObjectRelationshipMapping对象关系映射 用oo的思想操作数据库 2.Pojo是什么 3.持久化是什么 把临时的东西存到永久的介质上 4.Hibernate的优点缺点 优点: 面向对象的方式进行数据库访问、屏蔽底层数据访问的差异、数据访问代码开发效率高 缺点: 效率较低、复杂的数据统计查询处理比较难 5.hibernate的核心配置文件是什么及其作用 hibernate.cfg.xml 配置数据库连接、mapping文件的路径、属性等 6.hibernate.cfg.xml配置文件理解 7.*.hbm.xml配置文件节点作用理解 映射文件 8.Hibernate中1: 1映射分为哪两种? 怎么理解? 9.Hibernate中get()和load()方法的区别? load返回代理对象,加载的对象不存在会抛出异常; get返回实体对象本身,如果对象不存在会返回null 10.Hibernate中的锁机制的理解? 11.Hibernate中联合主键映射,组件映射,继承映射的原理? 12.Hibernate中继承映射怎么理解? 13.Hibernate中怎么配置二级缓存? 优化查询,减少操作数据库的次数 Cache 14.HQL查询语句常用写法 15.Hibernate常用接口类的作用与用法 16.Hibernate级联操作参数设置 17.POJO对象的状态及转换过程 临时状态、持久化状态、游离状态 18.简述用hibernate开发某个功能的实现步骤(非工具生成) 第11章spring 1.对Spring理解与作用 Spring是一个开源的控制反转和面向切面的容器框架。 Spring包含依赖注入容器、AOP实现、DAO/ORM支持、Web集成等。 解耦合、提供各种服务(事务管理、消息服务)、单例模式支持、AOP技术可以很容易的实现权限控制、监控等、很多辅助类加快应用开发、对各大主流的应用框架提供了集成支持。 2.在spring中有几种事务管理,分别是什么? 代码管理的事务处理、容器管理的事务处理; 并不直接管理事务、将事务管理委托给事务管理器; 声明式事务 传播行为、隔离级别 3.JDK动态代理学习 动态生成代理、可以和任何实现接口的目标对象融合 4.Spring中AOP原理 面向切面编程: 原理: 代理模式 5.利用AOP进行Spring对事务管理功能 6.Spring与Struts集成 把业务对象、Action纳入spring的ioc容器, 7.怎么理解OpenSessionInviewFilter? save完一个对象后,由于有这个过滤器,spring会把这个连接放到线程池里面,而不是马上关闭。 当需要延迟加载的时候,spring会从线程池里面取出那个session完成加载的动作,当确定这个session确实不再需要的时候,spring才会close掉这个session 第12章设计模式 1.单例模式有哪两种? 写出框架代码 确保某一个类只有一个实例 饿汉式: publicclassEagerSingleton{ privatestaticfinalEagerSingletonm_instance=newEagerSingleton(); //私有的默认构造方法 privateEagerSingleton(){} //静态工厂方法 publicstaticEagerSingletongetInstance(){ returnm_instance; } } 懒汉式: publicclassLazySingleton{ privatestaticLazySingletonm_instance=null; //私有的默认构造方法,保证外界服务直接实例化 privateLazySingleton(){} //静态工厂方法,返回此类的为例实例 synchronizedpublicstaticLazySingletongetInstance(){ if(m_instance==null){ m_instance=newLazySingleton(); } returnm_instance; } }m_instance=null; 2.工厂模式有哪几种? 请写出工厂方法模式的框架代码以及画出工厂方法模式的类图 客户类和工厂类分开 工厂方法: 抽象工厂: 3.代理模式有哪两种? 讲讲其中一个的原理 给某一个对象提供一个代理对象,并由代理对象控制对源对象的控制; 4.适配器模式的应用 把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作; io中InputStream、OutputStream、Reader和Writer代表的等级结构内部有一些流处理器是对其他类型的流源的适配。 5.模板方法模式的应用 准备一个抽象类,将部分逻辑以具体方法以及具体构造方法的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑; HibernateTemplete
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面试 java