Java编程语言的线程模型可能是此语言中最薄弱的部分。它完全不适合实际复杂程序的要求,而且也完全不是面向对象的。本文建议对Java语言进行重大修改和补充,以解决这些问题。 Java语言的线程模型是此语言的一个最难另人满意的部分。尽管Java语言本身就支持线程编程是件好事,但是它对线程的语法和类包的支持太少,只能适用于极小型的应用环境。 关于Java线程编程的大多数书籍都长篇累牍地指出了Java线程模型的缺陷,并提供了解决这些问题的急救包(Band-Aid/邦迪创可贴)类库。我称这些类为急救包,是因为它们所能解决的问题本应是由Java语言本身语法所包含的。从长远来看,以语法而不是类库方法...
http://www.jb51.net//article/2790.htm
在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大大小小的论坛,也把《Java虚拟机规范》,《apress,.java.collections.(2001),.bm.ocr.6.0.shareconnector》,和《ThinkinginJava》翻了也找不到很好的答案,于是一气之下把JDK的src解压出来研究,扩然开朗,遂写此文,跟大家分享感受和顺便验证我理解还有没有漏洞。这里就拿HashMap来研究吧。 HashMap可谓JDK的一大实用工具,把各个Object映射起来,...
http://www.jb51.net//article/2789.htm
IT技术日新月异,新技术的出现令人目不暇接,似乎每一天都在产生着新名词。不过归根结底IT所要实现的价值不外乎数据收集,然后再以客户希望的形式展示给客户而已。因此数据存取技术也就成了一个永恒的话题。而在Java这个开放的世界里,数据库存取技术是五花八门,种类繁多。我们也来侃侃Java世界里主流的数据库存取技术。 首先列出英雄榜 1.JDBC直接访问数据库 2.EJBentitybean. 3.JDO技术。 4.第三方O/R工具,如目前大红大紫的Hibernate, 其它如Castor, Toplink. 先说说这个历史最为悠久的JDBC吧。从Java诞生的那天起,这位仁兄就开始登上历...
http://www.jb51.net//article/2788.htm
接口是实现构件可插入性的关键,可插入构件的关键在于存在一个公用的接口,以及每个构件实现了这个接口。 什么是接口? Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。 在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来...
http://www.jb51.net//article/2787.htm
链表是一种重要的数据结构,在程序设计中占有很重要的地位。C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构。Java语言中的对象引用实际上是一个指针(本文中的指针均为概念上的意义,而非语言提供的数据类型),所以我们可以编写这样的类来实现链表中的结点。 classNode { Objectdata; Nodenext;//指向下一个结点 } 将数据域定义成Object类是因为Object类是广义超类,任何类对象都可以给其赋值,增加了代码的通用性。为了使链表可以被访...
http://www.jb51.net//article/2786.htm
在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在Java应用程序中处理XML数据的其它方法相比它有什么优势,以及如何开始使用它。这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使XML文档能转换成Java对象。同时还涵盖用于生成数据绑定类的输入和输出。 您希望在您的Java应用程序中使用XML吗?那么好,同成千上万的其他人一起上这条船吧。当您深入了解XML以后,也许您会发现DOM和SAXAPI(请参阅参考资料)不过是唬人的东西。您可能认为肯定存在某种简单方法可以取得XML文档,并通过Java应用程序访问它,对吗?不必通过回调或复杂的树状结构,而是使用像...
http://www.jb51.net//article/2784.htm
很多初学者在用Java布局器自动布局画界面时,经常遇见不知道如何定义区域大小或按钮之间的距离等问题。我写过一篇《实现JAVA手动布局中各个组件能随窗口变化的方法》的文章,有读者反映算坐标不好算,问能不能用布局器实现文章中的界面。其实自动布局也可以解决定义区域大小或按钮之间的距离等问题,只是没有手动布局那么灵活。下面我就举一个例子。 首先,建一个frame文件(Application应用程序),在Design中将this中的layout设置为BorderLayout。 第二,在组件盘内点选SwingContainer页签,选取Jpanel图标,在this中上方拖拽一块区域,布局器会自动调整位...
http://www.jb51.net//article/2781.htm
1、java数据库操作基本流程 2、几个常用的重要技巧: 可滚动、更新的记录集 批量更新 事务处理 java数据库操作基本流程:取得数据库连接-执行sql语句-处理执行结果-释放数据库连接 1、取得数据库连接 1)用DriverManager取数据库连接 例子: StringclassName,url,uid,pwd; className="oracle.jdbc.driver.OracleDriver"; url="jdbc:oracle:thin:@127.0.0.1:1521:orasvr; uid="system"; pwd="manager"; Class...
http://www.jb51.net//article/2780.htm
在现代的操作系统中,有一个很重要的概念――线程,几乎所有目前流行的操作系统都支持线程,线程来源于操作系统中进程的概念,进程有自己的虚拟地址空间以及正文段、数据段及堆栈,而且各自占有不同的系统资源(例如文件、环境变量等等)。与此不同,线程不能单独存在,它依附于进程,只能由进程派生。如果一个进程派生出了两个线程,那这两个线程共享此进程的全局变量和代码段,但每个线程各拥有各自的堆栈,因此它们拥有各自的局部变量,线程在UNIX系统中还被进一步分为用户级线程(由进程自已来管理)和系统级线程(由操作系统的调度程序来管理)。 既然有了进程,为什么还要提出线程的概念呢?因为与创建一个新的进程相比,创建一个线...
http://www.jb51.net//article/2778.htm
目前整个开发社区对AOP(AspectOrientedPrograming)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring,JAC,JbossAOP等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP,为何要进行AOP.要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示一下如何来进行AOP. 为了简单起见,例子没有没有使用任何第三方的AOPFramework,而是利用Java语言本身自带的动态代理功能来实现AOP. 让我们...
http://www.jb51.net//article/2776.htm
运行时多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态性的实现。 一、通过继承中超类对象引用变量引用子类对象来实现 举例说明: //定义超类superA classsuperA { inti=100; voidfun() { System.out.println(“ThisissuperA”); } } //定义superA的子类subB classsubBextendssup...
http://www.jb51.net//article/2773.htm
