《2022年JAVA华为面试题目 .pdf》由会员分享,可在线阅读,更多相关《2022年JAVA华为面试题目 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,JAVA 方面1 面向对象的特征有哪些方面封装 继承多态2 String 是最基本的数据类型吗 ? 不是3 int 和 Integer 有什么区别int 是基本数据类型Integer 是 int 的包装类4 String 和 StringBuffer 的区别String 创建的对象的内容不能改变StringBuffer 创建的对象的内容可以改变,是在构造字符串中的一种过度形式,构件字符串各种数据类型的可扩充的缓冲区。5运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常, 是一种常见运行错误。 java 编译器要求方法必须声
2、明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。运行异常是指因设计或实现方式不当导致的问题。可以说是程序员原因导致的,本来可以避免发生的情况一般的异常是描述运行时遇到的困难,它通常是由环境而非程序员的原因引起的,可以进行处理。6 说出一些常用的类,包 ,接口,请各举 5 个类:Math String StringBuffer 包:java.lang java.uilt,java.io,java.awt 接口: collection ,set,list,map,runable 7 说出 ArrayList,Vector, LinkedList 的存储性能和特性Arra
3、yList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素, 它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作, 所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较 ArrayList 差,而 LinkedList 使用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 双向链表实现存储, 按序号索引数据需要进行
4、前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。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;i2;i+) Thread t=
5、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(
6、) for(int i=0;i100;i+) inc(); class Dec implements Runnable public void run() for(int i=0;i100;i+) dec(); 9JSP的内置对象及方法。request request 表示 HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 供了几个用于获取cookie,
7、 header , 和 session 数据的有用的方法。response response表示 HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies, 头信息等)out out 对象是 javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet 相关的对象的API,并且包装了通用的servlet 相关功能的方法。session sess
8、ion 表示一个请求的javax.servlet.http.HttpSession对象。 Session 可以存贮用户的状态信息application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet 引擎和 servlet 环境的信息config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet 实例的初始化参数。page page 表示从该页面产生的一个servlet 实例request: 客户端请求,包括GET/POST 请求传递过来的参数response:
9、 网页传回客户端的反应pagecontext: 管理网页属性session: 与请求相关的会话application: 脚本程序的运行环境out: 传送响应的输出流config: 脚本程序的配置对象exception :处理异常和错误page:JSP 网页本身10.用 socket 通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - TestServer.java
10、 import .*; import java.io.*; public class TestServer public static void main(String args) try ServerSocket s = new ServerSocket(8888); while (true) Socket s1 = s.accept(); InputStream is = s1.getInputStream(); DataInputStream dis = new DataInputStream(is); OutputStream os = s1.getOutputStream(); Da
11、taOutputStream dos = new DataOutputStream(os); dos.writeUTF(dis.readUTF(); dis.close(); dos.close(); s1.close(); catch (IOException e) System.out.println( 程序运行出错: + e); TestClient.java import .*; import java.io.*; public class TestClient public static void main(String args) try Socket s1 = new Socke
12、t(127.0.0.1, 8888); OutputStream os = s1.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF(i love you!); InputStream is = s1.getInputStream(); DataInputStream dis = new DataInputStream(is); System.out.println(dis.readUTF(); dos.close(); dis.close(); s1.close(); catch (
13、ConnectException connExc) System.err.println(服务器连接失败! ); catch (IOException e) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 11说出 Servlet的生命周期,并说出Servlet和 CGI 的区别。Servlet 被服务器实例化后,容器运行其init 方法,请求到达时运行其service 方法,service方法自动派遣运行与请求对应的doXXX
14、 方法( doGet,doPost )等,当服务器决定将实例销毁的时候调用其destroy方法。与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI 对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。12.EJB 是基于哪些技术实现的?并说出SessionBean 和 EntityBean 的区别,StatefulBean和 StatelessBean 的区别。EJB 是基于对象组件模型的,低层的事务服务用了API 技术会话 bean是一种作为单用户执行的对象实体
15、 bean是用来对包含在企业系统中的数据进行封装的EJB,是对数据库中的数据提供了一种对象的映射,它是用来代表底层的对象。实体 bean 会话 bean 持久对象,允许保存记录的信息不是持久的, 允许保存客户端的状态信息有一个主键,可以搜索到不可以被搜索可以被共享通常一个用户使用一个bean 必须被显示删除过一段非活动期后将被自动回收不受服务器宕机影响受服务器宕机影响删除意味着底层数据库记录被删除删除意味着从容器中删除,不能再使用,并且其状态信息也将丢失13EJB包括( SessionBean,EntityBean )说出他们的生命周期,及如何管理事务的?14说出数据连接池的工作机制是什么?
16、15 同步和异步有和异同,在什么情况下分别使用他们?举例说明。16 应用服务器有那些?17 你所知道的集合类都有哪些?主要方法?18 给你一个 :驱动程序 A,数据源名称为 B,用户名称为 C,密码为 D,数据库表为 T,请用 JDBC 检索出表 T 的所有数据。19说出在 JSP页面里是怎么分页的 ? 页面需要保存以下参数:总行数:根据 sql 语句得到总行数每页显示行数:设定值当前页数:请求参数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - -
17、 - - - - 页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行, 对结果集取出每页显示行数的行即可。数据库方面:1.存储过程和函数的区别存储过程是用户定义的一系列sql 语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。2.事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性事务在完成时,
18、 必须使所有的数据都保持一致状态。在相关数据库中, 所有规则都必须应用于事务的修改, 以保持所有数据的完整性。 事务结束时, 所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。隔离性由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态, 要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态, 事务不会查看中间状态的数据。这称为可串行性, 因为它能够重新装载起始数据, 并且重播一系列事务, 以使数据结束时的状态与原始事务执行的状态相同。持久性事务完成之后, 它对于系统的影响是永久性的。 该修改即使出现系统故障也将一直保持。3.游标的作用
19、?如何知道游标已经到了最后?游标用于定位结果集的行,通过判断全局变量FETCH_STATUS可以判断是否到了最后,通常此变量不等于0 表示出错或到了最后。4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -