郑州22期面试笔试题总结.docx
- 文档编号:12342490
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:22
- 大小:30.27KB
郑州22期面试笔试题总结.docx
《郑州22期面试笔试题总结.docx》由会员分享,可在线阅读,更多相关《郑州22期面试笔试题总结.docx(22页珍藏版)》请在冰豆网上搜索。
郑州22期面试笔试题总结
笔试题部分:
1、(北京37期)编程题:
编写一段程序用于生成随机码,入参为随机码长度,出参为随机码,要求随机码中必须包含大小写字母及数字
, 2015/5/5 15:
59:
38
2、(北京37期)编写一段程序用于判断一个字符串是否是合法的IP地址
3、笔试题最难的内容:
根据给定的表,写一个存储过程:
客户信息表(客户编号、客户名称,联系方式...)
订单表(订单号,订单名称,订单价格合计,订单明细信息id,客户编号)
订单明细表(id,产品名称,单位,单价,数量)
该存储过程要求根据客户编号,查询该客户的订单以及该订单下不同产品价格合计;
即:
客户编号、客户名称、订单号、订单名称、产品id、数量合计、价格合计
4、笔试题最恶心的:
英文阅读翻译等;脑筋急转弯;
5、没涉及到的笔试题(自己XX或者求助同学)
6、其他笔试题(老师将上一期学生笔试题内容以图片形式保存了,到时候按时下载)
7、不用循环写一个小于5000以2的倍数递增并输出值?
上机题:
上机题可能有如下几个考点:
1、手动搭建SSH框架,写一套增删改查
2、解析一个XML文件(sax、DOM解析)
3、写一个方法,实现扫描指定路径下某个文件夹中所有文件(获取文件个数,文件名称等);
4、使用SSH框架,结合给定页面,实现功能(一般涉及到ajax)
面试题部分:
1、谈谈你对java的了解?
Java是面向对象的、具有安全性、可移植性、跨平台性、并发性。
Java有三个平台J2EE、J2ME、J2SE
2、面向对象的三个特性:
继承封装多态(体现在哪里?
)
继承:
子类继承父类,子类能够继承父类中非私有的方法或者变量,继承的好处是可以使程序大量的复用;缺点是如果过多继承会导致程序结构庞大
封装:
体现在包、访问修饰符以及setget方法取值,还有某些操作封装到方法中
多态:
实例化对象,一个类可以new多次,构造方法的重载重写也体现多态;
3、面向对象的过程
面向对象分析、面向对象设计、面向对象编程
4、java的八个基本数据类型和对应的包装类和每一种类型的长度
Byte、short、int、long、double、float、char、boolean
5、异常和错误区别?
运行时异常和非运行时异常(编译时异常)区别,说出几个你用过的异常?
如何捕获异常?
Throws和throw区别?
异常:
程序运行过程中产生的某些错误,程序人员通过修改程序可以修复的,程序员可以预知的错误;
错误:
表示系统级别的错误,例如系统崩溃,jvm内存溢出等;无法预知并且修改程序也无法避免的;
运行时异常:
表示程序运行过程中产生的异常,可以不强制trycatch捕获或者不强制的throws,程序可以编译通过;
非运行时异常:
表示程序编译过程中就捕获的异常,需要强制trycatch或者throws抛出,程序运行时,一旦产生非运行时异常,程序无法编译通过;
如何捕获异常?
通过trycatchfinallytry{表示放可能产生异常的程序}catch(可能产生的异常){如果符合该异常,此时执行该语句段,表示这里要处理该异常}finally{不论是否有异常都执行该语句段}
Throws:
在方法声明时使用,表示该方法可能产生的异常,谁调用该方法,谁捕获处理;当前方法不处理不捕获
Throw:
表示抛出一个具体异常,使用在方法体中;例如:
thrownew Exception(“异常消息”);
6、String和StringBuffer区别?
为什么用StringBuffer拼字符串?
String表示不可长度字符串,finally不可被继承的类;
StringBuffer:
表示可变长度字符串,通过append方法追加字符串,默认有16位缓冲区,
时能new实例化赋值,不能=号赋值;
使用StringBuffer拼接字符串以为StringBuffer长度可变,并且通过append方法追加字符串,节省内存:
例如:
“a”+”b”+”c”此时字符串池中有:
abcababc几个字符串;而通过StringBuffer:
则字符串池中有:
abc和abc
7、线程和进程区别?
如何理解锁?
线程:
一段可执行的代码段;多个线程共同完成一个任务;
进程:
一个可执行的应用程序;
解决死锁可以通过:
synchronized关键词,实现多个线程中不同方法,在同一时间内,只能有一个线程在执行;其他线程等待,直到该线程释放资源;
8、Wait和sleep方法区别?
Wait方法是object类中的,sleep是Thread类中的
9、如何定义一个线程?
重写Thread类中的Run方法,或者实现Runnable接口中Run方法
10、Collection和Collections区别
Collection是集合接口,Collections是封装了操作集合方法的类;
11、Set和List区别
Set无序,不可以重复;
List有序,可以重复;
12、LinkedList和vector以及ArrayList区别
LinkedList:
链表实现,对该集合新增修改删除数据速度快,效率高,线程不安全;
Arraylist:
数组实现,对该集合操作时,从该集合中查询数据速度快,效率高,线程不安全;
Vector:
数组实现,线程安全,效率低;
13、HashMap和HashTable区别:
HasMap:
键值对可以为空;线程不安全;
HashTable:
键值对不可以为空;线程安全;
14、PreparedStatement和Statement区别:
前者使用预编译sql,效率高,安全,后者未采用预编译sql,效率低;
15、名词解释:
jdbc、JNDI、BI、VO、DAO、IOC、AOP、OOP、DI(依赖注入)、MVC、ORM(关系映射模型)、盒子模型、
JDBC:
java数据库链接;即:
java提供操作数据库的东西;
JNDI:
java命名目录接口;
BI:
商业智能;
VO:
值对象;
DAO:
数据访问对象也就是:
java访问数据库的第一层接口;
IOC:
控制翻转;(Spring时候讲)
AOP:
面向切面编程(Spring讲)
OOP:
面向对象编程;
DI:
MVC:
是一种开发模式,M:
model模型层,Vview视图层CController控制层;
控制层主要负责模型层以及视图层数据交互;
ORM:
关系映射模型;(Hibernate,Mybatis等都是ORM框架)
盒子模型:
css中的一种模型;将页面元素认为是现实中盒子,他们都具有border边框
Content内容,padding(补白)内边距margin外边距等特点,这就是盒子模型;
16、接口和抽象类区别?
为什么用接口(弥补java单继承特点)?
为什么用抽象类(提取公共部分内容,达到代码复用目的和多态)?
接口:
是Interface,是一种特殊的抽象类,为了弥补java单继承的特点,接口可以继承多个接口,也可以实现多个类,声明的变量为常量,方法默认public省略abstract关键词;
使用时必须通过类重写里面所有抽象方法;
抽象类:
是abstract声明的类,可以有抽象方法,也可以有非抽象方法;
不能被实例化,只能通过子类继承重写里面所有抽象方法,通过实例化子类使用;
用抽象类可以提取公共部分,然后子类重写相关方法或者抽象方法,实现多态以及程序的复用;
接口目的就是为了弥补单继承缺点;因为接口可以弥补多继承;
17、Break(退出整个循环)、continue(退出当前循环,只能用于循环或者switch语句)和return(退出整个方法体表示该方法有返回值)区别
18、Finally(异常语句块中的,表示有无异常都执行该方法体)、final(声明变量为常量,声明类不可被继承)、finalize(垃圾回收机制中自动调用的方法)区别
19、如何获取随机小数?
如何获取随机整数?
Math.random()Random.类
20、io流的种类?
哪里用到了io流,?
什么时候用字节流,什么时候用字符流?
说一下你用过的流有哪些?
(1)字节流和字符流
(2)文件上传下载以及解析xml时加载文件等,还有某些框架底层用到了
(3)读取文件内容,即文本,使用字符流,其他情况都是用字节流
(4)字节流:
InputStram,OutputStreamFileInputStram、FileOutputStream
BufferedInputStream,。
BufferedOutputStream
字符流:
Reader、Writer、BufferedReader、BufferedWriter、FileReader、FileWriter、
InputStreamReader、OutputStreamWriter
21、内部类种类?
匿名内部类、非静态内部类、静态内部类、局部内部类
22、list、set如何重新排序?
如何让set有序?
重写Comparable以及Comparator中的comparaTo以及compare方法
23、重写以及重载区别?
重写发生在继承中,子类继承父类,要求子类方法与父类方法名,参数个数,返回值必须相同;
重载是发生在当前类中,方法名相同,参数个数不同,类型不同即可;
24、Static用法:
static表示声明的变量或者方法只能被实例化一次,并且被一个对象的不同实例共享,类名可直接打点调用;
25、super和this区别?
Super调用父类对象,使用时如果在子类构造方法中,必须写第一行,不能用在static中;
This表示当前类对象,不能用static中;
26、Jsp的两中包含:
include>动态包含,被包含页面不独立存在,先包含进来在编译; <%@include>静态包含,被包含的页面独立存在,先编译完毕后再包含进来; 27、jsp的就个内置对象: out、page、request、session、application、config、pageContext、exception、response 四个作用域: page(最小)、request、session、application(最大) 28、过滤器用在哪儿? 即: filter,可以实现权限控制以及转码,某些框架中也使用了(struts2) 29、监听器? Session、request、application(ServletContex类型) 监听在线人数、通过application初始化时加载数据或者配置; 30、servlet的声明周期? 服务器加载后,servlet容器通过init方法初始化,然后客户端访问服务器时,经过servlet的指定的urlpattern,然后进入指定servlet类中的service方法处理业务逻辑,然后响应给客户端,服务器关闭通过destory方法销毁servlet容器; 31、Session和Cookie区别: Session’表示一次会话,客户端访问服务器端,会有唯一session表示该客户端,有一个sesionid是唯一的;浏览器关闭只能是断开会话,而session依然存在,直到过期或者手动销毁;(web.xml中可以设置或者通过set...方法设置有效时间) Session是保留在服务器端的;过多使用给服务器端带来压力; Cookie是键值对存储数据,保留在客户端不安全; 32、Jsp中的<%%><%! %><=%>区别 <%%>可以声明变量也可以写操作; <%! %>只能用于声明变量,声明变量是全局的; <%=%>表示输出,显示某个字段值,类似于out.print(); 33、客户端跳转(重定向)或者服务器端跳转(转发)区别? 客户端跳转当页面刷新时,不会再次发送请求,以前的request中存放的变量全部失效,并进入一个新的request作用域。 服务器端跳转当刷新页面会再次提交请求,并且服务器端跳转时以前的request中存放的变量不会失效。 34、初始化快和静态初始化块区别: 类中写static{}永远只加载一次,单利的、比构造方法早 类中写{}每次加载类都执行,比构造方法早 35、为什么用构造方法? (初始化成员变量使用的) 36、Js如何操作DOM? 什么是DOM(文本对象模型)? (1)按照id获取对象、按照name属性获取、按照标签获取、按照form找 document.getElementById(“”) document.getElementsByName(“”) document.getElementsByTagName(“”) Document.forms[0].id或者name属性 38、如何js创建一个节点? 如何用jquery创建一个节点? Js: document.createElement(“标签名”) Jquery: $(“ 39、Js是否有trim方法? 没有如何做? 没有trim方法; 正则表达式写去掉前后空格方法: 必须会写: functiontrimStr(str){ returnstr.replace(/(^\s*)|(\s*$)/g,""); } 40、js如何判断某个字段数据类型? (1)通过赋值,看赋值是什么类型的 (2)typeOf方法判断 41、js面向对象写法你懂么? (只是了解,开发用过jquery框架,js面向对象不太了了解) 42、JSP指令有哪些? (说出: include和forword即可) JSP中的动作元素包括: include、forward、useBean、getProperty、setProperty、plugin、param。 1.include动作 include>标签用来包含一个静态或者动态的文件。 2.forward动作 forward>标签用来重定向一个静态HTML文件、JSP文件或者是一个程序段。 3.useBean动作 useBean>标签用来在JSP页面中创建一个Bean实例,并指定其名称和作用范围。 4.getProperty动作 getProperty>标签用来获取Bean的属性值(在此之前必须用 useBean>创建它),并将之转化为一个字符串,然后将其插入到输出的页面中。 5.setProperty动作 setProperty>标签表示用来设置Bean中的属性值。 6.plugin动作 plugin>标签用于在浏览器中播放或显示一个对象(典型为applet和Bean),这种显示需要在浏览器上安装Java插件。 当JSP文件被编译后送往浏览器时, plugin>元素将会根据浏览器的版本替换成 7.param动作 param>标签用来传递参数,必须与forward、include及plugin动作配合使用 43、什么是js的闭包? (类似函数嵌套函数的使用,描述一个例子即可) functiona(){ vari=0; functionb(){ alert(++i); } returnb; } 使用时如下: varc=a(); c(); 44、Js继承用过么? (回答: 没有,只用过jquery框架即可) 45、Jquery用过继承吗? 没有(只了解jquery中$.fn.extend函数,它用于重写jquery中封装的某些方法的,也可以写自定义的插件,相当于继承) 46、有一个iframe,当前页面如何选他页面中iframe里面的某个标签? document.frames[0].getElementById(“iframe页面中元素id属性值”) iframe如何获取外层页面对象? 在iframe所在页面中,写js代码: window.parent.document.getElementById(“”) 47、开发中什么时候使用StringBuilder,什么时候使用StringBuffer? StringBuilder线程安全,效率低;(如果同一时间内,只允许一个线程使用字符串追加操作,此时考虑用StringBuilder因为该类中append方法加入了锁关键词) StringBuffer线程不安全,效率高;(如果同一时间内,允许多个线程共同访问并使用拼接字符串操作,此时可以考虑使用StringBuffer) 48、Iframe和frame区别? Iframe是嵌套在某个页面中的,iframe包含的页面是独立的窗体; Frameset是将页面拆分几个部分,每个页面不是独立的窗体; 49、HTTP的长连接和短连接? 长连接: client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收。 这种方式下由于通讯连接一直存在。 此种方式常用于P2P通信。 短连接: Client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。 此方式常用于一点对多点通讯。 C/S通信。 50、说出你用过jquery的那些属性? 那些方法(10-20个)? 事件? 属性和方法: attr(“”)removeAttr(“”)val(“”)、get()、ready()、addClass(“”)、css() Remove()、parent()/children()/find(“”)/removeClass(“”)/show()/hide()/next()/ First()last()append()html()text()/before()after()/bind()/toggle()/ Indexoffset().pageXoffset().pageY$.ajax()$.each()$.trim(“”)$.serialize()/foucs()/ 事件: click(function(){}) Mouseovermouseoutdbclickmousemovefocusblur 51、说一下jquery的选择器? 按照id找: $(“#”) 按照class属性找: $(“.”) 按照标签名找: $(标签名) 表示过滤的: : parent: selected: checked: hidden: visible: not: first: last: eq: lt: gt: even: odd : text: checkbox: input: radio 方法: find(“”)parent(“”)get(下标)children(“”)next(“”) 52、什么是ajax? 为什么用ajax? Jquery如何实现ajax? Ajax 可以传输哪些数据格式的数据? (1)ajax是利用js中XMLHttpRequest对象,实现客户端与服务器端无刷新页面,异步交互数据的技术;可以实现局部刷新; (2)使用ajax可以实现局部刷新,使用json格式传输数据实现异步效率高,并可以实现页面动画效果; (3)$.ajax()$.post()$.get()$.load()$.getJson() (4)xml/json/text/script/jsonp、html 53、$.ajax()方法参数有哪些? url: 设置请求路径、type: 设置提交方式、data: 向后台服务器传输数据,格式为&属性=值&属性=值或者{属性: 值,属性: 值} dataType: 指定客户端接收响应数据的格式,有xml/json/text/script/jsonp、html Success: 回调函数,指定响应成功后指定的回调函数; error: 指定服务器响应失败后指定的回调函数 54、$.ajax()如果实现发送同步请求? async: 属性这只为false 55、说一下等你对Hibernate的了解/理解? Hibernate是开源的持久层框架,也是ORM映射关系模型框架,通过对象操作表, 底层是封装了jdbc。 它使用了Session一级缓存和二级缓存SessionFactory来减轻对服务器压力,处理表关系时如果关系复杂,针对表关系负责的项目不考虑使用Hibernate,Hibernate有自带的HQL语句查询以及相关的QBE、QBC等查询方式,采用了预编译sql; 53、你说一下对Hibernate的缓存的理解? 一级缓存: session缓存,针对对象查询起作用,默认的不可被卸载, 查询时先访问session缓存,然后如果没有数据在访问数据库,然后获取数据,session缓存也更新,对数据库数据进行增删改时session缓存同时被更新; 二级缓存: sessionFactory需要配置,二级缓存中存放的是主键列,查询时如果配置二级缓存了,先访问二级缓存,如果有id,此时从一级缓存拿数据,如果没有,访问数据库,然后将id放入二级缓存,数据放入一级缓存,即缓存更新; 二级缓存被一级缓存共享,并且list查询针对query缓存(前提是配置二级缓存)起作用,iterate方法查询针对一级缓存起作用,前提是配置二级缓存才能开到效果,他发送n+1条sql; 54、Hibernate数据持久化时的有几种状态? 瞬时: 数据封装到对象中,在执行save或者delete或者update方法之前的状态; 持久化: 事务提交后,数据真正保存到数据库; 游离: 事务提交后,数据有session脱管; 55、Hibernate的表关系如何配置的? (自己看看关联关系配置: 一对多,多对一,多对多,)56、Hibernate中inverse和cascade区别? Inverse表示反转,配置双向关联关系时,某一方设置为true表示关联关系的控制由对方维护,自身放弃该权利,该权利被扭转了; Cascade表示何时建立这种关联关系,有很多值,常用的是all、saveoOrupdate等 57、Hibernate中openSession和getCurrentSession区别? openSession表示开启一个新的session,必须手动关闭 getCurrentSession方法获取session表示该session绑定当前线程,事务提交,session自动关闭; 58、Hibernate中load和get方法区别? Load方法支持懒加载(延迟加载),查询无数据时,报异常为ObjectNotFoundException,返回代理对象 Get方法查询不支持懒加载,查询数据时无数据的话返回null。 59、Hibernate和mybatis区别? Hibernate处理表关系时繁琐,数据量大时查询速度慢,他的缓存只是为了减少对服务器压力并非是为了查询速度;因此银行项目不会使用Hibernate,表关系复杂的项目不会使用Hibernate; 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1”)$(“