最近在进行一个J2SE 5.0专题,有兴趣的朋友可以参考一下,我会在每一部分相对完整以后整理出来的。

sean_gao 2004-12-27 08:01:13
加精
自从J2SE 5.0于今年9月29日正式发布以来,一直希望有时间和大家一起学习它的新特性。无奈项目进度十分紧张,至今没有形成一个比较清晰的认识。

就目前的情形看来,估计紧张的日子还会持续相当长的一段时间,于是我暗下决心:既然时间总是不够用,那么我就争取在工作之余挤出点时间,通过在我的blog上发表学习笔记的方式,一方面与大家分享我的学习心得,一方面也是整理思路,同时促使自己更有效的学习新的知识。希望对需要学习Java和J2SE 5.0的朋友有所帮助,或者使大家能够少走些弯路。

我初步打算按照SUN Java网站上给出的New Features and Enhancements in J2SE 5.0的大纲来安排我的专题,大致分为性能提升、语言特性、虚拟机、基本库、集成库、用户界面、部署、工具及工具架构、操作系统和硬件平台等9个部分,其中一些可能会一笔带过,而另一些则可能需要更多的篇幅,不过一般我都会尽量给出相关的链接供大家参考。

在开始学习J2SE 5.0的新特性之前,你需要安装J2SETM Development Kit 5.0,同时我也建议你安装一个支持J2SE 5.0新特性的IDE,推荐Eclipse SDK 3.1 M4.

欢迎参与讨论和提意见。补充说明一点,为了照顾那些对Java并不十分熟悉的朋友,我举的例子都会是浅显易懂的。谢谢大家。

我的blog地址:http://blog.csdn.net/sean_gao/
...全文
1446 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwpw 2005-03-30
  • 打赏
  • 举报
回复
不错不错
elegantowl 2005-03-05
  • 打赏
  • 举报
回复
谢谢!!
gao256 2005-03-04
  • 打赏
  • 举报
回复
CSDN上好人多呀!
javafaq2004 2005-01-12
  • 打赏
  • 举报
回复
该加入精华吧!
sean_gao 2005-01-05
  • 打赏
  • 举报
回复
>>>>>>>3<<<<<<<
beyondii 2005-01-05
  • 打赏
  • 举报
回复
mark
sean_gao 2005-01-04
  • 打赏
  • 举报
回复
>>>>>>>2<<<<<<<
sean_gao 2005-01-04
  • 打赏
  • 举报
回复
短消息回复了。谢谢。
awaysrain 2005-01-04
  • 打赏
  • 举报
回复
to zcjl
嘿嘿,我们马上开始准备第二期了,早就瞄上楼主了

to 楼主
我给你发了个短消息,请看看啦
sean_gao 2005-01-04
  • 打赏
  • 举报
回复
>>>>>>>1<<<<<<<
sean_gao 2005-01-04
  • 打赏
  • 举报
回复
为了让更多需要的人受益,自己up三下,然后结贴。
江南愚子 2004-12-31
  • 打赏
  • 举报
回复
好!很同意楼主的观点,静态引入实在是画蛇添足!
关于对旧版本兼容问题,我碰到过一个实际的问题,一个项目里使用了enum作为属性或者变量名,而这个是5.0新引入的关键字,于是出现编译期异常!我只有class文件没有源代码,于是这个项目还是只能用1.4.2了
loucai 2004-12-31
  • 打赏
  • 举报
回复
mark
孙亖 2004-12-31
  • 打赏
  • 举报
回复
好东西,mark
sean_gao 2004-12-31
  • 打赏
  • 举报
回复
[J2SE 5.0专题][4.2]并发工具包

Doug Lea是Java并发编程的大拿,我想不少人都应该听说过那一本Concurrent Programming in Javatm
Design principles and patterns,几乎是学习Java并发编程必看的一本书。这回Doug Lea牵头的JSR-166在J2SE 5.0中引入的新的并发工具包绝对值得关注。

新引入的java.util.concurrent包,以及背后的实现和API使用完全可以写出一本书甚至几本书来,我想在这里我就避重就轻,挑两个简单的了解一下吧,有兴趣的朋友可以另外参考一些书籍和网上资料。

我打算拿来看一看的是Semaphore类和Executor接口。

Semaphore其实就像是一个通行证管理员,在一个设计好的环境,每个线程为了完成某件事情,都需要从管理员那里拿到一各通行证,然后去处理那件事,处理好以后,再把通行证还给管理员供其他线程使用。对一个比较极端的情况:只有一个通行证,这个时候同一时间之可能有一个线程去处理那件事,这就类似synchronized的实现方式了。Semaphore其实要比wait()或者synchronized要灵活得多。

来一点实际的代码片段:

private final Semaphore s = new Semaphore(1); // “只有一个通行证可用”
s.acquireUninterruptibly(); // “尝试获取一个通行证,直到取得为止”
// “拿着通行证去完成一件事...”
s.release(); // “归还这个通行证”

而Executor则是很好的抽象出一套线程执行框架,将具体的线程处理方式从我们的具体的代码中分离出来,在另一个地方实现具体的线程处理机制:如单线程,或者线程池等。Executor只声明了一个方法:

void execute(Runnable command)
同样来一段演示代码:

