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

企业信息网优化清理大师

企业信息网,优化清理大师,潍坊专业做网站,wordpress改网站logojava中的数据类型 基础数据类型 基础数据类型有byte、short、char、int、long、float、double、bool、String。除了 String 会比较地址,其它的基础类型的比较,使用 和 equals() 两者都是比较值。 String类的equals()方法源码 1 public boolean equals(Object anObject) {2 …java中的数据类型 基础数据类型 基础数据类型有byte、short、char、int、long、float、double、bool、String。除了 String 会比较地址,其它的基础类型的比较,使用 和 equals() 两者都是比较值。 String类的equals()方法源码 1 public boolean equals(Object anObject) {2 if (this anObject) { //先比较地址,如果相同直接返回true3 return true;4 }5 if (anObject instanceof String) {//如果地址不相同,判断要比较的对象是不是String实例,如果不是直接返回false6 String anotherString (String) anObject;7 int n value.length;8 if (n anotherString.value.length) {//比较两个对象的长度,如果不相等直接返回false9 char v1[] value; 10 char v2[] anotherString.value; 11 int i 0; 12 while (n-- ! 0) { 13 if (v1[i] ! v2[i]) 14 return false; 15 i; 16 } 17 //比较两个string对象的每个字符,如果都相等,就返回true,有一个不相等就返回false 18 return true; 19 } 20 } 21 return false; 22 } 查看源码可知String 类型的 equals 方法既会比较地址,也会比较字符串的每个字符(值). String类型的equals()比较 1 public class Main { 2 public static void main(String[] args) { 3 String name1 new String(123); 4 String name2 new String(123); 5 System.out.println(name1 name2);//false 6 System.out.println(name1.equals(name2));//true 7 } 8 } 结果分析: name1 和 name2 是 String 的两个不同实例name1name2 是比较 name1 与 name2 的地址所以返回 false。而 name1.equals(name2) 先是比较两者的地址发现不同后接着比较两者的值相同所以返回 true。 复合数据类型(类) Object类中equals()方法源码 1 public boolean equals(Object obj) { 2 return (this obj); 3 } 查看源码可知当自己定义的类如果不重写 Object 类中 equals() 方法时调用 equals() 方法其实和直接用 判断的效果一样。 未重写时 1 public class Person {2 private String name;3 4 public Person(String name) {5 this.setName(name);6 }7 8 public String getName() {9 return name; 10 } 11 12 public void setName(String name) { 13 this.name name; 14 } 15 } Person.java 1 public class Test { 2 public static void main(String[] args) { 3 Person person1 new Person(zze); 4 Person person2 new Person(zze); 5 System.out.println(person1 person2);//false 6 System.out.println(person1.equals(person2));//false 7 } 8 } 重写时 1 public class Person {2 private String name;3 4 public Person(String name) {5 this.setName(name);6 }7 8 public String getName() {9 return name; 10 } 11 12 public void setName(String name) { 13 this.name name; 14 } 15 16 Override 17 public boolean equals(Object obj) { 18 if(obj instanceof Person){ 19 return this.name((Person) obj).name; 20 } 21 return false; 22 } 23 } Person.java 1 public class Test { 2 public static void main(String[] args) { 3 Person person1 new Person(zze); 4 Person person2 new Person(zze); 5 System.out.println(person1 person2);//false 6 System.out.println(person1.equals(person2));//true 7 } 8 } 结论 首先基本数据类型与复合数据类型在内存中存储的的方式是不同的 基本数据类型在栈中存储的是值。复合数据类型在栈中存储的是地址来指向堆内存的实例。可以这样理解使用 比较的时候都是比较变量中存储的值但基础类型的变量中存储的值就是实际值而复合数据类型变量中存储的值是指向堆对象的引用地址。而 equals() 方法就是一个依赖于 实现普通函数,只不过它的实现是在所有对象的基类 (Object) 中.转载于:https://www.cnblogs.com/zze46/p/9606339.html
http://www.zqtcl.cn/news/237942/

相关文章:

  • 如何建立外卖网站网站可以做的活动推广
  • 手机号注册网站cms影视源码采集
  • 网站建设网页设计培训班连云港seo优化
  • 成都网站建设公司招聘定制衣服
  • 做访问量高的网站如何建立公司网站推广
  • 做公司的网站有哪些简述企业网站建设的流程
  • 网站免费获取验证码怎么做软件开发的工作
  • 萌宝宝投票网站怎么做正规网站建设多少费用
  • 产权交易网站建设方案耐克网站建设的历程
  • 网站建设投入及费用wordpress 收录插件
  • 东莞网站制作个性化清溪网站仿做
  • 简单展示网站模板天津建设网站哪家好
  • 建个人网站赚钱多吗福建省住房和城乡建设厅网站首页
  • 网站建设课程设计实训心得seo关键词优化方案
  • 逸阳网站建设的目标郑州建设电商网站
  • 有了网址怎么做网站上海网站推广服务
  • 惠州网站seo排名优化esc怎么做网站
  • 咨询公司网站设计网站建设技能
  • 上海湖南网站建设新学校网站建设成果
  • 网站开发有哪些竞赛建站行业新闻
  • 满足seo需求的网站大型网站常见问题
  • 做网站要求高吗珠宝网站建设
  • 网站建设方案 预算高端制作网站哪家专业
  • 响应式网站什么意思长春做个人网站做不了
  • 手机网站排名优化软件网站登陆页面怎么做
  • 辽宁网站建设价格杭江建设有限公司
  • 成立公司在什么网站网络推广推广培训
  • 承德网站制作公司哪家好公司网络组建方案模板
  • 用wordpress 建网站网站关键词怎么改
  • 怎么做网站做站点创建站怎么上传网站怎么办