java电话面试.docx

上传人:b****2 文档编号:515744 上传时间:2023-04-29 格式:DOCX 页数:24 大小:34.14KB
下载 相关 举报
java电话面试.docx_第1页
第1页 / 共24页
java电话面试.docx_第2页
第2页 / 共24页
java电话面试.docx_第3页
第3页 / 共24页
java电话面试.docx_第4页
第4页 / 共24页
java电话面试.docx_第5页
第5页 / 共24页
java电话面试.docx_第6页
第6页 / 共24页
java电话面试.docx_第7页
第7页 / 共24页
java电话面试.docx_第8页
第8页 / 共24页
java电话面试.docx_第9页
第9页 / 共24页
java电话面试.docx_第10页
第10页 / 共24页
java电话面试.docx_第11页
第11页 / 共24页
java电话面试.docx_第12页
第12页 / 共24页
java电话面试.docx_第13页
第13页 / 共24页
java电话面试.docx_第14页
第14页 / 共24页
java电话面试.docx_第15页
第15页 / 共24页
java电话面试.docx_第16页
第16页 / 共24页
java电话面试.docx_第17页
第17页 / 共24页
java电话面试.docx_第18页
第18页 / 共24页
java电话面试.docx_第19页
第19页 / 共24页
java电话面试.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java电话面试.docx

《java电话面试.docx》由会员分享,可在线阅读,更多相关《java电话面试.docx(24页珍藏版)》请在冰点文库上搜索。

java电话面试.docx

java电话面试

1.Java的基础知识

String拼接的替代操作?

StringBuffer和StringBuilder(线程不安全,但速度比StringBuffer快)

stringbuffer可变

Java的多线程的两种实现方式

继承thread,实现runable接口

Java中key,value这样的数据结构有那些?

hashmap,hashtable

Set和List的区别?

set无序不重复

vector是啥?

线程安全的arraylist

这一部分主要是考察的基础知识,可惜我的基础还不够扎实,还得努力,要经常地翻翻api,要尝试寻找新的方法实现原来的固定做法。

2.JDBC

statement,prepareStatement的区别

1是简单的sql执行2有缓冲区,可带参数的sql执行

数据库事务隔离级别?

四种哦!

1、未提交读(ReadUncommitted)

直译就是"读未提交",意思就是即使一个更新语句没有提交,但是别

的事务可以读到这个改变.这是很不安全的。

允许任务读取数据库中未提交的数据更改,也称为脏读。

2、提交读(ReadCommitted)

直译就是"读提交",可防止脏读,意思就是语句提交以后即执行了COMMIT以后

别的事务就能读到这个改变.只能读取到已经提交的数据。

Oracle等多数数据库默认都是该级别

3、可重复读(RepeatableRead):

直译就是"可以重复读",这是说在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的.在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。

在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读

4、串行读(Serializable)

直译就是"序列化",意思是说这个事务执行的时候不允许别的事务并发执行.完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞

 

3.数据结构

数组,栈,堆,树,链表,队列,散列表。

4.开源的一些框架

主要是ssh

struts,struts2的主要区别?

(在说这个问题上,我好像没有说很多,我自己的毛病就在这,不是很主动)

actionstruts里面action是继承了一个抽象基类,单例的线程安全的。

2的action可以实现一个aciton接口,可以是简单的pojo对象,给每个请求都产生一个action实例。

servlet依赖,struts依赖于servletapi当action被调用时httpservletrequest,httpservletresponse被传递给execute方法,struts2不依赖容器,但是必要也可访问

struts1支持jstlel,2支持ognl一个强大的表达式语言

struts1使用actionform作为对象捕获输入,2使用action属性作为输入属性

谈谈你对spring的ioc看法!

5.设计模式

他只问了我一个单例模式

spring单例模式,工厂模式,代理模式。

6.linux系统的相关操作

linux下的常用操作,命令要熟记。

7.webservice

当前,WebService是一个热门话题。

但是,WebService究竟是什么?

什么情况下应该用WebService?

什么情况下不应该用WebService?

是需要我们正确认识的。

  WebService是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。

WebService可以执行从简单的请求到复杂商务处理的任何功能。

一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。

  实际上,WebService的主要目标是跨平台的可互操作性。

为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

由此可以看出,在以下三种情况下,使用WebService会带来极大的好处。

  长项一:

跨防火墙的通信

  如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。

因为客户端和服务器之间通常会有防火墙或者代理服务器。

在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。

传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。

这样做的结果是开发难度大,程序很难维护。

长项二:

应用程序集成

  企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。

应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。

即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。

通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。

  例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。

这两个程序来自不同软件厂商。

一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。

通过在订单执行程序上面增加一层WebService,订单执行程序可以把“AddOrder”函数“暴露”出来。

这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。

  长项三:

