老大这么初级的问题,是一个星级用户该问的么?
你杂弄到的星啊通常做企业应用,现成用的不是很多
但集合是非常常用的,也是JAVA开发必备的基础

解决方案 »

  1.   

    在目前我所做的一些应用中,没有用到多线程方面的技术,但是Java里面的线程应当是Java的精华啊,不掌握怎么能行啊,线程我现在还没有弄明白呢,所以想看看大伙在应用开发如何来运用这些技术啊
    :(((
      

  2.   

    我做企业应用方面的,线程和集合都用了不少,线程主要用于一些服务,比如定时提醒,包括发送Email、短信等,其它地方倒是用得比较少;而集合用得更多,数据处理方面几乎都能看到它。
    不过这两种都是比较耗资源的,尤其是内存方面,所以个人感觉能简单实现的,还是少用的好。
      

  3.   

    To:Acylas(Acylas)那你是关注性能比较多了吧?还是其它原因?
      

  4.   

    多线程一般用于企业级的应用,桌面应用很少,如果强调这个系统的多任务性,那么就应该用到多线程了。比如:你要实现一个聊天室系统或是实现一个C\S架构这样的系统,你就应该考虑用多线程了,你可以为每一个请求服务的客户端创建一个线程,这样就能够大大的提高服务器端的执行效率,因为线程间的切换总是要比进程间的切换花费更少的资源。
    集合,其实就是Java实现的数据结构,当然是有用了,平时在用到数据结构的时候,就可以用到集合。
      

  5.   

    线程没用过,集合倒是大量使用,但也就用了常用的那么几个:Vector,Enumeration,Iterator,Hashtabe,HashMap,ArrayList等,好像没用过Set及其相关的。不知Set主要在何时使用?
      

  6.   

    当你编写第一个java程序-helloworld时,实际上已经是多线程的了,它的优先级别是normal,同时JVM会启动6个系统线程来支持程序运行,比较熟悉的是垃圾收集线程,代码加载和检测线程。
    如果你想再制造第8个甚至更多线程的时候,无非是要基于下面两个方面考虑。
    一是功能需要。有些功能迫使你不得不用线程来考虑,也就是要用到线程的本质,进程内的时间片运行,例如动画,声音,定时调度,session等。
    二是性能需要。太耗时的程序要用到线程,例如要执行一个算法计算出一个结果,通过网络获取一个大的返回值,加载一个大容量的对象,在短时间内执行多个操作,每个操作从开始到结束都很耗时,典型的例如发送垃圾邮件;太不耗时的程序也会用到线程,比如日志输出,没必要跟主程序争抢CPU,再就是播放个背景音乐,总而言之一切需要在主程序背后默默无闻的进行整理工作的程序,都可能用到线程。
    java中很多技术都用到线程的,比如RMI,JMS,EJB,它们都是自己内部进行线程管理的,还有Timer类。虽然线程应用很广,但据很多专家云,目前java中的线程还不是很完美,跟C++比起来性能要差些,因为java中的线程是在java语言中实现的,jdk1.5是全面提升java性能的一个版本,其中线程要革新换代。
      

  7.   

    前几天看到一篇面向对象的法则的文章,其中第一个法则就是优先使用(对象)组合,而非(类)继承,可见集合在面向对象程序语言的重要性,下面摘抄一段关税:
    组合
     (对象)组合是一种通过创建一个组合了其它对象的对象,从而获得新功能的复用方法。
     将功能委托给所组合的一个对象,从而获得新功能。
     有些时候也称之为“聚合”(aggregation)或“包容”(containment),尽管有些作者对这些术语赋予了专门的含义
     例如:
     聚合:一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分),并且聚合对象和其所有者具有相同的生命周期。(译者注:即所谓的“同生共死”关系,可参见GOF的Design Patterns: Elements of Reusable Object-Oriented Software的引言部分。)
     包容:一种特殊类型的组合,对于其它对象而言,容器中的被包含对象是不可见的,其它对象仅能通过容器对象来访问被包含对象。(Coad) 包含可以通过以下两种方式实现:
     根据引用(By reference)
     根据值(By value)
     C++允许根据值或引用来实现包含。
     但是在Java中,一切皆为对象的引用!
    组合的优点和缺点
     优点:
     容器类仅能通过被包含对象的接口来对其进行访问。
     “黑盒”复用,因为被包含对象的内部细节对外是不可见。
     对装性好。
     实现上的相互依赖性比较小。(译者注:被包含对象与容器对象之间的依赖关系比较少)
     每一个类只专注于一项任务。
     通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合。 缺点:
     从而导致系统中的对象过多。
     为了能将多个不同的对象作为组合块(composition block)来使用,必须仔细地对接口进行定义。
    继承
     (类)继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
     泛化类(超类)可以显式地捕获那些公共的属性和方法。
     特殊类(子类)则通过附加属性和方法来进行实现的扩展。
    继承的优点和缺点
     优点:
     容易进行新的实现,因为其大多数可继承而来。
     易于修改或扩展那些被复用的实现。
     缺点:
     破坏了封装性,因为这会将父类的实现细节暴露给子类。
     “白盒”复用,因为父类的内部细节对于子类而言通常是可见的。
     当父类的实现更改时,子类也不得不会随之更改。
     从父类继承来的实现将不能在运行期间进行改变。
      

  8.   

    楼上的  songbo_pp(皮皮)  理解错了前几天看到一篇面向对象的法则的文章,其中第一个法则就是优先使用(对象)组合,而非(类)继承,可见集合在面向对象程序语言的重要性,下面摘抄一段关税:这里面说的组合不是集合。
      

  9.   

    一般多用户操作时,可能较多用到多线程,在作压力测试时也需要用到多线程至于集合太多了,Vector,Hashtable,ArrayList,都是常常用到的
      

  10.   

    顶!!1—————————————————————————————————
    ┏━★━━◆━━★━┓ 
    ♂欢|◢CSDN◣|使♂        ▲自由保存帖子,浏览,关注检测
    ┃迎|◥论坛助手◤|用┃        ▲完善的CSDN客户端工具
    ┗━☆━━◇━━━☆┛       ▲自动添加签名......让你更快,更爽,更方便地上CSDN...
    http://www.csdn.net/expert/topic/573/573604.xml
    http://www.chinaok.net/csdn/csdn.zip
      

  11.   

    servlet container用到多线程.
    中间件的开发一般都会用到多线程。
    我开发过一个负载均衡器.用到多线程。
    主要是为了增加负载的。
      

  12.   

    Java本身的多线程不用提了,主要是在系统开发的过程中如何恰到好处地去应当这些Java的核心技术以提高系统的性能呢?
      

  13.   

    楼主,这个到底是怎么回事啊
    http://expert.csdn.net/Expert/topic/2506/2506041.xml?temp=.2655146
      

  14.   

    多线程在网络编程中应该用的很多了,比如一个Web服务器上处理多用户的连接,一般都有线程池的技术。
    我也相信多线程是Java的精髓。
      

  15.   

    To:doall4u,你也来这里捣乱啊线程是Java的精髓,但是没有好好掌握它真的会很惭愧啊!!!
      

  16.   

    java多线程操作比较eazy,反正偶是有机会用就用。
      

  17.   

    我还没有在java 下用过线程.写的网络程序都是用C来写.如果要提高服务性能的话.线程是少不的.如果控制不好线程,就有可能导致所有的服务失灵的.
      

  18.   

    很多人都说Java里面的线程简单,但是在简单的同时,关注了它的整体性能了没有呢?如何Java的线程来提高系统的性能呢?
      

  19.   

    java里create一个线程很简单,但是要精确的控制线程组的行为却很麻烦,不如c来的爽
    有些实现感觉比较难以理解,不如c描述的明白
      

  20.   

    我最近才写了一个java的多线程服务器(手机服务),
    感觉比c++写的效果还好,
    原因可能有3:
    java 的线程模型较好
    c++ 的哪些程序员的问题和c++的控制难度
    数据库查询的差异我还第一次感觉java如此nb,不知道有没有人和我有同感。
    (我写的java服务器可接受超过800的线程的并发,而c++的在600个就无法正常运行)
      

  21.   

    不可能吧!!大家都没有用过多线程??
    作服务器编程不使用多线程不可能的呃!!多个端口,多客户,当然是多线程处理啦!!
    不过JAVA倒确实比较强劲,
    我自己测试时,可以开 15300 个线程左右((纯粹是开线程,不处理任何东西))!!
    然后系统死机!!现在使用 C#,开 5000多就翘了!!
      

  22.   

    这几天正好在看java得多线程
    线程的两种创建方法:继承Thread 或者 实现 Runanable 接口
    线程主要是用多线程,可以同时作几件事情
    可以解决对资源的访问问题
      

  23.   


    开这么多线程不用thread pool么?