java高级工程师 面试题及答案

上传人:cn****1 文档编号:476466684 上传时间:2022-07-20 格式:DOCX 页数:9 大小:18.99KB
返回 下载 相关 举报
java高级工程师 面试题及答案_第1页
第1页 / 共9页
java高级工程师 面试题及答案_第2页
第2页 / 共9页
java高级工程师 面试题及答案_第3页
第3页 / 共9页
java高级工程师 面试题及答案_第4页
第4页 / 共9页
java高级工程师 面试题及答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《java高级工程师 面试题及答案》由会员分享,可在线阅读,更多相关《java高级工程师 面试题及答案(9页珍藏版)》请在金锄头文库上搜索。

1、一:选择题1.关于以下程序代码的说明正确的是( D )1. class HasStatic2.private static int x=100;3.public static void main(String args )4.HasStatic hs1=new HasStatic();5.hs1.x+;6.HasStatic hs2=new HasStatic();7.hs2.x+;8.hs1=new HasStatic();9.hs1.x+;10.HasStatic.x- -;11.(“x=” +x);12. 13. A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为x

2、是私有静态变量C、程序通过编译,输出结果为:x=103D、程序通过编译,输出结果为:x=1022. 下列关于for循环和while循环的说法中哪个是正确的?( B )A. while循环能实现的操作,for循环也都能实现B. while循环判断条件一般是程序结果,for循环判断条件一般是 非程序结果C. 两种循环任何时候都可替换D. 两种循环结构中都必须有循环体,循环体不能为空3. 以下选项中循环结构合法的是(C )A、while (int i7)i+;(“i is “+i);B、int j=3;while(j)(“ j is “+j);C、int j=0;for(int k=0; j + k

3、 !=10; j+,k+)(“ j is “+ j + “k is” + k);D、int j=0;do(“j is +j+);if (j = = 3) (continue loop;while (j10);4. 给出下面代码段,哪行将引起一个编译时错误?( D )1) public class Test (2) int n = 0;3) int m = 0;4) public Test(int a) ( m=a; 5) public static void main(String arg) (6) Test t1,t2;7) int j,k;8) j=3; k=5;9) t1=new Tes

4、t();10) t2=new Test(k);11) 12) A.行1B.行4C.行6D.行95. 下面的方法,当输入为2的时候返回值是多少(D )public int getValue(int i) (int result = 0;switch (i) (case 1:result = result + i;case 2:result = result + i * 2;case 3:result = result + i * 3;return result;A 0 B 2C 4D 10二:简述题1、描述一下JVM加载class文件的原理机制JVM中类的装载是由ClassLoader和它的子类

5、来实现的,JavaClassLoader 是- -个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。2、heap和stack有什么区别。java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程 序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于 存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法 的栈会释放,这个栈中的变量也将随之释放。堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些 数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法 的结束而消失。方法中的局部变量使用final修饰后,放在堆中,而 不是栈中。3、GC是什么

6、为什么要有GCGC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容 易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不 稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作 用域从而达到自动回收内存的目的,Java语言没有提供释放已分配 内存的显示操作方法。4、列举出一些常用的类,包,接口,请各举5个要让人家感觉你对java ee开发很熟,所以,不能仅仅只列core java 中的那些东西,要多列你在做ssh项目中涉及的那些东西。就写你 最近写的那些程序中涉及的那些类。常用的类:BufferedReader BufferedWriter File

7、ReaderFileWirterStringInteger java.util.Date,System,Class,List,HashMap常用的包:java.lang java.io java.utiljava.sql,javax.servlet,org.apache.strtuts.actio n,org.hibernate 常用的接 口: Remote List MapDocumentNodeList,Servlet,HttpServletRequest,HttpServletResponse,Transacti on(Hibernate)、Session(Hibernate),Http

8、Session5 java中有几种类型的流? JDK为每种类型的流提供了一些抽象类以供继承, 请说出他们分别是哪些类?字节流,字符流。字节流继承于InputStream OutputStream,字符流 继承于 InputStream ReaderOutputStreamWriter。在java.io包中还有许多其他的流,主要是为了 提高性能和使用方便。6、多线程有几种实现方法同步有几种实现方法多线程有两种实现方法,分别是继承Thread类与实现Runnable 接口同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持

9、有的对象的lock。 sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法, 调用此方法要捕捉InterruptedException(中 断异常)异常。notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候, 并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪 个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程, 注意并不是给所有唤醒线程一个对象的锁,而是 让它们竞争。7、说一说Servlet的生命周期答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处 理请求以及服务结束。这个生存期由javax.servle

10、t.Servlet接口的 init,service 和 destroy 方法表达。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其 service方法,service方法自动派遣运行与请求对应的doXXX方法 (doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy 方法。web容器加载servlet,生命周期开始。通过调用servlet的init()方法进 行servlet的初始化。通过调用service()方法实现,根据请求的不同 调用不同的do*()方法。结束服务,web容 器调用servlet的destroy() 方法。8、说出数据连接池

11、的工作机制是什么J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数 目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用 的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建 一定数量的连接,新建连接的数量有配置参数决定。当使用的池 连接 调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这 个连接。实现方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正关连接,而是把它代理的Connection对象还回到连接池中。9、这段代码有什么不足之处try (Connection conn=.; S

12、tatementstmt =.;ResultSet rs =stmt.executeQuery(select *from table1);while(rs.next()( catch(Exceptionex) (答:没有finally语句来关闭各个对象,另外,使用finally之后,要把变 量的定义放在try语句块的外面,以便在try语句块之外的finally块 中仍可以访问这些变量。10、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。select count(*) asnum,tb.id fromtb,(select role from tbwhereid=xxx) a

13、s t1 wheretb.role = t1.role and tb.idt1.idgroup bytb.id havingnum = select count(role)from tb where id=xxx;11、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每 年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决alter table drop column score;alter table add colunm score int;可能会很快,但是需要试验,试验不 能拿真实的环境来操刀,并且要注意,这样的操作时无法回滚的,在 我的印象中,只有inert up

14、date delete等DML语句才能回滚,对于 create table,drop table ,alter table 等DDL 语句是不能回滚。解决方案一,update user set score=0;解决方案二,假设上面的代码 要执行好长时间,超出我们的容忍范围,那我就alter table user drop columnscore;alter table user add column score into 下面代码实现每年的那个凌晨时刻进行清零。Runnable runnable =new Runnable()(publicvoidrun()(clearDb();schedul

15、e(this,newDate(new Date().getYear()+1,0,0);schedule(runnable,new Date(newDate().getYear()+1,0,1);12、你对Spring的理解,什么是spring的IOC AOP。1.Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工 厂模式)这个类名为BeanFactory(实际上是一个接口)在程序中通常 BeanFactory 的子类ApplicationContext。Spring 相当于一个大的工 厂类,在其配置文件中通过bean元素配置用于创建实例对象的类名 和实例对象的属性。2. Spring提供了对IOC良好支持,IOC是一种编程思想,是一种架构 艺术,利用这种思想可Depency Injection)什么叫依赖注以入呢?很如,Class Programmer好

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号