JAVA面试题.doc

上传人:laozhun 文档编号:2387089 上传时间:2023-02-17 格式:DOC 页数:8 大小:43KB
返回 下载 相关 举报
JAVA面试题.doc_第1页
第1页 / 共8页
JAVA面试题.doc_第2页
第2页 / 共8页
JAVA面试题.doc_第3页
第3页 / 共8页
JAVA面试题.doc_第4页
第4页 / 共8页
JAVA面试题.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《JAVA面试题.doc》由会员分享,可在线阅读,更多相关《JAVA面试题.doc(8页珍藏版)》请在三一办公上搜索。

1、软件开发工程师岗位(JAVA)初级面试题1. 面向对象的特征有哪些方面?一 封装性二 多态性三 继承性四 抽象性2. 基本数据类型包括哪些?boolean,char,byte,short,int,long,float,double3. Map,Set,List,三者的优点以及适当场景?4. final, finally, finalize的区别?final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法

2、,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用5. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?Overload是方法的重载,Overrided是方法的重写。他都java多态性的不同表现。如果在子类中定义某个方法与父类有相同的名称和参数,我们说该方法被重写了。子类的对象使用这个方法时,将调用子类中的定义,父类中的定义如同被“屏蔽”了。如果在一个类中定义多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载。方法的重载可以改变返回值类型6

3、. abstract class和interface有什么区别?interface是否可继承interface? abstract class是否可实现(implements) interface? abstract class是否可继承实体类(concrete class)?声明方法的存在而不去实现它的类叫做抽象类。抽象类可以实现接口,抽象类是否可以继承实体类,要看实体类是否有明确的构造函数。1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。4.

4、抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。5. 抽象类中可以包含静态方法,接口中不能包含静态方法6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。7. 一个类可以实现多个接口,但只能继承一个抽象类。8.接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通

5、信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用7. GC是什么?为什么要有GC?GC 是垃圾处理的意思,内存处理是编程人员容易出错的地方,忘记或者是错误的内存回收会导致程序和系统的不稳定甚至是崩溃,java的GC可以自动监测对象是否超过作用域从而达到自动回收内存的目的,java中没有提供释放已分配内存的显示操作的方法。8. Java中的异常处理机制的简单原理和应用?当JAVA 程序违反了JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2 种情况。一种是JAVA 类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsExc

6、eption;访问null 的对象时会引发NullPointerException。另一种情况就是JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw 关键字引发异常。所有的异常都是java.lang.Thowable 的子类。9. 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 有两种实现方法,分别是继承Thread 类与实现Runnable 接口;用synchronized 关键字修饰同步方法10. 线程的基本概念、线程的基本状态以及状态之间的关系?线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就

7、是程序本身;Java 中的线程有四种状态分别是:运行、就绪、挂起、结束。11. 如下代码 public class Test public int aMethod() static int i = 0; i+; return i; public static void main (String args) Test test = new Test(); test.aMethod(); int j = test.aMethod(); System.out.println(j); 输出结果是什么? DA. 0 B. 1C. 2D. 编译失败 12. 如下代码 Dint i =1,j =10; do

8、 if(i+ -j) continue; while (i 5); System.out.println(i = +i+ and j = +j); 输出结果是什么? A. i = 6 and j = 5 B. i = 5 and j = 5 C. i = 6 and j = 5 D. i = 5 and j = 6 E. i = 6 and j = 6 在接口中以下哪条定义是正确的? (两个答案) A,B A. void methoda(); B. public double methoda(); C. public final double methoda(); D. static void

9、 methoda(double d1); E. protected void methoda(double d1); 13. 如下代码: C,Epublic class X public X aMethod() return this; public class Y extends X 哪些方法能加到Y类的定义中? A. public void aMethod() B. private void aMethod() C. public void aMethod(String s) D. private Y aMethod() return null; E. public X aMethod()

10、 return new Y(); 如下代码: public class X public static void main(String args) try badMethod(); System.out.print(A); catch (Exception ex) System.out.print(C); finally System.out.print(B); System.out.print(D); public static void badMethod() throw new Error(); 结果是什么? DA. ABCD B. 编译失败. C. 显示C,退出程序. D. 显示B,

11、退出程序. E. 显示BCD,退出程序. 14. 简述synchronized和java.util.concurrent.locks.Lock的异同 主要相同点:Lock 能完成synchronized 所实现的所有功能;主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能。synchronized 会自动释放锁,而Lock 一定要求程序员手工释放,并且必须在finally 从句中释放。15. MVC的各个部分都有那些技术来实现?如何实现?Model:JavaBean 业务处理,数据处理View:显示的jspController:控制,接受view传递的内容和调用j

12、avaBean,并根据javaBean的处理结果进行跳转实现原理:所有的jsp将内容提交给servlet,servlet接受这些内容并调用相应的javaBean进行业和数据的处理,一般javaBean有专业人员进行开发,完成业务的操作流程,而servlet调用的只是接 口,并根据这些接口的操作结果将内容提交给jsp进行显示16. 说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法设计模式:模式是一种问题的解决思路,它已经适用于一个实践环境。并且可以适用于其他环境。 设计模式的分类:分布式编程模式,用户界面模式,数据模型模式三大类。 设计模式的作用:设计的重用; 为设计提供共