B2B的集成

  用WebService集成应用程序,可以使公司内部的商务处理更加自动化。

但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?

跨公司的商务交易集成通常叫做B2B集成。

  WebService是B2B集成成功的关键。

通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。

例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。

当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。

但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。

不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。

WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。

  用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。

只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。

这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。

 短处一:

单机应用程序

  目前,企业和个人还使用着很多桌面应用程序。

其中一些只需要与本机上的其它程序通信。

在这种情况下,最好就不要用WebService,只要用本地的API就可以了。

短处二:

局域网的同构应用程序

  在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。

例如,有两个服务器应用程序需要相互通信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。

在这些程序里,使用DCOM会比SOAP/HTTP有效得多。

    总之,只要从应用程序结构的角度看,有别的方法比WebService更有效、更可行,那就不要用WebService

我回答的不是很理想,我做过但是没完整的说出来。

8.谈谈你自己做过的一些项目。

在这里主要他想知道你有没有从事过分布式的项目,有没有接触过处理高并发的数据库的经验,可惜我么有!

1.Java当中所有的对象都是默认继承与Object类,请问该类中常用的方法有哪些?

java.lang.Object类Object是类层次结构的根类。

每个类都使用Object作为超类。

所有对象(包括数组)都实现这个类的方法。

publicnativeinthashCode();//返回该对象的哈希码值

publicStringtoString()//返回该对象的字符串表示。

{

returngetClass().getName()+”@”+Integer.toHexString(hashCode());

}

publicbooleanequals(Objectobj)//返回其他某个对象是否与此对象“相等”。

注意:

当此方法被重写时,通常有必要重写hashCode方法,以维护hashCode方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

 

String类重写了equals()和hashCode()方法,可以参考

protectedvoidfinalize()throwsThrowable{}

当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

子类重写finalize方法,以配置系统资源或执行其他清除。

protectednativeObjectclone()throwsCloneNotSupportedException;

创建并返回此对象的一个副本.所有要进行”克隆”的对象所属的类必须实现java.lang.Cloneable接口

2.Java中的反射机制实现原理、常用方法?

在Java运行环境中,对于任意的一个类,能否知道这个类有哪些属性和方法?

对于任意一个类,能否调用它的任意一个方法?

可以。

这种动态的获取类的基本信息以及动态的调用对象方法的功能来自于java语言的反射(Reflection)机制.

javareflection主要提供如下功能:

1.在运行时,判断任意一个对象所属的类.

2.在运行时,构造任意一个类的对象.

3.在运行时,判断任意一个类所具有的成员变量和方法.

4.在运行时,调用任意一个对象的方法.

在JDK中,由以下类来实现Reflection,这些类位于java.lang.reflect包中:

1.Class类:

代表一个类.

2.Filed类:

代表类的成员变量(成员变量也称为类的属性.)

3.Method类:

代表类的方法。

4.Constructor类:

代表了类的构造方法。

5.Array类:

提供了动态创建数组,以及访问数组元素的静态方法。

(ReflectionAPI的应用小例子,接下来会写.)

3.Struts1.2orStruts2的实现原理,简单陈述一个请求的处理流程?

Struts1.2实现原理如下:

1.web应用启动时加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中(Action的映射信息存放在ActionMapping对象中.)

2.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息.

3.如果ActionForm实例不存在,创建一个ActionForm对象,把客户提交的表单信息保存到ActionForm对象中.

4.根据配置信息决定是否需要表单验证,如果需要验证,就调用ActionForm的validate()方法.

5.如果ActionForm的validate()方法返回null或者一个不包含ActionMessage的ActionErrors对象,表示表单验证成功.

6.Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户端请求转发给ActionFoward对象指向的jsp组件.

7.ActionForward对象指向jsp组件生成动态页面,返回客户端浏览器.

4.Struts1.x和Struts2.x版本那一个是线程安全的?

线程安全的定义是?

Struts1.2版本是线程安全的.原因如下:

1.Struts1.2的Action类是单例模式,因为只有一个实例来控制所有的请求.Action资源必须是线程安全或者同步的.

2.Struts2.0的Action对象为每一次请求都生成新的对象,所以没有线程安全的问题.(据资料,Servlet容器产生对于每一个请求产生多个对象并不影响垃圾回收.)

Java线程安全(通俗描述):

在线程中使用[共享资源]时,能够保证[共享资源]在任何时候都是原子的、一致的,这样的线程就是安全线程;反之则为非安全线程.

5.如果你来设置Session(前端的回话Session而非Hibernate中的Session),你将如何实现它?

6.Hibernate的优点有哪些?

7.JavascriptDom结构,常见的使用方法举例?

暂时将问题列出来,晚上回家后,再一一解答.其实回顾一下这些问题,都是最基本且应该掌握的问题,可往往在项目当中为了实现而实现,而很少去考虑底层是如何实现,为什么要这么做?

