这家公司貌似J2ME方面的公司!公司 
????

解决方案 »

  1.   

    1. 简单描述一下awt 与Swing区别      awt,Swing  是java的图形编程工具,
        awt与OS的有关(Font ,Color),
        Swing 是纯java的,与OS没有关
      2. 简述Java编程的事件处理模式。 
          事件:
              比如说,在Swing中单击一个Button,产生一个onClick事,
              事件中最主要的就是,事件源,通过事件源来进行处理  5. Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 
    二种方法:
        1.extends Thread 重写run()方法
         2.implements Runnable 接口重写run()方法   synchronized 修饰同步
       stop是停止当前thread
       suspend 是将当前thread挂起
      

  2.   

    stop()和suspend()方法为何不推荐使用?
    因为这两个方法极易引起死锁问题
      

  3.   

    基于以前的文章,本文Swing和SWT的方方面面做一个简短的比较。它们的优劣点在前面的文章中都曾详细讲述过,这儿只是简单罗列出来,不再做详细论证。你可以参看前面的文章,对照这些比较。对于一些观点性的比较,比如后面的体验和感受则纯粹是我个人的想法。     简短的说Swing相对于SWT的优势有:速度快、有皮肤机制支持、优秀的框架、灵活可扩展、官方标准、47%的市场占有率、丰富的第三方类库、不计其数的学习材料、强大免费的图形界面设计工具(NetBeans Matisse)。相对于SWT的缺点有:多耗10M左右内存、启动速度稍慢、桌面集成相对弱。两者都有着漂亮的本地化外观。这些内容我们在前面的文章中都连篇累牍的介绍过。     从两者当初设计的目标来看,SWT是治标,目的是为了提高速度、改善外观;Swing是治本,它从框架、结构着手。Swing因此有着比SWT更广阔的发展空间。由于有着优秀的架构,而且Java完全控制着实现权,所以Swing总是可以不断被改进的。当Swing成熟了而弥补了速度和外观后,Swing的发展就因其良好的架构,就因为代码控制权等因素,而呈现出一片广阔的天空。而SWT从一诞生起,其先天性架构和实现缺陷就已经决定它很难前进。由于依赖本地操作系统,SWT可以发展的空间很小。开始也许可以借助操作系统的本地实现来快速达到很好的效果,但到此就结束了,自己再优化反展的空间就很小了。它将的实现大部分都交给了异质的系统,它无法控制的系统,却需要花费相当代价进行交互的系统。     SWT上手速度要快一些。因为SWT的API类似于传统的GUI工具,这使得许多从传统GUI工具中转过来的程序员很容易上手。传统GUI工具系统尤其是Windows平台的,是基于消息映射机制的,其基本模型是面向过程和面向消息的。Swing的设计思想是基于面向对象的典范,其MVC模式是程序设计模式的经典。总的来说,Swing之于SWT就像面向对象语言之于面向过程语言。但就学习曲线来说,Swing并不比SWT陡峭。Swing本身已经非常成熟,官方提供的文档,各种网上资料、书籍、讨论区浩如烟海,其实学习曲线也未必比SWT陡峭。     就Swing与SWT的开发体验来说,SWT给开发者的体验往往是对于SWT的满意程度同使用SWT的时间成反比,同对SWT和Swing的了解程度成反比。刚开始往往是非常满意,甚至有惊艳的感觉。但随着使用时间的增长,随着对于SWT了解的深入,这种满意度就会越来越下降。总之喜爱程度和了解程度成反比。Swing给开发者的体验是。开始也许你要经常发牢骚,这些牢骚就像在抱怨一个饱经风霜、看似相貌平平、但实际却非常有内涵的人一样。随着你对它的了解的加深,你就会越来越被它吸引,最终你会惊叹于它的博大精深。你会发现你越学懂得越少,而你的知识和能力却像内力一样越来越深厚。总之喜爱程度和了解程度成正比。     对我来说,Swing和SWT之间的故事就像是火车与马车之间的故事:火车刚发明的时候,许多人嘲笑火车的速度太慢、太丑陋。火车在第一次试跑的时候,人们坐着华丽的马车和火车比赛,结果很容易就超过了火车。于是人们都在嘲笑这个丑陋、笨重而缓慢的家伙,却看不到火车的本质和潜力。几百年后,火车的速度已经超过一百多公里,运输力已经达到成千上万吨,火车已经成为现在交通的主干力量,而马车仍然在徘徊在当初。为什么呢?就因为火车的本质架构是好的;就因为火车有着很大改进空间;就因为火车设计之初的目标是远大的,不是运几百斤东西就满足了的,而是为更高速度、更大运力铺好了基础架构。 
      

  4.   

    4. 请说出你所知道的线程同步的方式。 
    从jdk5.0开始,有两种机制来保护代码快步受并行访问的干扰。旧版本的java使用synchronized关键字来达到这个目的,而jdk5.0引进了ReentrantLock类。synchronized关键字自动提供一个锁和相关联的“条件”。
    用ReentrantLock保护代码块的基本结构如下:
    myLock.lock();//a ReentratLock object
    try{
       critical section
    }finally{
       myLock.unlock();//make sure the lock is unlocked even if an exception is thrown
    }
    这种结构保证在任何时刻只有一个线程能够进入临界区。一旦一个线程锁住了对象,其他任何线程都无法通过lock语句。
    当其他线程调用lock时,他们都被阻塞,直到第一个线程释放锁对象。另外 ReentratLock 对象可以附加一个或多个Condition 对象 
      

  5.   

    1. 简单描述一下awt 与Swing区别 
    awt依赖于平台,比如一个按钮在WINDOWS、LINUX下的外观与感觉是不同的。
    swing是平台无关的。
    swing的布局管理器和事件模型都是沿用awt的。  2. 简述Java编程的事件处理模式。 
    事件注册:对事件感兴趣的对象(事件监听者)注册到事件源对象,当事件发生时,事件源调用事件监听者的方法进行处理。  3. 什么是匿名类不类,特点是什么? 
    匿名内部类,首先是个内部类,然后没有名字。
    它的优点可以减少代码,而且匿名内部类可以访问到外部类的私有方法,用起来比较方便。  4. 请说出你所知道的线程同步的方式。 
    synchronized 或者 wait、notify、notifyAll。  5. Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 
    继承Thread,或实现Runnable接口。
    同步方法用synchronized修饰,需要的锁就是当前对象。以下是拷贝来的:
    因为它本质上就是不安全的。停止线程会导致解锁它已锁定的所有监视程序(ThreadDeath 异常传播到栈上后即解锁监视程序)。如果这些监视程序前面保护的任何对象处于不一致状态,则其它线程即可能将这些对象视为处于不一致状态。我们将这种对象称为损坏的对象。当线程操作损坏的对象时,可能会产生任何意外的行为。这种行为可能很难觉察,也可能非常明显。与其它未检查的异常不同,ThreadDeath 将悄悄杀掉线程;这样,用户就不会得到其程序已被破坏的警告。这种破坏可能会在实际损坏发生之后的任何时间显示出来,甚至可能会在数小时或数天之后。
      

  6.   

    stop()和suspend()方法为何不推荐使用? 
    因为这两个方法极易引起死锁问题
      

  7.   

    请楼主在google上搜索java一百道面试题,里面有把常用的java面试题 ,你的这些题目也包含在里面