文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发Java达内金牌讲师唐亮Java语言细节(中)
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
·Java开源技术:Eclipse的使用技巧详解
·新手入门:Java中的修饰词使用方法总结
·JAVA开发者应该去的20个英文网站
·使用JDBC创建数据库访问程序
·JDK的命令详解
·Java学习从入门到精通(附FAQ)
·Tomcat性能调整
·JSF:Java中面向Web开发的生旦净末丑
·对Java语言入门初学者的一些建议
·Java技术的新方向
热点TOP10
·用Java实现SMTP服务器
·实例讲解:Java中的SOAP技术
·用Java编写的记事本程序(2)
·Java语言出现的背景 影响及前景
·Java语言实现支持视频点播的WEB服务器
·运用Jakarta Struts的七大实战心法(1)
·Tomcat性能调整
·详细解析Java中抽象类和接口的区别
·Java多媒体框架设计自动播放机实例详解
·用Java编写的记事本程序(3)
·用Java编写的记事本程序(1)
·Liferay中整合tinyMCE详解
·《精通SOA:基于服务总线的Struts+EJB+Web Service整合应用开发》目录
·Eclipse上的Tomcat插件安装和调试
·3D编程指南第一部分:快速进入移动JAVA 3D编程世界
·用java编写的小游戏源代码分析
·图解JBuilderX安装与实践
·Java精华积累:初学者都应该搞懂的问题
·Java技术的新方向
·JDK的命令详解

达内金牌讲师唐亮Java语言细节(中)

日期:2007年12月27日 作者: 查看:[大字体 中字体 小字体]


String str1="hello";t`
String str2="hello";H
System.out.println(str1==str2);\5]+%
这说明str1和str2指向同一个对象,因为它们都是在对象池中拿到的,而下面的代码输出为false:0)BvDc
String str3="hello"7xu{
String str4=new String("hello");YH
System.out.println(str3==str4);8
因为在任何情况下,只要你去new一个String对象那都是创建了新的对象。JcW*?
与此类似的,在JDK5.0里面8种基本类型的包装类也有这样的差异:>
Integer i1=5;//在对象池中拿^
Integer i2 =5;//所以i1==i2)T!
Integer i3=new Integer(5);//重新创建新对象,所以i2!=i3R{
©达内IT技术论坛—中国人学Java、学C++、学C#/.Net、学软件、学IT的地方 -- 达内科技论坛  jxpB
对象池的存在是为了避免频繁的创建和销毁对象而影响系统性能,那我们自己写的类是否也可以使用对象池呢?当然可以,考察以下代码:*:s;
class Student{d"'D
private String name;v]D>
private int age;>@e
private static HashSet pool=new HashSet();//对象池pP~i1
ew#F2a
public Student(String name,int age){jf e
this.name=name;Lp pu
this.age=age; X^4"B
}zdO*:`
©达内IT技术论坛—中国人学Java、学C++、学C#/.Net、学软件、学IT的地方 -- 达内科技论坛  4yBp
//使用对象池来得到对象的方法r
public static Student newInstance(String name,int age){A7b
//循环遍历对象池%B
for(Student stu:pool){uY4_
if(stu.name.equals(name) && stu.age==age){Ib!yH
return stu;6;Rk(9
}K
}Q1%g[o
//如果找不到值相同的Student对象,则创建一个Student对象T
//并把它加到对象池中然后返回该对象。0ac~
Student stu=new Student(name,age);.;=S
pool.add(stu);$pO*h
return stu;JdF
}Vi o
}©达内IT技术论坛—中国人学Java、学C++、学C#/.Net、学软件、学IT的地方 -- 达内科技论坛  ©达内IT技术论坛—中国人学Java、学C++、学C#/.Net、学软件、学IT的地方 -- 达内科技论坛  H-
public class Test{-G>_
public static void main(String[] args){yy
Student stu1=Student.newInstance("tangliang",30);//对象池中拿+
Student stu2=Student.newInstance("tangliang",30);//所以stu1==stu2J p5
Student stu3=new Student("tangliang",30);//重新创建,所以stu1!=stu3B'@>
System.out.println(stu1==stu2);i,:r4
System.out.println(stu1==stu3);)dg_
}eZA
}©
6,2.0-1.1==0.9吗?Vz&]G0
考察下面的代码:3z"I
double a=2.0,b=1.1,c=0.9;a
if(a-b==c){$s
System.out.println("YES!");i8
}else{)i
System.out.println("NO!");`cQI
}©达内IT技术论坛—中国人学Java、学C++、学C#/.Net、学软件、学IT的地方 -- 达内科技论坛  S
以上代码输出的结果是多少呢?你认为是“YES!”吗?那么,很遗憾的告诉你,不对,Java语言再一次cheat了你,以上代码会输出“NO!”。为什么会这样呢?其实这是由实型数据的存储方式决定的。我们知道实型数据在内存空间中是近似存储的,所以2.0-1.1的结果不是0.9,而是0.88888888889。所以在做实型数据是否相等的判断时要非常的谨慎。一般来说,我们不建议在代码中直接判断两个实型数据是否相等,如果一定要比较是否相等的话我们也采用以下方式来判断:Sb_
if(Math.abs(a-b)<1e-5){{h$?z
//相等?yh<
}else{/Z
//不相等1]]z-
}kx`jG
上面的代码判断a与b之差的绝对值是否小于一个足够小的数字,如果是,则认为a与b相等,否则,不相等。
7,判断奇数
以下的方法判断某个整数是否是奇数,考察是否正确:'L#a
public boolean isOdd(int n){VJ1*
return (n%2==1);Q6Dz
}n
很多人认为上面的代码没问题,但实际上这段代码隐藏着一个非常大的BUG,当n的值是正整数时,以上的代码能够得到正确结果,但当n的值是负整数时,以上方法不能做出正确判断。例如,当n=-3时,以上方法返回false。因为根据Java语言规范的定义,Java语言里的求余运算符(%)得到的结果与运算符左边的值符号相同,所以,-3%2的结果是-1,而不是1。那么上面的方法正确的写法应该是:_
public boolean isOdd(int n){Y$;*\c
return (n%2!=0);h5
}x

(出处:清风下载学院


上一页 [1] [2] [3] 




上一篇:asp.net动态设置WebService引用

下一篇:达内金牌讲师唐亮Java语言细节(下)

达内金牌讲师唐亮Java语言细节(中) 相关文章:
·最详细的黑客入门法则
·《暗黑破坏神2》1.10补丁升级详细说明 - 游戏攻略
·秦殇复活-详细剧情攻略 - 游戏攻略
·《盟军敢死队:打击力量》详细流程攻略
·《生存危机》详细剧情攻略
·《X档案》详细全攻略(PS2) - 其他电视游戏攻略秘籍 - 其他电视游戏
·鬼武者3超详细图文官方攻略(1) - 其他电子游戏攻略
·详细介绍ORACLE sqlplus命令
·《幻想水浒传2》详细攻略
·生存危机-超详细剧情攻略
达内金牌讲师唐亮Java语言细节(中) 相关软件:
·细节决定成败(完整版)
·生命是什么-活细胞的物理学观
·经典街机,弹头VS血腥 修改稳定版画面细致 是您不二的选择
·黑客视频教程-制作免杀迷你灰鸽子详细教程
·Flash loading 的详细制作
·《操作系统安装过程详细图解 2005》
·他大师代表作品-吉他细语(雨果CD)
·事无巨细(诗集)
·细胞叛逆者
·中国电子地图2006完整特别版 rar 详细内容见查看

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn