当前位置: 首页 > news >正文

微商城网站建设信息网站开发神书

微商城网站建设信息,网站开发神书,wordpress博客论坛插件,天河做网站系统如果是int类型#xff0c;判断相等的话直接使用 来判断#xff0c;例如#xff1a; int i 10; int j 10; System.out.print(i j)#xff1b; 如果是Integer类型#xff0c;则可以使用equals方法进行相等比较。 int与Integer的基本使用对比 #xff08…如果是int类型判断相等的话直接使用 来判断例如 int i 10; int j 10; System.out.print(i j) 如果是Integer类型则可以使用equals方法进行相等比较。 int与Integer的基本使用对比 1Integer是int的包装类int是基本数据类型 2Integer变量必须实例化后才能使用int变量不需要 3Integer实际是对象的引用指向此new的Integer对象int是直接存储数据值 4Integer的默认值是nullint的默认值是0。 5Integer型变量与int型变量之间可以直接比较此时自动进行拆箱操作。 总之要想比较两个Intger型变量的值最好用Integer.intValue()方法生成int型后再比较。 在初学Java时可能会经常碰到下面的代码 1 String str1 new String(“hello”); 2 String str2 new String(“hello”); 3 4 System.out.println(str1str2); 5 System.out.println(str1.equals(str2));   为什么第4行和第5行的输出结果不一样和equals方法之间的区别是什么如果在初学Java的时候这个问题不弄清楚就会导致自己在以后编写代码时出现一些低级的错误。今天就来一起了解一下和equals方法的区别之处。 一.关系操作符“”到底比较的是什么 下面这个句话是摘自《Java编程思想》一书中的原话 “关系操作符生成的是一个boolean结果它们计算的是操作数的值之间的关系”。 这句话看似简单理解起来还是需要细细体会的。说的简单点就是用来比较值是否相等。下面先看几个例子 public class Main { /*** param args*/ public static void main(String[] args) {// TODO Auto-generated method stubint n3;int m3;System.out.println(nm);String str new String(hello);String str1 new String(hello);String str2 new String(hello);System.out.println(str1str2);str1 str;str2 str;System.out.println(str1str2); }} 输出结果为 true false true nm结果为true这个很容易理解变量n和变量m存储的值都为3肯定是相等的。而为什么str1和str2两次比较的结果不同要理解这个其实只需要理解基本数据类型变量和非基本数据类型变量的区别。 在Java中游8种基本数据类型 浮点型float(4 byte), double(8 byte) 整型byte(1 byte), short(2 byte), int(4 byte) , long(8 byte) 字符型: char(2 byte) 布尔型: boolean(JVM规范没有明确规定其所占的空间大小仅规定其只能够取字面值true和false) 对于这8种基本数据类型的变量变量直接存储的是“值”因此在用关系操作符来进行比较时比较的就是 “值” 本身。要注意浮点型和整型都是有符号类型的而char是无符号类型的char类型取值范围为0~2^16-1). 也就是说比如 int n3; int m3; 变量n和变量m都是直接存储的3这个数值所以用比较的时候结果是true。 而对于非基本数据类型的变量在一些书籍中称作为 引用类型的变量。比如上面的str1就是引用类型的变量引用类型的变量存储的并不是 “值”本身而是于其关联的对象在内存中的地址。比如下面这行代码 String str1; 这句话声明了一个引用类型的变量此时它并没有和任何对象关联。 而 通过new String(“hello”)来产生一个对象也称作为类String的一个实例并将这个对象和str1进行绑定 str1 new String(“hello”); 那么str1指向了一个对象很多地方也把str1称作为对象的引用此时变量str1中存储的是它指向的对象在内存中的存储地址并不是“值”本身也就是说并不是直接存储的字符串hello。这里面的引用和C/C中的指针很类似。 因此在用对str1和str2进行第一次比较时得到的结果是false。因此它们分别指向的是不同的对象也就是说它们实际存储的内存地址不同。 而在第二次比较时都让str1和str2指向了str指向的对象那么得到的结果毫无疑问是true。 二.equals比较的又是什么 equals方法是基类Object中的方法因此对于所有的继承于Object的类都会有该方法。为了更直观地理解equals方法的作用直接看Object类中equals方法的实现。 该类的源码路径为C:\Program Files\Java\jdk1.6.0_14的src.zip 的java.lang路径下的Object.java视个人jdk安装路径而定。 下面是Object类中equals方法的实现 很显然在Object类中equals方法是用来比较两个对象的引用是否相等即是否指向同一个对象。 但是有些朋友又会有疑问了为什么下面一段代码的输出结果是true public class Main { /*** param args*/ public static void main(String[] args) {// TODO Auto-generated method stubString str1 new String(hello);String str2 new String(hello);System.out.println(str1.equals(str2)); }} 要知道究竟可以看一下String类的equals方法的具体实现同样在该路径下String.java为String类的实现。 下面是String类中equals方法的具体实现 可以看出String类对equals方法进行了重写用来比较指向的字符串对象所存储的字符串是否相等。 其他的一些类诸如DoubleDateInteger等都对equals方法进行了重写用来比较指向的对象所存储的内容是否相等。 总结来说 1对于如果作用于基本数据类型的变量则直接比较其存储的 “值”是否相等 如果作用于引用类型的变量则比较的是所指向的对象的地址 2对于equals方法注意equals方法不能作用于基本数据类型的变量 如果没有对equals方法进行重写则比较的是引用类型的变量所指向的对象的地址 诸如String、Date等类对equals方法进行了重写的话比较的是所指向的对象的内容。
http://www.tj-hxxt.cn/news/135828.html

相关文章:

  • 注册网站的软件公司注册资金可以随便填吗
  • 企业网站制作找什么人旅游app用户人群分析
  • 恋月wordpress珠海关键词优化平台
  • 沈阳网站建设开发维护九里徐州网站开发
  • 现在最好的免费的建站平台长沙公司网站设计报价
  • 网贷网站建设仁寿县建设局网站
  • 如何建设一个购物网站建wap网站
  • jsp做网站用什么封装字符串遂宁移动网站建设
  • 如何创建网站?影楼ps后期修片的教程
  • 网络建设公司排行福州短视频seo服务
  • 网站基础建设英文翻译合肥网站建设pqiw
  • 高端网站设计品牌万网虚拟主机免费空间
  • 网站建站平台广告网站优化包括对什么优化
  • 如何查看网站的空间商四川网站开发制作
  • 南京 郑州网站建设公司 网络服务品牌vi设计内容
  • 做盗版频网站山西百度公司做网站的
  • 做类似淘宝的网站要多少钱贵阳小程序定制开发
  • 建站网站是什么做网站用花瓣上的图片会侵权吗
  • win7做网站服务器开发公司不建二次加压泵房
  • 做网站推广排名垂直+网站开发
  • 迪庆企业网站建设公司汕头拿家做网站
  • 山东网站建设排行榜互联网网站建设哪家好
  • PHP文件加到WordPress页面青岛seo软件
  • 怎样换网站关键词嘉上营销
  • 做网站排行平台创建
  • 网站设计分享网站备案网站名称怎么填
  • 怎么免费网站重庆做网站
  • 基于微信公众号开发网站开发怎样做推广
  • 网站建设后的心得非织梦做的网站能仿吗
  • 网站横幅怎做深圳网站建设制作企业