学习啦>创业指南>职场>面试题>

详解华为java面试题

时间: 护托1061 分享

  根据Informa的咨询报告,华为在移动设备市场领域排名全球第三。下面就由学习啦小编为大家介绍一下华为java面试题的文章,欢迎阅读。

  详解华为java面试题篇1

  1 面向对象的特征有哪些方面

  1.抽象:

  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

  2.继承:

  继 承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继 承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增 加新的方法使之更适合特殊的需要。

  3.封装:

  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

  4. 多态性:

  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

  2 String是最基本的数据类型吗?

  不是,其是一个对象

  3 int 和 Integer 有什么区别

  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类

  4 String 和StringBuffer的区别

  STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法

  5 运行时异常与一般异常有何异同?

  异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

  详解华为java面试题篇2

  1 说出一些常用的类,包,接口,请各举5个

  常用的类:BufferedReader BufferedWriter FileReader FileWirter String Integer

  常用的包:java.lang java.awt java.io java.util java.sql

  常用的接口:Remote List Map Document NodeList

  2说出ArrayList,Vector, LinkedList的存储性能和特性

  ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

  8设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

  以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。

  public class ThreadTest1{

  private int j;

  public static void main(String args[]){

  ThreadTest1 tt=new ThreadTest1();

  Inc inc=tt.new Inc();

  Dec dec=tt.new Dec();

  for(int i=0;i<2;i++){

  Thread t=new Thread(inc);

  t.start();

  t=new Thread(dec);

  t.start();

  }

  }

  private synchronized void inc(){

  j++;

  System.out.println(Thread.currentThread().getName()+"-inc:"+j);

  }

  private synchronized void dec(){

  j--;

  System.out.println(Thread.currentThread().getName()+"-dec:"+j);

  }

  class Inc implements Runnable{

  public void run(){

  for(int i=0;i<100;i++){

  inc();

  }

  }

  }

  class Dec implements Runnable{

  public void run(){

  for(int i=0;i<100;i++){

  dec();

  }

  }

  }

  }

  详解华为java面试题篇3

  1.JSP的内置对象及方法。

  request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

  response response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

  out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

  pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

  session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

  application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

  config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

  page page表示从该页面产生的一个servlet实例

  2.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。

  参见课程中socket通讯例子。

  3说出Servlet的生命周期,并说出Servlet和CGI的区别。

  Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

  与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

  4.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。

  5.EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?

  SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。

  EntityBean:Entity Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。

  EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。

  6.说出数据连接池的工作机制是什么?

  J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

  7.同步和异步有和异同,在什么情况下分别使用他们?举例说明。

  如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

  当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

  8.应用服务器有那些?

  BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat

  9你所知道的集合类都有哪些?主要方法?

  最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。

  Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。

  18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T,请用JDBC检索出表T的所有数据。

  10.说出在JSP页面里是怎么分页的?

  页面需要保存以下参数:

  总行数:根据sql语句得到总行数

  每页显示行数:设定值

  当前页数:请求参数

  页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。

详解华为java面试题

根据Informa的咨询报告,华为在移动设备市场领域排名全球第三。下面就由学习啦小编为大家介绍一下华为java面试题的文章,欢迎阅读。 详解华为java面试题篇1 1 面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关
推荐度:
点击下载文档文档为doc格式
3120802