Executor e = new XXXExecutor(); // 假想的Executor实现类
e.execute(new Runnable() {...} );
e.execute(new Runnable() {...} );

具体这个Runnable实例最终在怎样的线程环境和以怎样的方式被执行,完全由Executor的实现类XXXExecutor决定,而非写死到这段代码中。

有关更详细的Java并发编程,参考java.util.concurrent包和Doug Lea的主页。



原文见:
http://blog.csdn.net/sean_gao/archive/2004/12/31/235248.aspx
sean_gao 2004-12-31
  • 打赏
  • 举报
回复
[J2SE 5.0专题][4.1]新的RowSet子接口

RowSet是javax.sql包下面的一个接口,继承自ResultSet接口,在1.4版本中被引入。不过当时只有孤零零的这么一个接口,JDK并没有提供更多细分的类别。我们来看看5.0版本中javax.sql.RowSet新增了哪些有趣的子接口。

继承关系大概是这样的:
ResultSet
|-- RowSet
|-- CachedRowSet
| |-- WebRowSet
| |-- JoinRowSet
| |-- FilteredRowSet
|-- JdbcRowSet
|-- SyncResolver


JdbcRowSet - 用来封装实现了JDBC的结果集;
CachedRowSet - 轻量的数据容器,仅当需要读取或写入数据库时才进行连接,其他时候虽然你可以对它进行修改/更新操作,但它与数据库是断开的,我们可以看到WebRowSet、JoinRowSet和FilteredRowSet都是它的子接口;
FilteredRowSet - 用来获取数据子集;
JoinRowSet - 通过多个RowSet接口的类的实例实现SQL JOIN查询;
WebRowSet - 使用标准的XML格式处理表格化的数据;
SyncResolver - 提供一种处理同步冲突的框架/机制。

使用CachedRowSet,以及它定义好的子接口,只要JDBC驱动的提供商给出具体的实现,我们就可以很方便的处理异步的数据对象,在需要的时候才进行数据库连接,免去了不少资源占用。基本上,你需要做的就是给出连接参数和SQL语句,操作返回的结果,然后把修改提交回数据源即可,具体的细节都被封装好了。

对那些刚接触JDBC的朋友,我想说的是,虽然你看到的都是接口,但这正是JDBC的特色和优点所在,JDBC API的设计者把接口(顺带其功能)定义好,就像是写下了一纸契约,具体的数据库厂商或者第三方遵照这一契约来实现这些接口,而对于我们使用JDBC的一方则可以放心的按照契约调用定义好的方法,而不必担心这些方法不存在或者没有实现等。哪怕我们换掉数据库,我们面对的还是那些API,只要新数据库同样有这样一组实现了JDBC的驱动。(现实中大项目做到这一步还比较困难,但这又是另一回事了。)这正是面向接口编程的精粹。

回到我们的RowSet新增子接口,它们存在的目的同样是定义好一组标准的行为,让具体的JDBC的提供者去实现,我们在另一端直接使用就OK了。


原文见:
http://blog.csdn.net/sean_gao/archive/2004/12/30/235143.aspx
sean_gao 2004-12-31
  • 打赏
  • 举报
回复
[J2SE 5.0专题][4]其他重要更新

首先,非常抱歉,我在这一专题第一篇文章中提到的大纲可能有所变动。这将是本专题最后一部分。一方面,我发现根据SUN的官方文档列出的大纲,后面的章节涉及的范围太广太泛,而有一些也是平常我们很少会用到和考虑到的。另一方面,我的时间也确实有限,如果真的要写,可能跟[J2SE 5.0专题][3]虚拟机类似,只能泛泛而谈。所以,在本专题的最后这一部分,我将从剩下的一些亮点中选择一些比较实用和具有特色的重要更新跟大家一起学习。

随着J2SE 5.0的发布,不少基本类库都有更新,有一些新的API类库被引入,其中我认为比较重要和值得关注的(至少我比较感兴趣的)是下面两个:新的JDBC RowSet子接口和并发工具包。在接下来的专题文章中我们逐一了解。

csdnyong 2004-12-31
  • 打赏
  • 举报
回复
谢谢
sean_gao 2004-12-31
  • 打赏
  • 举报
回复
[J2SE 5.0专题][5]结语

原本下了很大决心才做的事,没想到只用了短短五天,就草草收尾了,心中难免有些说不出的滋味,说不上好,也说不上不好。总体说来,应该还是开心吧。谢谢各位网友的关注和反馈。

在过去的五天中,零零碎碎的跟大家一起粗略过了一遍J2SE 5.0主要的新特性,其中很大的篇幅放在了语言特性上,我想,这也是J2SE 5.0带给我们最直观的变化吧。希望这个小小专题能给刚接触J2SE 5.0的朋友有一些参考价值。

巧的是,正好用了5天,一共也写了5个部分,而话题中的J2SE版本又是5.0。:)

需要对Java初学者说的是,做Java,一定要勤动手和上网查资料,一定要学会看API文档。你会发现,有很多东西,其实你自己也可以做到。

最后,祝大家新年快乐!


大胃
2004年12月

sean_gao 2004-12-31
  • 打赏
  • 举报
回复
如:javac -source 1.4
加载更多回复(33)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