13、同的词汇,每个模式名就是一个设计词汇,其概念使得程序员的交流变得方便; 在开发文档中采用模式词汇可以让其他人更容易理解你的想法。 GoF设计模式的分类: 根据目的准则分类: 创建型:creational 与对象的创建有关。 结构型:Structural 处理类或对象之间的组合。 行为型:behavioral 描述类或对象如何交互及如何分配职责。创建型模式1.抽象工厂模式 AbstractFactory 2.建造者模式 Builder 3.工厂方法模式 Factory Method 4.原型模式 Prototype 5.单例模式 Singleton 结构型模式 1.适配器模式 Adapter 2

14、.桥接模式 Bridge 3.组合模式 Composite 4.装饰模式 Decorator 5.外观模式 Facade 6.享元模式 Flyweight 7.代理模式 Proxy 行为模式 1.职责链模式 Chain of Responsibility 2.命令模式 Command 3.解释器模式 Interpreter 4.迭代器模式 Iterator 5.中介者模式 Mediator 6.备忘录模式 Memento 7.观察者模式 Observer 8.状态模式 State 9.策略模式 Strategy 10.模板方法模式 Template Method 11.访问者模式 Visito

15、r Sql 有三个表,项目表、合同表、付款表下面是建立表的语句项目表(项目编号 int,项目名称 varchar(50))项目编号,项目名称1项目12项目23项目3合同表(合同编号 int,项目编号 int,合同金额 number(7,3))合同编号项目编号合同金额111000211500322000付款表(付款编号 int,合同编号 int,付款金额 number(7,3))付款编号合同编号付款金额11100022200032800一个项目可能会有签署多个合同,每个合同会分几次付款设计一个查询,要求返回结果如下项目编号 项目名称 项目所有合同已付款金额- -1 项目111002 项目2NUL

16、L-解答:select x.xuid,x.xuname ,sum(q.qian) from xm x left join (select xuid, hid, sum(fq)as qian from (select ht.hid, ht.xuid,fk.fq from htong ht left join fuk fk on ht.hid=fk.hid) group by hid,xuid) q on x.xuid=q.xuidgroup by x.xuid,x.xuname;请您设计一个查询语句,检索的格式如下-项目编号 项目名称 项目所有合同的金额 项目所有合同已付款金额1 项目1 250

17、0.000 1100.0002 项目2 2000.000 NULL-解答: select x.xuid,x.xuname ,sum(q.qian),sum(q.t) from xm x left join(select xuid, hid, sum(fq)as qian,sum(htq) as t from (select ht.hid, ht.xuid,ht.htq,fk.fq from htong ht left join fuk fk on ht.hid=fk.hid) group by hid,xuid,htq) q on x.xuid=q.xuidgroup by x.xuid,x.

18、xuname;Javascript以下哪条语句会产生运行错误:AA.var obj = ( );B.var obj = ;C.var obj = ;D.var obj = / /; 请选择结果为真的表达式: c A. null instanceof ObjectB. null = undefinedC. null = undefinedD. NaN = NaN简述DIV元素和SPAN元素的区别。DIV是块元素,SPAN是内嵌元素。块元素相当于内嵌元素在前后各加一个换行。其实,块元素和行内元素也不是一成不变的,只要给块元素定义display:inline,块元素就成了内嵌元素,同样地,给内嵌元素

19、定义了display:block就成了块元素了。取出12中1和2的值var val_span=new Array();$(#div1 span).each(function()val_spanval_span.length=$(this).text(););编写一个方法 去掉一个数组的重复元素Array.prototype.strip=function() if(this.length2) return this0|; var arr=; for(var i=0;ithis.length;i+) arr.push(this.splice(i-,1); for(var j=0;jthis.len

20、gth;j+) if(thisj=arrarr.length-1) this.splice(j-,1); return arr; 说出3条以上ff和ie的脚本兼容问题2, 下标运算IE中 document.forms(”formName”)FF中 document.formsformName4,event.x 与 event.y 问题IE中,event 对象有 x, y 属性FF中,可用event.clientX ,event.clientY替代(IE也有该属性)也可用:mX = event.x ? event.x : event.pageX;5,操作frameIE中 可以用window.Fr

21、ameName取得该frame,FF中不行FF中 可以用window.top.document.getElementById(”frameId”)来访问frame按要求写一个简单的ajax示例(可以使用框架)检测输入的商品名称是否存在,若不存在则新增商品,若存在alert出同名商品的ID属性商品名称输入框待添加的隐藏文字内容2Url:product_nameExits检测商品名称是否存在输入参数 product.name商品名称输出参数 0:不存在 name:商品名称 , id:商品ID:返回该Json则商品存在Url: product_newProduct新增商品输入参数product.name商品名称输出参数0:失败1:成功

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号