华为JAVA面试题

所需积分/C币:20 2019-03-06 23:40:14 244KB PDF
2
收藏 收藏
举报

2018年华为深圳Java面试题答题模板,主要的答题规范和思路整理。
7、 JAVA SERVLET AP中 forward(与 redirect()的区别? 使用 forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变; 使用 redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址所以地址栏显示的是新的 URL。 forward,转发页面和转发到的页面可以共享 request里面的数据 redirect,不能共享数据 8、写出JSP的常用内置对象?以及每个内置对象的简单介绍? 1 request对象 客广端的请求信息被封装在reqμuest对象中,通过它才能了解到客户的需求,然后做出响应。它是 HttpservletrEquest类的实例。 responsc对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是 HttpservletrEsponse类 的实例。 3 session对象 session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个 WebApplication开始,直到客户 端与服务器断开连接为止。它是 Httpsession类的实例。 4.out对象 out对象是 Jsp writer类的实例,是向客户端输出内容常用的对象 page对象 page对象就是指向当前JsP页面木身,有点象类中的this指针,它是 java. lang. Object类的实例。 6 application对象 application对象实现」用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭, 在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属 性进行操作;在仁何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决 定了 application对象的生命。它是 Servletcontext类的实例。 7 exception对象 exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页 面要应用此对象,就必须把 is ErrorPage设为true,否则无法编译。他实际上是 java. lang. Throwable的对象。 8 pageContext对象 page Context对象提供了对JP贞面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的 SESSION,也可以取本页面所在的 application的某一属性值,他相当于页面屮所有功能的集大成者,它的 本类名也叫 page Context 9 config对象 config对象是在一个 Servlet初始化时,JSP引擎向它传递信息用的,此信息包括 Servlet初始化时所要用到 的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一 Servletcontext对象)。 9、JAVA解析XML有哪几种方法?并简述各自的优缺点 DOM. 是用与平台和语言无关的方式表示ⅩML文档的官方w3C标准,分析该结杓通常需要加载整个文档和构造 层次结构,然后才能做任何工作。是基于信息层次的 优点有:由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出史改。它还可以在 任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。 SAX 对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更 好。这些基于事件的模型,比如SAX。这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而 不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检査数据,因此不需要将数据存储在 内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个 条件得到满足时停止解析。一般来说,SAX还比它的替代者DoM快许多。 JDOM 日的是成为Java特定文档模型,它简化与XML的交互并且比使用DoM实现更快 DOM4J 它是JDoM的一种智能分文。它合并了许多超出基本ⅩML文档表小的功能,包括集成的 XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项, DOM4J是一个非常优秀的 Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它 也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在仗用DOM4J来读写XML,特别 值得一提的是连Sun的JAXM也在用DoM4J 9、概述MVC体系结构及优点 M:模型Mode),v:视图(view),C:控制 Controller) MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑。View层用于与用户的交互。 Controller层是 Model与iew之间沟通的 桥梁,亡可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射 为模型层可执行的操作。 概括一下吧,用户浏览,由URL路由解析地址,如何指定对应的控制器(C)去处理,结合业务逻辑层(M,处理数 据,比方说增删改查,完成之后,在调用指定的视图(V)把处理的结果回传给用户 意义就是:职能分工 10、介绍你所知道的2EE中常用的设计模式,并简单介绍工厂模式 Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式), Prototype(原始模型模式), Singleton(单例模式), Facade(门面模式), Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式), Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式) Command(命令模式), Interpreter(解释器模式),Ⅴ isitor(访问者模式), Iterator(达代子模式), Mediator(调停者模式), Memento(备忘录模式), Observer(观察者模式), State(状态模式), Strategy(策略模式) Template Method(模板方法模式),( hain Of Responsibleity(责仁链模式) 工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根摭提供的数据生成一组类 屮某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同 的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然 后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以 调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。 11.线程和进程的区别?实现多线程的方式有哪几种?如何实现多线程同步? 区别: 线程和进程是不同的,每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程间的变量不能共 享;而线程是运行在进程内部的,每个正在运行的进程至少有一个线程,而且不同的线程之间可以在进程 范围内共享数据。也就是说进程有白己独立的存储空间,而线程是和它所属的进程内的其他线程共享一个 存储空间。 实现多线程的方法: 1、继承 java. lang. Thread,并重写它的run(方法,将线程的执行主体放入其中。 2、实现 java. lang Runnable接口,实现它的nunO方法,并将线程的执行主体放入其中 如何实现线程同步: 给一个方法增加 synchronized修饰符之后就可以使它成为同步方法,这个方法可以是静态方法和非静态方 法,但是不能是抽象类的抽象方法,也不能是接口中的接口方法 12:中的异常处理机制的简单和应用。 当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常。违反语义规则 包括2种情况。一种是Java类库内置的语义。例如数组下标越界,会引发 Index OutOfBoundsExccption:访问 null的对象时会引发 NullPointer Exception。另一种情况就是Java允许程序员扩展这种语义检查,程序员可 以创建自己的异常,并自由选择在何时用 throw关键字引发异常。所有的异常都是 java. lang Towable的子 类 13:线程同步的方法(类里有哪些方法来支持线程同步)。 wai:使一个线程处于等待状态,并且释放所持有的对象的lock sleep:使一个正在运行的线程处丁睡眠状态,是静态方法,调用此方法要捕提 Interrupted Exception异常。 notify:唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切地唤醒某一个等待状态 的线程,而是由wM确定唤醒哪个线程,而且不是按优先缴。 Allnotity(:唤酲所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 14.Fror与 Exception有什么区别 Eror表示系统级的错误和程序不必处理的异常, Exception表示需要捕捉或者需要程序进行处理的异常。 15谈谈 final, finally, finalize的区别。 final修饰符(关键字)如果一个类被声明为fnal,意味着它不能再派生出新的子类,不能作为父类被继 承。因此一个类不能既被声明为 abstract的,又被声明为fna的。将变量或方法声明为 final,可以保证它 们在使用中不被改变。被声明为 final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修 改。被声明为fnal的方法也同样只能使用,不能重载。 inal!-异常处理时提供 finally块来执行仁何清除操作。如果抛出一个异常,那么相匹配的 catch子 句就会执行,然后控制就会进入 finally块(如果有的话) finalize-方法名。Java技术允许使用 finalize方法在垃圾收集器将对象从内存中清除出去之前做必 要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finaliκe方法以整理系统资源或者执行其他清理工作。 finalize(方法是在垃圾收集器删除对象之前对这个对象调用的 Javascript相关 1.如何弹出带确认取消按钮的提示框,如确定保存吗?”,以及如何实现带输入框的提示框? confirm(“确定保存吗?”) prompt(“输入意见”) javascript有哪些打开一个页面的方式? window.open(sURL[, aRguments[, fEatures新页面 window. showmodaldialog(sURL[ aRgument[ fEatures])模态对话框 window show Modeless dialog(sURL[ aRguments[, fEatures)非模态对话框 3.页面加载完后调用js方法如何实现? body标签加 onload事件,如< cbody onload="aler(); 4. Javascript如何做到在子页面中调用父页面的js函数或全局变量(如 testo函数,test变量)? window opener. tcst( Window. opener. test=“abe”; 5. Javascript中定时执行如何实现? set Timeout(O:定时执行,执行一次。 clearTimeout(定时器对象名)结束 setInterval;定时执行,一直执行。 clearInterval(定时器对象名)结束 两种区别: setTimeout:定时执行,执行一次。 cleartimeou(定时器对象名)结束; setInterval:定时执行,一直执行。 clearInterval(定时器对象名)结束 6. innerhTML和 outerHTML的区别是什么? innerhTML取页面元素标签内部的内容, outerHTML取包含元素标签的内容,如<a hrcf=” test. jsp”>test<a>, InnerHTML取到test, outcrHIMl取到< a hrcf' test ] sp”test</a 7. javascript如何做到页面局部刷新? 使用AJAX。原理:获取一个请求对象,向指定ur发送请求,当请求完成时(状态4),获取到请求返 回內容,并将内容填充到页面局。 有如下表格,如何通过这个按钮取到该格所在的表,以及如何取到该表格的第二行中的 hello值? <table> <td>&nbsp; /td td> Input type= button”vale=”cick” onclick=” test(this),>sd <td>hellos/td <td>&nbsp; < td> <tr> </table> 通过按钮取到表格: table- button. parent Element. parent Element. parentElemen:;(主要看是否掌握元素的 parentElement方法) 通过表格取到 hello值:str= table. childNodes[] childnodes[o] nnerHTML;(主要看是否掌握元素 的 childnodes方法) 数据库相关 1.存储过程和函数的区别? 存储过程是用户定义的一系列sq1语句的集合,涉及特定表或其它对象的任务,用户可以调 用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉 及特定用户衣 2. oracle中 truncate和 delete命令有何区别? delete将在回滚段中产生回滚信息, truncate不产生,因此无论表中的记录多少, truncate执 行都很快 truncate是DDL,执行隐含的 commit, truncate不能回滚 3 Oracle中char和 varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和 varchar2(10)类型的字段中,其存储长度及类型有何区别? A:char是定长字符类型, varchar2是变长字符类型。“test”在char(10)中被补齐空格,存储 长度是10字节,在 varchar2(10)中存储长度是4字节 4.假如系统中有如下四张表: 1)文档表(D0C):编号( docid)、名称( docname)、描述( docdesc); docid为主键, docname 有索引; )学生表(XS):学生代码(XSDM)、学生名称(XSMC) 3)学科表(XK):学科代码(XKDM、学科名称〔XKMC)、最高分数(ZGF); 4)成绩表(CJ):学生代码(XSDM)、学科代码(XKDM)、成绩(CJ)。 问题1写出您最常用SQL语句的关键字 问题2以下查询的处理速度(返回数据量相同)从高到低排列 A、 select* from doc where docname-’test B select k from doc where doc id=50 C、 select* from doc where docdesc=’test 问题3列出有不及格(<底于60分)的学牛姓名(SQL语句) 问题4统计每个学生的总分(SQL语句): 问题5列出没有不及格(>=60分)的学生姓名及平均分(SQL语句)

...展开详情
试读 7P 华为JAVA面试题
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • GitHub

    绑定GitHub第三方账户获取
关注 私信 TA的资源
上传资源赚积分or赚钱
    最新推荐
    华为JAVA面试题 20积分/C币 立即下载
    1/7
    华为JAVA面试题第1页
    华为JAVA面试题第2页

    试读结束, 可继续读1页

    20积分/C币 立即下载 >