您的位置:首页 > 职场人生

java面试题总结(精华)

2010-10-11 11:42 344 查看
1,String 是最基本的数据类型吗?

      不是。

      Java中数据类型分为基本数据类型和引用数据类型。

     基本的数据类型有8种:boolean,byte,char,shot,int,float,long,double.

     引用数据类型分为3种:类,接口,数组。

      java.lang.string 类是final类型的,因此不能继承这个类,不能修饰这个类。

2, int和Integer有什么区别?

      int是基本数据类型,Integer是java为int提供的封装类。

      声明为int的变量不需要实例化,声明为Integer的变量需要实例化。

      Integer 是比int更高级的数据类型,具有不同的特性和用法,包括:大小、速度、数据存储结构、缺省值。

3,String和StringBuffer的区别?

      String a = "a";  //假设a指向地址0x0001

      a = "b";  //重新赋值后a指向新地址0x0002,但0x0001那块地址中保存的“a”任然存在。

      事实是String不能改变值,只能改变指向。

      StringBuffer直接改变指向的地址中保留的值。

      String类中重新定义了equals这个方法,比较的是值。StringBuffer没有重新定义equals这个方法,因此这个方法就来自object类,比较的是地址。

4,谈谈java中值传递和引用传递?

      引用数据类型:指向一片内存空间地址的变量类型。任何引用数据类型的初始化都需要先用new关键字来开辟一片内存空间,然后让引用数据类型指向这个空间的地址。

      引用传递:一般情况下,我们声明一个变量:

          Object o = new Object();

       实际上创建一个引用(Object o)和一个对象(new Object),java的内存模型中有堆和栈两个空间,将引用放入栈,将对象放入堆。“引用”的值是对象在堆中的地址,“对象”是值的真正数据。

      值传递:java中8种基本数据类型不是对象,为了节省空间,其值直接存在了栈里。

      把堆指向一个栈,这就完成了创建一个对象的实例过程。

5,Servlet 的生命周期?

       Servlet 是一种独立于平台和协议的服务器端的java应用程序。    

       第一次请求的时候被初始化,只一遍

       初始化后先调用Init方法,只一遍

       Servlet类加载--->servlet实例化--->调用init方法--->调用service()方法--->

       调用destory()方法。

        在servlet的生命周期中,仅执行一次init()方法。它是在服务器装入servlet时执行的。

        destory()方法仅执行一次,即在服务器停止且卸装servlet时执行。

6,Collection 和Collections的区别?

       collection是集合类的上级接口,继承于它的接口主要有set和list。

       collections是针对集合类的一个帮助类,它提供了一系列静态的方法实现了堆各种集合的排序、搜索和线程安全操作。

7,java集合概述

       java集合只能存放引用类型的数据,不能存放基本数据类型。

       java集合主要分为3种类型:

            set(集)、list(列表)、map(映射)

       set是最简单的一种集合,集合中对象不按特定的方式排序,并且没有重复对象。

             --HashSet:按照哈希算法来存取集合中的对象,存取速度比较快。

             --TreeSet:实现了Sortedset接口,能对集合中的元素排序。

       List的特性是其元素以线性方式存储,集合中可以存放重复对象。

            --ArrayList():长度可以改变的数组。

            --LinkList():采用链表的数据结构。访问速度快。

        

 

  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息