最新java面试题.doc
《最新java面试题.doc》由会员分享,可在线阅读,更多相关《最新java面试题.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datejava面试题1,public private protected的区别Core java1,public private protected的区别2,抽象类和接口的区别是什么(抽象类是为了统一子类的规范,将子类共有的方法抽象出来,如果只知道具体的行为而不知道具体的实现,只需在抽象类中声明,在具体的子类中进行实现,实现多态。抽象类中可以定义抽象方法和非抽象方法,而接口
2、中均是抽象方法,抽象类中可以对方法进行具体的实现,而接口只需声明不需要实现,抽象类只能被继承,接口只能被实现,而且接口中的所有声明的方法必须要实现。抽象类描述的是is-a的关系,接口描述的是like-a的关系。)1. abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定
3、义数据成员),所有的成员方法都是abstract的。3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是is-a关系,interface表示的是like-a关系。 4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。 7.接口中的方法默认都是 public,abstrac
4、t 类型的3,请用java代码实现单例模式1,饿汉式单例模式public class Singleton1 /私有的默认构造子 private Singleton1() /已经自行实例化 private static final Singleton1 single = new Singleton1(); /静态工厂方法 public static Singleton1 getInstance() return single; 2,懒汉式单例模式/懒汉式单例类.在第一次调用的时候实例化 public class Singleton2 /私有的默认构造子 private Singleton2()
5、/注意,这里没有final private static Singleton2 single=null; /静态工厂方法 public synchronized static Singleton2 getInstance() if (single = null) single = new Singleton2(); return single; 4,ArrayList和Vector的区别和HashMap和HashTable的区别一. 同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,
6、而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value5,GC是什么GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以
7、自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。javaEE1,Servlet是否是线程安全的?答:不安全,Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。Servlet容器会自动使用线程池等技术来支持系统的运行。解决Servlet的线程安全问题有以下三个方案:实现 Single
8、ThreadModel 接口Public class Concurrent Test extends HttpServlet implements SingleThreadModel :同步对共享数据的操作使用synchronized 关键字能保证一次只有一个线程可以访问被保护的区段,在本论文中的Servlet可以通过同步块操作来保证线程的安全。同步后的代码如下:Public class Concurrent Test extends HttpServlet Username = request.getParameter (username);Synchronized (this)Output
9、 = response.getWriter ();Try Thread. Sleep (5000); Catch (Interrupted Exception e)output.println(用户名:+Username+);:避免使用实例变量本实例中的线程安全问题是由实例变量造成的,只要在Servlet里面的任何方法里面都不使用实例变量,那么该Servlet就是线程安全的。修正上面的Servlet代码,将实例变量改为局部变量实现同样的功能,代码如下:Public class Concurrent Test extends HttpServlet public void service (Ht
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 java 试题
限制150内