ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:50.41KB ,
资源ID:754314      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/754314.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JAVA实习生面试题及答案模板5.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JAVA实习生面试题及答案模板5.docx

1、JAVA实习生面试题及答案模板5JAVA实习生基础面试题1一、super()与 this()的区别?1、this():是当前类的对象,而super()是父类对象。2、super():在子类访问父类的成员和行为,必须受类继承规则的约束而this 他代表当前对象,当然所有的资源都可以访问.在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private 修饰).此时你必须加入对父类的实例化构造.而this 就没有这个要求,因为它本身就进行实例化的构造.而在方法中super 和this 使用的方法就差不多了.只不过super

2、要考虑是否能访问其父类的资源.二、作用域 public, protected, private,以及不写时的区别?1、Public:不同包、同一包、类内都可用2、Private:类内3、Protected: 不同包的子类、同一包、类内都可用4、不写时:同一包内、类内三、String, StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答: 1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中String类被声明为一个

3、final类。3、StringBuffer是线程安全的,而StringBuilder是非线程安全的。ps:线程安全会带来额外的系统开销,所以StringBuilder的效率比StringBuffer高。如果对系统中的线程是否安全很掌握,可用StringBuffer,在线程不安全处加上关键字Synchronize。四、Vector, ArrayList, LinkedList的区别是什么?答: 1、Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储。2、List中的元素有序、允许有重复的元素,Set中的元素无序、不允许有重复元素。3、Ve

4、ctor线程同步,ArrayList、LinkedList线程不同步。4、LinkedList适合指定位置插入、删除操作,不适合查找;ArrayList、Vector适合查找,不适合指定位置的插入、删除操作。5、ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间。五、HashTable, HashMap,TreeMap区别?答: 1、HashTable线程同步,HashMap非线程同步。2、HashTable不允许有空值,HashMap允许有空值。3、HashTable使用Enumeration,HashMap使用Iter

5、ator。4、HashTable中hash数组的默认大小是11,增加方式的old*2+1,HashMap中hash数组的默认大小是16,增长方式一定是2的指数倍。5、TreeMap能够把它保存的记录根据键排序,默认是按升序排序。六、Tomcat,Apache,JBoss的区别?答: 1、Apache是Http服务器,Tomcat是web服务器,JBoss是应用服务器。2、Apache解析静态的html文件;Tomcat可解析jsp动态页面、也可充当servlet容器。七、GET,POST区别?答: 1、Get是从服务器端获取数据,Post则是向服务器端发送数据。2、在客户端,Get方式通过UR

6、L提交数据,在URL地址栏可以看到请求消息,该消息被编码过;Post数据则是放在Html header内提交。3、对于Get方式,服务器端用Request.QueryString获取变量的值;对用Post方式,服务器端用Request.Form获取提交的数据值。4、Get方式提交的数据最多1024字节,而Post则没有限制。5、Get方式提交的参数及参数值会在地址栏显示,不安全,而Post不会,比较安全。八、Session, Cookie区别答: 1、Session由应用服务器维护的一个服务器端的存储空间;Cookie是客户端的存储空间,由浏览器维护。2、用户可以通过浏览器设置决定是否保存Co

7、okie,而不能决定是否保存Session,因为Session是由服务器端维护的。3、Session中保存的是对象,Cookie中保存的是字符串。4、Session和Cookie不能跨窗口使用,每打开一个浏览器系统会赋予一个SessionID,此时的SessionID不同,若要完成跨浏览器访问数据,可以使用 Application。5、Session、Cookie都有失效时间,过期后会自动删除,减少系统开销。九、抽象类和接口的区别?答:1、接口可以被多重implements,抽象类只能被单一extends2、接口只有定义,抽象类可以有定义和实现3、接口的字段定义默认为:public stati

8、c final, 抽象类字段默认是friendly(本包可见)4、当功能需要累积时用抽象类,不需要累积时用接口。十、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用=还是equals()? 它们有何区别?用 contains来区分是否有重复的对象。还是都不用。答:1、在比较时先调用hashCode() 方法,如果不相同,证明不相等。如果相同,再调用equals 方法,如果equals 方法相同,证明相等,不相同,证明不相等。2、=:主要用在基本数据类型及引用3、equals():主要是对象或对象引用的比较。集合中是否包含某一个元素用contains 来判断。十一、Servle

9、t的生命周期答: 大致分为4部:Servlet类加载-实例化-服务-销毁下图是Tomcat中Servlet时序图。1、Web Client向Servlet容器(Tomcat)发出Http请求。2、Servlet容器接收Client端的请求。3、Servlet容器创建一个HttpRequest对象,将Client的请求信息封装到这个对象中。4、Servlet创建一个HttpResponse对象。5、Servlet调用HttpServlet对象的service方法,把HttpRequest对象和HttpResponse对象作为参数传递给HttpServlet对象中。6、HttpServlet调用H

10、ttpRequest对象的方法,获取Http请求,并进行相应处理。7、处理完成HttpServlet调用HttpResponse对象的方法,返回响应数据。8、Servlet容器把HttpServlet的响应结果传回客户端。其中的3个方法说明了Servlet的生命周期:1、init():负责初始化Servlet对象。2、service():负责响应客户端请求。3、destroy():当Servlet对象推出时,负责释放占用资源。十二、Statement与PreparedStatement的区别,什么是SQL注入,如何防止SQL注入答: 1、PreparedStatement支持动态设置参数,St

11、atement不支持。2、PreparedStatement可避免如类似 单引号 的编码麻烦,Statement不可以。3、PreparedStatement支持预编译,Statement不支持。4、在sql语句出错时PreparedStatement不易检查,而Statement则更便于查错。5、PreparedStatement可防止Sql助于,更加安全,而Statement不行。什么是SQL注入:通过sql语句的拼接达到无参数查询数据库数据目的的方法。如将要执行的sql语句为 select * from table where name = +appName+,利用appName参数值的

12、输入,来生成恶意的sql语句,如将or1=1 传入可在数据库中执行。因此可以采用PrepareStatement来避免Sql注入,在服务器端接收参数数据后,进行验证,此时PrepareStatement会自动检测,而Statement不 行,需要手工检测。十三、sendRedirect, foward区别答: 1、foward是服务器端控制页面转向,在客户端的浏览器地址中不会显示转向后的地址;sendRedirect则是完全的跳转,浏览器中会显示跳转的地址并重新发送请求链接。原理:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后再将这些内容返

13、回给浏览器,浏览器根本不知道服务器发送的这些内容是从哪来的,所以地址栏还是原来的地址。redirect是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求的那个地址,浏览器会用刚才的所有参数重新发送新的请求。十四、关于Java内存模型,一个对象(两个属性,四个方法)实例化100次,现在内存中的存储状态,几个对象,几个属性,几个方法。答: 由于JAVA中new出来的对象都是放在堆中,所以如果要实例化100次,将在堆中产生100个对象,一般对象与其中的属性、方法都属于一个整体,但如果属性和方法是静态的,就是用static关键字声明的,那么属于类的属性和方法永远只在内存中存在一份。十五、反射讲一

14、讲,主要是概念,都在哪需要反射机制,反射的性能,如何优化答: 反射机制的定义:是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。反射的作用:1、动态地创建类的实例,将类绑定到现有的对象中,或从现有的对象中获取类型。2、应用程序需要在运行时从某个特定的程序集中载入一个特定的类十六、谈谈Hibernate与Ibatis的区别,哪个性能会更高一些答: 1、Hibernate偏向于对象的操作达到数据库相关操作的目的;而ibatis更偏向于sql语句的优化。2、Hi

15、bernate的使用的查询语句是自己的hql,而ibatis则是标准的sql语句。3、Hibernate相对复杂,不易学习;ibatis类似sql语句,简单易学。性能方面:1、如果系统数据处理量巨大,性能要求极为苛刻时,往往需要人工编写高性能的sql语句或存错过程,此时ibatis具有更好的可控性,因此性能优于Hibernate。2、同样的需求下,由于hibernate可以自动生成hql语句,而ibatis需要手动写sql语句,此时采用Hibernate的效率高于ibatis。十七、对Spring的理解,项目中都用什么?怎么用的?对IOC、AOP的理解及实现原理答: spring是一个开源框架,处于MVC模式中的控制层,它能应对需求快速的变化,其主要原因它有一种面向切面编程(AOP)的优势,其次它提升了系统性能,因为通过 依赖倒置机制(IOC),系统中用到的对象不是在系统加载时就全部实例化,而是在调用到这个类时才会实例化该类的对象,从而提升了系统性能。这两个优秀的性能 使得Spring受到许多J2EE公司的青睐,如阿里里中使用最多的也是Spring相关技术。Sp

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1