网站地图
RSS订阅
收藏本站
您的位置:网站首页 > 面试技巧

Java面试常遇到的11个问题这些你都知道吗?

作者:habao 来源:未知 日期:2017-11-25 20:05:07 人气: 标签:java面试问题
导读:学Java想拿高薪,不但技术要学的好,还得过面试关,本文就为大家介绍Java面试时都会遇到的11个问题。final—修饰符(关键字)如果一个类被声明为final,意味着它…

  学Java想拿高薪,不但技术要学的好,还得过面试关,本文就为大家介绍Java面试时都会遇到的11个问题。

  final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声 明为final的。

  将变量或方法声明为final,可以它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改 被声明为final的方法也同样只能使用,不能被重写。

  finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常 ,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

  finalize—方法名。Java技术允许使用 finalize方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object类中定义的,因此所有的类都继承了它。子类覆盖 ;finalize方法以整理系统资源或者执行其他清理工作 finalize方法是在垃圾收集器删除对象之前对这个对象调用的。

  Spring AOP:代理机制 Spring提供的自动代理机制Spring的IoC来实组件之间的依赖关系注入, 使控制层与业务实现分离,即客户通过调用业务委托接口来调用具体的业务组件的实例,避免控制层与业务层的藕合带来的或升级困难。由Spring为DAO生成代理对象来为DAO添加事务服务,由IoC容器DAO的代理实例注入到业务组件中业务组件通过DAO的委托接口调用DAO对象,使得上层组件不直接依赖于DAO的实现类,使得持久层更换或修改不影响上层组件。

  问题四:数据库里面游标,索引是怎么用的?在oracle数据库中,用get和load方法这2个方法来查没有的数据那么分别会反馈什么样的结果?

  序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

  其中,init方法只在servlet第一次被请求加载的时候被调用一次,当有客户再请求servlet服务时,web服务器将启动一个新的线程,在该线程中,调用service方法响应客户的请求。

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

  适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。又称为转换器模式、变压器模式、包装模式(把已有的一些类包装起来,使之能有满足需要的接口)。

  适配器模式的用意是将接口不同而功能相同或者相近的两个接口加以转换,包括适配器角色补充一些源角色没有但目标接口需要的方法。就像生活中电器插头是三相的,而电源插座是两相的,这时需要一个三相变两相的转换器来满足。

  比如,在Java I/O库中使用了适配器模式,象FileInputStream是一个适配器类,其继承了InputStrem类型,同时持有一个对FileDior的引用。这是将一个FileDior对象适配成InputStrem类型的对象形式的适配器模式。StringReader是一个适配器类,其继承了Reader类型,持有一个对String对象的引用。它将String的接口适配成Reader类型的接口,等等。

  桥梁模式的用意是要把实现和它的接口分开,以便它们可以地变化。桥梁模式并不是用来把一个已有的对象接到不相匹配的接口上的。当一个客户端只知道一个特定的接口,但是又必须与具有不同接口的类打交道时,就应该使用桥梁模式。

  比如,JDBC驱动器就是一个桥梁模式的应用,使用驱动程序的应用系统就是抽象化角色,而驱动器本身扮演实现化角色。应用系统和JDBC驱动器是相对的。应用系统动态地选择一个合适的驱动器,然后通过驱动器向数据库引擎发出指令就可以访问数据库中的数据。

  工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。

  首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

  抽象类一般不能被实例化;抽象类通常不是由程序员定义的,而是由项目经理或模块设计人设计抽象类的原因通常是为了规范方法名抽象类必须要继承,不然没法用,作为模块设计者,可以把让底层程序员直接用得方法直接调用,而一些需要让程序员覆盖后自己做得方定义称抽象方法。

  抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。

  Ajax 基本上就是把 Java 技术和 对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 Java 代码而不是直接发送给服务器。相反,Java 代码捕获表单数据并向服务器发送请求。

  同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,Java 代码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说 Java 代码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用程序。

  然后,服务器将数据返回 Java 代码(仍然在 Web 表单中),后者决定如何处理这些数据。它可以迅速更新表单数据,让人感觉应用程序是立即完成的,表单没有提交或刷新而用户得到了新数据。Java 代码甚至可以对收到的数据执行某种计算,再发送另一个请求,完全不需要用户干预!

  这就是 的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后发生的一切。结果就是类似于桌面应用程序的动态、快速响应、高交互性的体验,但是背后又拥有互联网的全部强大力量。

  推荐:

  

本文网址:
下一篇:没有资料
共有:条评论信息评论信息
发表评论
姓 名:
验证码: