java面试笔试题大汇总之基础篇二

<!----><!----> <!---->

* 21 Static Nested Class Inner Class 的不同。

    Static Nested Class 是被声明为静态( static )的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

22 JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?

动态 INCLUDE jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

静态 INCLUDE include 伪码实现 , 它不会检查所含文件的变化,适用于包含静态页面 <%@ include file="included.htm " %>

* 23 、什么时候用 assert

    assertion( 断言 ) 在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中, assertion 就是在程序中的一条语句,它对一个 boolean 表达式进行检查,一个正确程序必须保证这个 boolean 表达式的值为 true ;如果该值为 false ,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说, assertion 用于保证程序最基本、关键的正确性。 assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后, assertion 检查通常是关闭的。

24 GC 是什么 ? 为什么要有 GC?

   GC 是垃圾收集的意思( Gabage Collection , 内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃, Java 提供的 GC 功能 可以自动监测对象是否超过作用域从而达到自动回收内存的目的 Java 语言没有提供释放已分配内存的显示操作方法。

* 25 short s1 = 1; s1 = s1 + 1; 有什么错 ? short s1 = 1; s1 += 1; 有什么错 ?

    short s1 = 1; s1 = s1 + 1; s1+1 运算结果是 int 型,需要强制转换类型)

short s1 = 1; s1 += 1; (可以正确编译) --why A:+= 运算符无类型转换问题!

26 Math.round(11.5) 等於多少 ? Math.round(-11.5) 等於多少 ?

    Math.round(11.5)==12

Math.round(-11.5)==-11

round 方法返回与参数最接近的长整数 ,参数加 1/2 后求其 floor.

* 27 String s = new String("xyz"); 创建了几个 String Object?

    两个

28 、设计 4 个线程,其中两个线程每次对 j 增加 1 ,另外两个线程对 j 每次减少 1 。写出程序。

以下程序使用内部类实现线程,对 j 增减的时候没有考虑顺序问题。

public class ThreadTest1{

  private int j;

  public static void main(String args[]){

ThreadTest1 tt=new ThreadTest1();

Inc inc =tt.new Inc();

Dec dec =tt.new Dec();

for(int i=0;i<2;i++){

Thread t =new Thread(inc);

t.start();

t =new Thread(dec);

t.start();

}

}

  private synchronized void inc(){

j++;

System.out.println(Thread.currentThread().getName()+"-inc:"+j);

  }

  private synchronized void dec(){

j--;

System.out.println(Thread.currentThread().getName()+"-dec:"+j);

  }

  class Inc implements Runnable{

public void run(){

for(int i=0;i<100;i++){

inc();

}

}

  }

  class Dec implements Runnable{

public void run(){

for(int i=0;i<100;i++){

dec();

}

  }

  }

}

29 Java 有没有 goto?

java 中的保留字,现在没有在 java 中使用。

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

启动一个线程是调用 start() 方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由 JVM 调度并执行。这并不意味着线程就会立即运行。 run() 方法可以产生必须退出的标志来停止一个线程。

31 EJB 包括( SessionBean,EntityBean )说出他们的生命周期,及如何管理事务的?

SessionBean Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个 Bean 的实例时, EJB 容器不一定要创建一个新的 Bean 的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个 Stateful Session Bean 时,容器必须立即在服务器中创建一个新的 Bean 实例,并关联到客户机上,以后此客户机调用 Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的 Bean 实例。

EntityBean Entity Beans 能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在, Entity beans 就一直存活。而不是按照应用程序或者服务进程来说的。即使 EJB 容器崩溃了, Entity beans 也是存活的。 Entity Beans 生命周期能够被容器或者 Beans 自己管理。

EJB 通过以下技术管理实务:对象管理组织( OMG )的对象实务服务( OTS ), Sun Microsystems Transaction Service JTS )、 Java Transaction API JTA ),开发组( X/Open )的 XA 接口。

32 、应用服务器有那些?

BEA WebLogic Server IBM WebSphere Application Server Oracle9i Application Server jBoss Tomcat

33 、给我一个你最常见到的 runtime exception

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException , ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

34 、接口是否可继承接口 ? 抽象类是否可实现 (implements) 接口 ? 抽象类是否可继承实体类 (concrete class)?

接口可以继承接口。抽象类可以实现 (implements) 接口,抽象类可继承实体类

35 List, Set, Map 是否继承自 Collection 接口 ?

List Set 是, Map

* 36 、说出数据连接池的工作机制是什么 ?

J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其标记为“忙”。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量由配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为“空闲”,其他调用就可以使用这个连接。

* 37 abstract method 是否可同时是 static, 是否可同时是 native ,是否可同时是 synchronized?

    都不能

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

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

* 39 Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 == 还是 equals()? 它们有何区别 ?

Set 里的元素是不能重复的,即不能包含两个元素 e1 e2 e1.equals e2 ))。 那么用 iterator() 方法来区分重复与否。 equals() 是判读两个 Set 是否相等。

    equals() == 方法决定引用值是否指向同一对象 equals() 在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

40 、构造器 Constructor 是否可被 override?

构造器 Constructor 不能被继承,因此不能重写 Overriding ,但可以被重载 Overloading

 

你可能感兴趣的:(java,应用服务器,bean,面试,ejb)