随笔分类 -  JAVA

Java 基础技术,多线程,Socket通信,泛型,数据结构等等
摘要:其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。 在这篇文章将不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示一下Hibernate的安装过程以及最基本的功能,从而给初学者一个低得不能再低的入门门槛。 阅读全文
posted @ 2008-10-29 19:09 Jonson Li 阅读(301) 评论(0) 推荐(0) 编辑
摘要:MySQL 有许多图形化的管理工具,我们在此介绍二个官方的工具「MySQL Administrator」及「MySQL Query Browser」。MySQL Administrator 是用来管理 MySQL Server 用的,您可以查看目前系统状态、新增使用者等。而 MySQL Query Browser 可以用来查看数据库内容。 阅读全文
posted @ 2008-10-29 16:00 Jonson Li 阅读(3449) 评论(0) 推荐(0) 编辑
摘要:下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下! 阅读全文
posted @ 2008-10-29 15:37 Jonson Li 阅读(573) 评论(0) 推荐(0) 编辑
摘要:假设你把所有必须的源码或者包都放在了/tmp下。如果你下载的是RPM包的话,那比较简单;如果你下载的是二进制包(你没有rpm程序或者你想自定义的话),那么会稍微麻烦一点。 阅读全文
posted @ 2008-10-28 18:26 Jonson Li 阅读(798) 评论(1) 推荐(0) 编辑
摘要:Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。 Tomcat是稳固的独立的Web服务器与Servlet Container,不过,其Web服务器的功能则不如许多更健全的Web服务器完整,如Apache Web服务器(举例来说,Tomcat没有大量的选择性模块)。不过,Tomcat是自由的开源软件,而且有许多高手致力于其发展。 阅读全文
posted @ 2008-10-28 17:25 Jonson Li 阅读(596) 评论(0) 推荐(0) 编辑
摘要:Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Java 5的另外一个新特性泛型。 阅读全文
posted @ 2008-09-23 16:26 Jonson Li 阅读(350) 评论(0) 推荐(0) 编辑
摘要:在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用现有的库就不能实现,但是就像有了标准网络库一样,用经过调试的、可信任的库更容易自己处理多线程。在 Addision-Wesley 的一本相关书籍的帮助下,这个库变得越来越流行了。最终,作者 Doug Lea 决定设法让它成为 Java 平台的标准部分 —— JSR-166。这个库最后变成了 Tiger 版本的 java.util.concurrent 包。在这篇新的 驯服 Tiger 技巧中,我们将探讨 Collection Framework 中新的 Queue 接口、这个接口的非并发和并发实现、并发 Map 实现和专用于读操作大大超过写操作这种情况的并发 List 和 Set 实现。 阅读全文
posted @ 2008-09-23 16:23 Jonson Li 阅读(258) 评论(0) 推荐(0) 编辑
摘要:众所周知并行程序设计易于产生 bug。更为严重的是,往往在开发过程的晚期当这些并行 bug 引起严重的损害时才能发现它们并且难于调试它们。即使彻底地对它们进行了调试,常规的单元测试实践也很可能遗漏并行 bug。在本文中,并行专家 Shmuel Ur 和 Yarden Nir-Buchbinder 解释了为什么并行 bug 如此难于捕获并且介绍了 IBM Research 的一种新的解决方案。 阅读全文
posted @ 2008-09-23 16:17 Jonson Li 阅读(366) 评论(0) 推荐(0) 编辑
摘要:大多数 Java 程序员都使用某种跟踪系统来跟踪开发中的代码的潜在错误和问题。然而,多线程和多平台环境可能产生大量莫名其妙的跟踪数据。在本文中,软件工程师 Daniel Would 提供了一些技巧,帮助您理解复杂应用程序中产生的跟踪数据。您将了解如何使用开放源代码的日志记录软件包 log4j 来生成包含丰富信息的日志文件。您还将看到如何使用标准 UNIX shell 命令来挖掘您需要的信息数据。 阅读全文
posted @ 2008-09-23 16:14 Jonson Li 阅读(820) 评论(0) 推荐(0) 编辑
摘要:Java 提供了语言级别的线程支持,所以在 Java 中使用多线程相对于 C,C++ 来说更简单便捷,但本文并不是介绍如何在 Java 中使用多线程来来解决诸如 Web services, Number crunching 或者 I/O processing 之类的问题。在本文中,我们将讨论如何实现一个 Java 多线程的运行框架以及我们是如何来控制线程的并发同步以及顺序执行的。 阅读全文
posted @ 2008-09-23 16:09 Jonson Li 阅读(300) 评论(0) 推荐(0) 编辑
摘要:在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。比如大家所熟悉的数据库连接池正是遵循这一思想而产生的,本文将介绍的线程池技术同样符合这一思想。 目前,一些著名的大公司都特别看好这项技术,并早已经在他们的产品中应用该技术。比如IBM的WebSphere,IONA的Orbix 2000在SUN的 Jini中,Microsoft的MTS(Microsoft Transaction Server 2.0),COM+等。 现在您是否也想在服务器程序应用该项技术? 阅读全文
posted @ 2008-09-23 14:12 Jonson Li 阅读(409) 评论(0) 推荐(0) 编辑
摘要:在一系列关联的多任务的实时环境中,如果有一个任务发生失败,可能导致所有任务产生连锁反应,从而造成调度失控的局面。特别是对于核心控制设备尤其重要,为了解决这个问题,必须对每个任务进行实时监控。 阅读全文
posted @ 2008-09-23 14:11 Jonson Li 阅读(360) 评论(0) 推荐(0) 编辑
摘要:本文详细的介绍了使用Java语言建立一套多线程服务器的过程,该服务器使用对象传递消息,在线程中使用队列机制,使服务器的性能大大提高了。这套服务器可以被用于各种C/S或B/S结构的应用程序中。 阅读全文
posted @ 2008-09-23 14:10 Jonson Li 阅读(246) 评论(0) 推荐(0) 编辑
摘要:生产者-消费者方案是多线程应用程序开发中最常用的构造之一 ― 因此困难也在于此。因为在一个应用程序中可以多次重复生产者-消费者行为,其代码也可以如此。软件开发人员 Ze'ev Bubis 和 Saffi Hartal 创建了 Consumer 类,该类通过在一些多线程应用程序中促进代码重用以及简化代码调试和维护来解决这个问题。请通过单击本文顶部或底部的 讨论来参与本文的 论坛,与作者和其他读者分享您的想法。 阅读全文
posted @ 2008-09-23 14:08 Jonson Li 阅读(214) 评论(0) 推荐(0) 编辑
摘要:Java的多线程特性为构建高性能的应用提供了极大的方便,但是也带来了不少的麻烦。线程间同步、数据一致性等烦琐的问题需要细心的考虑,一不小心就会出现一些微妙的,难以调试的错误。另外,应用逻辑和线程逻辑纠缠在一起,会导致程序的逻辑结构混乱,难以复用和维护。本文试图给出一个解决这个问题的方案,通过构建一个并发模型框架(framework),使得开发多线程的应用变得容易。 阅读全文
posted @ 2008-09-23 14:02 Jonson Li 阅读(236) 评论(0) 推荐(0) 编辑
摘要:This package provides standardized, efficient versions of utility classes commonly encountered in concurrent Java programming. This code consists of implementations of ideas that have been around for ages, and is merely intended to save you the trouble of coding them. Discussions of the rationale and applications of several of these classes can be found in the second edition of Concurrent Programming in Java. There are also pdf slides providing an overview of the package. The package mainly 阅读全文
posted @ 2008-09-23 13:56 Jonson Li 阅读(447) 评论(0) 推荐(0) 编辑
摘要:结束语和参考资料 1. 结束语 2. 参考资料 阅读全文
posted @ 2008-09-23 13:53 Jonson Li 阅读(404) 评论(0) 推荐(0) 编辑
摘要:其它线程 API 详细信息 1. wait()、notify() 和 notifyAll() 方法 2. 线程优先级 3. 线程组 4. SwingUtilities 阅读全文
posted @ 2008-09-23 13:51 Jonson Li 阅读(303) 评论(0) 推荐(0) 编辑
摘要:同步详细信息 1. 互斥 2. 可见性 3. 什么时候必须同步? 4. 用于一致性的同步 5. 递增共享计数器 6. 不变性和 final 字段 7. 什么时候不需要同步 8. 死锁 9. 性能考虑事项 10. 同步准则 阅读全文
posted @ 2008-09-23 13:48 Jonson Li 阅读(341) 评论(0) 推荐(0) 编辑
摘要:由于线程执行的计时是不确定的,我们需要小心,以控制线程对共享数据的访问。否则,多个并发线程会互相干扰对方的更改,从而损坏数据,或者其它线程也许不能及时看到对共享数据的更改。 通过使用同步来保护对共享变量的访问,我们可以确保线程以可预料的方式与程序变量进行交互。 每个 Java 对象都可以充当锁,synchronized 块可以确保一次只有一个线程执行由给定锁保护的 synchronized 代码。 阅读全文
posted @ 2008-09-23 13:42 Jonson Li 阅读(1381) 评论(0) 推荐(0) 编辑