Java编程思想第四版(Thinking in Java, 4th edition)
Publisher: Prentice Hall PTR; 4 edition (February 15, 2006)
ISBN: 0131872486
学Java的大概没有人没看过这本经典书籍,现在出到第四版,Amazon目前开始接受预定,国内还不知道什么时候会有胶印版本。大概的看了一下,感觉这一版改动的比较多,很多内容和示范代码都改写过,当然就是增加J2SE 5.0/6.0(beta)新功能及新特性!有兴趣的朋友可以关注一下Bruce Eckel 的Blog中写了一篇名为 Where is Thinking in Java, 4th Edition? 的文章向读者介绍了TIJ 4th的写作进展和感言。
Burce Erkel’s mindview上提供前7个章节的pdf格式样书下载。
Continue reading
Thinking in Java, 4th edition
Posted by in 文字
New style for Z-blog
这段时间因为忙于个种琐事,Blog的样式断断续续的做了一些调整,目前这个样子也基本成形,这次的模板文件被改得面目全非,这里得做一下记录,以备后用!
参考了[URL=http://woooh.com]Drunk Dream[/URL]将样式改成了三分栏的布局,主要是二分栏右侧链接过于冗长,而三分栏 的布局相对紧凑,便于访问者浏览。
调整了文章模块(template:pagebar)将他放到了左边,这样更合适860宽度的显示效果,divToolbar模块放置基本的网站信息,divSidebar功能模块加入了Delicious网摘及Douban读书记录!
删除了日历模块,这个模块经常出现乱码的问题(不知道是程序问题还是没有修改好),删除了Tag列表显示,在TagCloud 内有完整的显示,我对所谓的Tag不是太”感冒”!对评论模块做了比较大的调整,奇怪的是在模板里直接加入中文字符,显示出来的全是乱码,之后只好在语言中定义这些字符,以前版本中好像没有这个问题,有待解决。
样式在IE6.0、Firefox1.5.1、Flock0.5.10下测试正常,Opera8.0下目前未知,使用Opera朋友通知一下。
BTW:修改的过程中发现主机和域名存在诸多问题,不能转发,同时在线超过40人就挂了,二级域名blueclassic.net尽然显示未备案的信息,询问空间商得到的是这个二级域名没有备案记录,查询了一下备案号,信产部还真看得起我,一个域名给我了二个备案号,且我的记录里这个二级域名早就加入进去了,出现这样的问题我不知道空间商应该做何解释?唉,我也懒得去听这种解释,空间快到期了,准备更换主机。
Continue reading
Posted by in 文字
Aboslute 布局暂存….
暂存,待整理!
定义座标作为限制(x,y) and (w,h) coordinates:
[CODE_LITE]
private int x, y, width, height;
public static final int ADAPT = -1;
public XYConstraints(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
[/CODE_LITE]
适应常数可能被使用为宽度和高度以便布局经理使用宽度并且高度定义由组分(got from get…..Size()).必须实施LayoutManager2 和所有方法被定义:
首先我们假设我们的布局不需要任何特别对准线, 对上部左角落总将被排列:
[CODE_LITE]
public float getLayoutAlignmentX(Container arg0) {
return 0;
}
public float getLayoutAlignmentY(Container arg0) {
return 0;
}
[/CODE_LITE]
1) 审阅所有分组和增加他们的X 和W 座标和Y 和H 座标。
2) 如果分组使用适应常数, 使用对应的方法在分组(得到..大小) 。
[B]E.g. the getPreferredSize method:[/B]
[CODE_LITE]
public Dimension preferredLayoutSize(Container arg0) {
int rightBound = 0;
int bottomBound = 0;
for (Iterator iter = constraints.keySet().iterator(); iter.hasNext();) {
Component comp = (Component) iter.next();
XYConstraints constraint = (XYConstraints) constraints.get(comp);
Dimension size = comp.getPreferredSize();
int width = constraint.getWidth();
if (width == XYConstraints.ADAPT) {
width = size.width;
}
if ((constraint.getX() + width) > rightBound) {
rightBound = constraint.getX() + width;
}
int height = constraint.getHeight();
if (height == XYConstraints.ADAPT) {
height = size.height;
}
if ((constraint.getY() + height) > bottomBound) {
bottomBound = constraint.getX() + height;
}
}
return new Dimension(rightBound, bottomBound);
}
[/CODE_LITE]
因为我们不存储什么, 我们不需要实施其它的invalidateLayout:
[CODE_LITE]
public void invalidateLayout(Container arg0) {
// No information cached
}
[/CODE_LITE]
现在我们来到有趣的部份,首先我们需要实施方法增加分组以限制来布局。
有二个方法: 一以限制代表作为对象和其他作为串。 串一个, 我们将解码串对对象和将要求第一方法:
[CODE_LITE]
public void addLayoutComponent(String constraintString, Component component) {
XYConstraints constraint = new XYConstraints(0, 0, XYConstraints.ADAPT, XYConstraints.ADAPT);
String[] args = constraintString.split(“;”);
for (int i = 0; i
暂存,待整理!
定义座标作为限制(x,y) and (w,h) coordinates:
[CODE_LITE]
private int x, y, width, height;
public static final int ADAPT = -1;
public XYConstraints(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
[/CODE_LITE]
适应常数可能被使用为宽度和高度以便布局经理使用宽度并且高度定义由组分(got from get…..Size()).必须实施LayoutManager2 和所有方法被定义:
首先我们假设我们的布局不需要任何特别对准线, 对上部左角落总将被排列:
[CODE_LITE]
public float getLayoutAlignmentX(Container arg0) {
return 0;
}
public float getLayoutAlignmentY(Container arg0) {
return 0;
}
[/CODE_LITE]
1) 审阅所有分组和增加他们的X 和W 座标和Y 和H 座标。
2) 如果分组使用适应常数, 使用对应的方法在分组(得到..大小) 。
[B]E.g. the getPreferredSize method:[/B]
[CODE_LITE]
public Dimension preferredLayoutSize(Container arg0) {
int rightBound = 0;
int bottomBound = 0;
for (Iterator iter = constraints.keySet().iterator(); iter.hasNext();) {
Component comp = (Component) iter.next();
XYConstraints constraint = (XYConstraints) constraints.get(comp);
Dimension size = comp.getPreferredSize();
int width = constraint.getWidth();
if (width == XYConstraints.ADAPT) {
width = size.width;
}
if ((constraint.getX() + width) > rightBound) {
rightBound = constraint.getX() + width;
}
int height = constraint.getHeight();
if (height == XYConstraints.ADAPT) {
height = size.height;
}
if ((constraint.getY() + height) > bottomBound) {
bottomBound = constraint.getX() + height;
}
}
return new Dimension(rightBound, bottomBound);
}
[/CODE_LITE]
因为我们不存储什么, 我们不需要实施其它的invalidateLayout:
[CODE_LITE]
public void invalidateLayout(Container arg0) {
// No information cached
}
[/CODE_LITE]
现在我们来到有趣的部份,首先我们需要实施方法增加分组以限制来布局。
有二个方法: 一以限制代表作为对象和其他作为串。 串一个, 我们将解码串对对象和将要求第一方法:
[CODE_LITE]
public void addLayoutComponent(String constraintString, Component component) {
XYConstraints constraint = new XYConstraints(0, 0, XYConstraints.ADAPT, XYConstraints.ADAPT);
String[] args = constraintString.split(“;”);
for (int i = 0; i
Posted by in 读书
Suse Linux想说”用”你不容易
这几天将自己的电脑做了一次升级,虽然速度有所提升但还是不如人意,先就这样吧!等Vista的系统出来了再做一次全面的升级吧到时候64位处理器应该更成熟和廉价一些:)...正好在整理文件时看到早前下载的Suse Linux 10.0的安装文件(5CD的庞然大物放在这里也太可惜了),如是看惯了RH系统的我就有了换个新面孔的念头,也就是这个念头让我折腾了几天,最后唯一得到的就是这篇文章的标题:( 安照[URL=http://www.Linuxsir.org/bbs]Linuxsir[/URL]中的配置方法其实很简单,应该不比RH更难搞定,以及自认为对Linux安装配置很有信心(这都是当时配置RH折腾出来的经验),没想太多就直接加载GRUB安装起来了。加载一切正常,YaST配置一切OK,就在开始进入安装时提示输入login/wordpass……(茫然)到写这篇文章时问题依旧:)从目前的情况看有能的问题是
1、[B]当时下载下来的是ISO文件我将它解压放到一个目录下,文件有损坏。[/B]
2、硬盘安装自动加载了FAT32的分区,而配置里没有出现”[B]去掉自动加载[/B]“这一选项,从而直接安装到C盘Windows分区了。
3、Suse Linux对于我在没看说明书之前就直接进行安装这事非常不满,故这是有意的惩罚!!!!!!
所以得现结论是:不能高估自己的期望值,在什么都没准备的情况下忽然率等于0的现象是有发生,哈哈。
没办法,问题1的可能性最大只能重新下载[URL=http://opensuse.org.cn]Suse 10.1 Beta 4[/URL],再来验证如否了,先还是老老实实的用我的Redhat吧,想尝鲜是要付出代价地。
Continue reading
Posted by in 开源
Java Platform,Standard Edition 6 Beta
Sun Microsystems 发布了 Java Platform, Standard Edition 6 (Java SE 6)
的Beta版本。也就是Mustang的Beta版本。”相信这个版本在功能及易用性上应该有不小的改进。”
Sun发言人提到,通过扩展对脚本语言以及web service的支持,Java SE 6已经成为了下一代WEB
2.0应用的平台,现在我们发布Beta版本,让广大开发者进行测试。” Jeff Jackson
提到。“同时希望开发者们尽早测试,并将bug反馈给我们”。
Java SE 6支持JAX-WS 2.0 和 JAXB 2.0,提供对程序进行监测和管理的工具,提供对DTrace的扩展支持。
同时SUN提到:Java SE6对桌面程序的效率将有显著的提高,这无疑是非常让人期待的。”希望所谓的SE6的桌面程序不是在炒作而已,必尽桌面MS是老大。不过Mustang的新特性还是很值得我们期待的,等下载测试后再发表意见!下载(Java SE 6)Beta版在here
New Security features and enhancements:
1. Native platform GSS/Kerberos integration
2. Java Authentication and Authorization Service (JAAS) login module that employs LDAP authentication
3. New Smart Card I/O API
Integrated Web Services:
1. New API for XML digital signature services for secure web services
2. New Client and Core Java Architecture for XML-Web Services (JAX-WS) 2.0 APIs
3. New support for Java Architecture for XML Binding (JAXB) 2.0
Enhanced Management & Serviceability:
1. Improved JMX Monitoring API
2. Runtime Support for dTrace (Solaris 10 and future Solaris OS releases only)
3. New custom deployment facilities
Increased Developer Productivity:
1. Improved memory usage analysis and leak detection
2. Significant library improvements
3. Improvements to the Java Platform Debug Architecture (JPDA) & JVM Tool Interface
Improved User Experience:
1. Look and feel updates to better match underlying platforms
2. Improved desktop performance and integration
3. Enhanced internationalization support
Technorati Tags: java, se6, Beta, Mustang
Continue reading
Posted by in 文字
Recent Comments