不仅让我想起来前些日子在twitter上说的一句话:

”架构师的道路其实也是”what”,”how”,”why”的过程.”我还有很长的路要走.

 

刚才接了个电话,属于电话面试,挂了电话才知道自己是多么的无知。

下面把面试问题列举如下,答案等我有时间了再填写吧。

自我介绍是必须的,我介绍一分钟后下面开始:

1、数据库sql语言:

如何过滤人员表里面姓名相同的数据?

distinct

2、Hibernate的高级优化如何做?

3、Spring的AOP如何使用,annotation的使用?

注解声明,xml配置声明。

4、Springbean的作用域都有哪些?

request,session,globalsession

5、简单说说JDK1.5的新特性?

6、如何避免Struts2的表单重复提交?

token>标签action配置拦截器

7、说说你使用过的Sql优化?

大表在前,*避免用,in少用,索引,

8、java的设计模式请说出几个并说明原理?

单例模式工厂模式代理模式

9、如果一个树有父节点和子节点,你选用哪种设计模式?

10、简要谈谈你的优缺点,一分钟时间?

这些题目我觉得没有三年以上的项目工作经验是不好全部回答正确的。

我也是用了我最大的努力,仔细思考,才回答完毕。

回答的不是很好,最起码我是这么感觉的。

不知大家看到我认为比较经典的题目有何想法,欢迎解决问题。

1.熟悉的J2EE的内容有哪些。

JSP,SERVLET,EJB,JDBC,JNDI

2.解释一下Spring的核心内容,解释一下IOC,AOP,IOC的2个核心类,BeanFactory的生命周期,有没有使用过AOP,除了IOC,AOP,Spring还有哪些内容,用过哪些。

如果需要自己写的话,Spring的IOC应该如何实现?

IOC控制反转,AOP面向方面编程(权限,事务等),Bean的生命周期

实例化,依赖注入,初始化,销毁,释放内存

3.ORM框架除了Hibernate还用过什么?

Ibatis

4.说一下JavaCollectionFramework中的类分别是用什么数据结构实现的,我大概说了LinkedList,ArrayList,HashMap,TreeMap,LinkedHashMap,PriorityQueue等然后问自己动手实现过那种数据结构。

LInkedlist链表arraylistobject数组Stack堆栈

5.如果在多线程的情况下,应该如何使用CollectionFramework

合理使用锁

6.多线程用得怎么样?

解释一下Java中Lock的几种类型,(我回答说不清楚,我只清楚操作系统中学的排它锁和共享锁),然后问一个方法,是publicsynchronizedput(),这个方法用的属于什么锁?

同步锁,读写锁,互斥锁

7.说一下你相对于其他同学的优势,平时都是如何学习的,自己学习过哪些技术,遇到问题如何解决的,举个例子说明解决问题的能力。

8.简单的算法题,N个人围成一圈,从第a个人开始,每隔b个人报数,报数者出列,如何输出出列的顺序。

我当时不敢相信就是能用循环链表解决的问题,我说我的第一感觉是用循环链表,然后把思路讲了一下,面试官然后问用Java怎么实现循环链表。

9.如何限制团队成员在JSP中实现业务逻辑?

(我不会)在表现层,除了用过JSP还用过什么?

在多个人一起开发的时候,大家一起修改web.xml会引起很多冲突,如何解决这个冲突?

Servlet的生命周期。

1.规则,2ASP,PHP,HTML3,版本管理svncvs4servlet1.实例化2初始化3服务4摧毁5释放内存

然后问了他3个问题,1,阿里巴巴招聘时看重的素质或能力,答曰,潜力,综合能力,应届生的技术肯定达不到要求,但是如果有潜力阿里巴巴会继续培养,2.如果能进入阿里巴巴实习,有多少机会能留在阿里巴巴,答曰,阿里巴巴很希望实习生能留下,只要能通过考核就行。

3.实习有几轮,答曰,不清楚,公司分配下来的,具体后来HR会联系。

 

今年4月17日,阿里巴巴到深圳招聘,受君锐的推荐,我也报着尝试与有机会不放过的心理去参加了面试,毕竟长年这样没完没了的跑来跑去也不是个办法;面试地址是在上海宾馆,来的人挺多的,估计有好几百,因为来招聘的人就有十几个,并且是从上午一直到下午,简单的了解了一下,从销售到工程师,再到架构师都在招,看来是准备从深圳带走一批人才了。

面试总共分三关,一是技术面试,二是非技术高层领导面试,三是最后的人事面谈,我想应该是要通过了前一关才能够继续后面的吧。

技术面试

进入技术面试之前,先要做一套相应的试题,这里面涉及到几个平常不怎么注意的问题:

一个是没有定义访问范围的构造函数,就是前面未加public、protected或private限制等,这个我搞错了,忘了未定认就是protected,自己选择了会编译报错;

