码迷,mamicode.com
首页 > 编程语言 > 详细

每天5道面试题(六)java基础

时间:2015-08-29 09:47:11      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:面试题   java基础   

设计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();
        }
   }
 }
}

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

每天5道面试题(六)java基础

标签:面试题   java基础   

原文地址:http://blog.csdn.net/q5841818/article/details/48084789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!