日期:2014-05-20  浏览次数:20726 次

java面试题、考试题、简单题

 

    1、String 和StringBuffer的区别

             String类提供了数值不可改变的字符串。

             StringBuffer类提供的字符串进行修改。

    2、启动一个线程是用run()还是start()?

             用start()

    3、final, finally的区别。

             Final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 

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

     4、List 和 Map 区别?

             list是对象集合,允许对象重复。

             map是键值对的集合,不允许key重复。

     5、JDBC中的PreparedStatement相比Statement的好处

             相对比较安全,可以防止sql注入;

             有预编译功能,相同操作批量数据效率较高

     6、你所知道的集合类都有哪些?主要方法?

             最常用的集合类:List和 Map.

             List的具体实现包括ArrayList和Vector,他们是可变大小的列表,比较适合构建,储存和操作任何

     7、abstract class和interface有什么区别? 

             接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

              另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

              还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

     8、作用域public,private,protected,以及不写时的区别?

              不写时默认为friendly

              public声明的变量及方法,表明在整个包内包外都可使用。

              private 声明的变量及方法,只在声明的类内可以使用。

              protected包外不可使用。包内可以使用。

     9、== 与 equals  的区别

              ==用来判断基本数据类型的值是否相等或判断对象的地址是否相等。equals()是Object类中的方法,通过覆盖该方法可以判断某两个对象是否相等。

     10、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?

              多种线程有两种实现方法:分别是继承Thread类与实现Runnable接口

      修饰同步方法:synchronized关键字 

     11、面向对象的特征有哪些方面

              抽象,继承,封装,多态性

     12、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

              不能,一个对象的一个synchronized方法只能由一个线程访问.

     13、事务的特性有哪些?

              原子性、一致性、隔离性和持续性

     14、得到Class的三个方法是什么?

              类名.class;

              实例.getclass;

              Class.forName(全类名);

     15、数组有没有length()这个方法? String有没有length()这个方法

              数组没有length()这个方法,有length的属性。 

            String有length()这个方法。

     16、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

              字节流,字符流.

          字节流继承于 InputStream OutputStream

          字符流继承于 InputStreamReader OutputStreamWriter.在java.io包    中还有许多其他的流,主要是为了提高性能和使用方便

     17、字节流与字符流的区别

              字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;               

              字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。

     18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 

              Overload(方法重载)是类中多态性的表现;Override(方法重写)是父类与子类之间多态性的表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

          Overloaded方法可以改变返回值的类型。

     19、Integer与int的区别

              Int是java的原始数据类型,Integer是java为int提供的封装类.


     20、JAVA的基本数据类型有哪些 ?String 是不是基本数据类型?

              byte,int,char,long,float,double,boolean,short;

              不是