第二个是页面中定义两个同名的JS函数,调用会是什么结果,可以平时写程序都还小心,都没有碰以过,后面尝试了一下不报错,会调用第二个方法;

另外有个名词:

领域模型;

其它都比较常见了,如让画一个流程图、常用的模式(会问你常用什么模式,如我提到有单例模式,就让我现场写了一个单例模式的例子)、Servlet是否线程安全的、静态变量的赋值等,这些如果是基础扎实,都还算简单,没有必要做什么特别的面试前准备,就算准备了也不一定有什么效果,毕竟面试这个东西谁也说不清楚他要问一些什么。

技术高层面试

个人感觉比较有意思,也比较有难度,不过说难度也谈不上,主要是一些智力上的问题,以及言谈举止的观察;坐下去的时候,首先对方给了我一张名片,上面写的职位是资深总监,我首先入题,说“总监,这个也是我的奋斗目标......”,在这些问题上聊了一会儿后,大家打破了面试的尴尬,应该说我先入为主了吧,后面他问了我如下几个问题:

第一,请谈一下自己生活中记忆较深刻的事情,什么都可以,最后根据说的事情,让我做一个推广的总结;

第二,说澳大利亚的父母喜欢女孩,如果生出来的第一个女孩,就不再生了,如果是男孩就继续生,直到生到第一个女孩为止,问若干年后,男女的比例是多少;这个问题我以为是什么智力问题,因为也看过不少有些面试官问问题,不一定要得到你的标准答案或者说根本就没有答案,他们只是想看到你对问题的处理能力,我就往社会问题上答“如果社会不平衡......”,答了一会儿,他说不要将这个理解为社会问题,就是一个简单的数学计算题,呵,这可难为我了,最终没有答上来;

第三,3点15的时针和分针的夹角是多少度,这个简单,可是我回答了三次才答对,汗;

第四,有8瓶水,其中有一瓶有毒,最少尝试几次可以找出来,呵,这个我答了两次,最少需要三次,不错;

其中的面试的时候,不仅仅只有这些问题,还会问题了解阿里巴巴多少等等,这个就看个人的言谈能力了。

其间我变谈到我从事过英文口语教师,并且工作中从事过口语翻译,他就问我可否用英语聊聊,幸好我的口语不错,谈了大概有5分钟吧,问答都没有问题,我相信这个会为我的面试增加一些印象,因为我面试的工作就是阿里巴巴的国际B2B平台做开发,看为英文这次又帮了我的忙了。

人力资源的面试

这个个人感觉是最难的,为什么呢,因为明明彼此没有共同语言去还要找出共同语言来聊,并且他们很多都是心理专家,如果稍有不慎,被他们抓住某个问题,你就惨了,当然和人力资源的最终会引出一个话题,那就是薪资的问题,这个就看个人具体发挥了。

总结

我们是程序员,成天面对只有电脑,但是也别忘了提高自己的沟通与人际交往能力,平时工作的时候说话的时候较少,那就多看一些中国新闻,如什么地方拆迁呀、什么派出所睡觉死等等,用于增强自己心脏的活力以及思考能力,这样在应对面试官特别是挑剔的面试官的时候,才会有侃的资本。

 

1.5新功能

泛型

设定参数具体类型,编译时判定

自动装箱

包装类和基本类型自动转换

可变参数

不用重载了

for-each循环

简化循环写法

枚举类型

一种新的类型

静态导入

importstatic直接用

1.6新功能

一:

Desktop类和SystemTray类

  在JDK1.6中,AWT新增加了两个类:

Desktop和SystemTray。

  前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序。

 

  二:

使用JAXB2来实现对象与XML之间的映射

  JAXB是JavaArchitectureforXMLBinding的缩写,可以将一个Java对象转变成为XML格式,反之亦然。

  我们把对象与关系数据库之间的映射称为ORM,其实也可以把对象与XML之间的映射称为OXM(ObjectXMLMapping)。

原来JAXB是JavaEE的一部分,在JDK1.6中,SUN将其放到了JavaSE中,这也是SUN的一贯做法。

JDK1.6中自带的这个JAXB版本是2.0,比起1.0(JSR31)来,JAXB2(JSR222)用JDK5的新特性Annotation来标识要作绑定的类和属性等,这就极大简化了开发的工作量。

  实际上,在JavaEE5.0中,EJB和WebServices也通过Annotation来简化开发工作。

另外,JAXB2在底层是用StAX(JSR173)来处理XML文档。

除了JAXB之外,我们还可以通过XMLBeans和Castor等来实现同样的功能。

 

  三:

理解StAX

  StAX(JSR173)是JDK1.6.0中除了DOM和SAX之外的又一种处理XML文档的API。

  StAX的来历:

在JAXP1.3(JSR206)有两种处理XML文档的方法:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2