自己写的demo---equals()跟==的区别
package equals;
/*public class equals {
//基本数据类型跟引用数据类型(复合数据类型),
//在引用数据类型中equals方法被重写,一般用来比较内存地址
public static void main(String args[])
{
String a="zengzhiwei";
String b="zengzhiwei";//指向同一个引用
if(a==b)//比较内存地址
{
System.out.println("a==b");
}
else{
System.out.println("a!=b");
}
if(a.equals(b))//比较值
{
System.out.println("a equals b");
}
else{
System.out.println("a not equals b");
}
}
*//**
* a==b
a equals b
*//*
}*/
/*public class equals{
public static void main(String args[])
{
String a="zengzhiwei";
String b=new String("zengzhiwei");
if(a==b)//比较内存地址
{
System.out.println("a==b");
}
else{
System.out.println("a!=b");
}
if(a.equals(b))//比较值
{
System.out.println("a equals b");
}
else{
System.out.println("a not equals b");
}
}
*//**
* a!=b
a equals b
*//*
}*/
//对于复合型数据,如果没有覆盖(重写)equals()方法的话还是是比较的“内存地址”
public class equals{
public static void main(String args[])
{
String a="zengzhiwei";
String b=new String("zengzhiwei");
b.intern();//检查字符串池里是否存在"zengzhiwei"这么一个字符串,如果存在,就返回池里的字符串;
//如果不存在,该方法会 把"zengzhiwei"添加到字符串池中,然后再返回它的引用。
if(a==b)//比较内存地
{
System.out.println("a==b");
}
else{
System.out.println("a!=b");
}
if(a.equals(b))//比较值
{
System.out.println("a equals b");
}
else{
System.out.println("a not equals b");
}
}
/***
* a!=b
a equals b
但是在
http://www.cnblogs.com/zhxhdean/archive/2011/03/25/1995431.html#undefined
中是:说什么内存缓冲池。可是我见不到这种效果
s1 == s2
s1 equals s2
*/
}
还有有几点疑惑的东西:
1.怎么我用了intern()之后还是 a!=b;
2.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
自己写的demo---equals()跟==的区别的更多相关文章
- equals和==的区别 (Java基础)
1. == 是一个运算符.2.Equals则是string对象的方法,可以.(点)出来. 我们比较无非就是这两种 1.基本数据类型比较 2.引用对象比较 1.基本数据类型比较 ==和Equals都比较 ...
- java equals和==的区别
大概说equals和==都比较的是什么: 1. boolean tem = a == b; 首先==比较的肯定是地址,从堆栈的角度说也就是说==比较的是栈上面的内容.因为栈是用来存放地址或是java中 ...
- java中equals和==的区别 (转)
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
- 【转】Java中equals和==的区别
[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...
- C#中 Equals和= =的区别
C#中 Equals和= =的区别 前言:最近感觉技术进步实在是太慢,一直被游戏缠身不能自拔哈哈,但是游戏打多了真的是感觉整个人浮躁的不行,所以我现在要去游戏多写代码多看书,今天在博客园中看到一个前辈 ...
- Java 中 Equals和==的区别(转)
另外一篇参考: https://blog.csdn.net/striverli/article/details/52997927 在谈论equals和==的区别前,我们先简单介绍一下JVM中内存分配的 ...
- [转] equals和==的区别小结
==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象.比较的是真正意义上的指针操作. 1.比较的是操作符两端的操作数是否是同一个对象 ...
- equals和==的区别小结
==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象.比较的是真正意义上的指针操作. 1.比较的是操作符两端的操作数是否是同一个对象 ...
- ==与equals()区别
equals和==的区别? 经常被简单的理解为equals方法用来比较两个对象是否相同, 而==比较运算符用来比较两个基本数据类型的数值是否相同. 这样的理解无可厚非,但还要透过简单看看本质,才会更清 ...
- 手写Spring+demo+思路
我在学习Spring的时候,感觉Spring是很难的,通过学习后,发现Spring没有那么难,只有你去学习了,你才会发现,你才会进步 1.手写Spring思路: 分为配置.初始化.运行三个阶段如下图 ...
随机推荐
- Implementing Remote Validation in MVC
Using Validation Code Step 1: Create model for Catalog table and apply the the remote validation for ...
- MongoDB之三(高级操作 聚合、游标)
一: 聚合 常见的聚合操作跟sql server一样,有:count,distinct,group,mapReduce. <1> count count是最简单,最容易,也是最常用的聚合工 ...
- 洛谷P1157 组合的输出
洛谷1157 组合的输出 题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数. ...
- 如何将SQL Server运行到Windows Azure上
从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...
- proftpd的示例配置文件
# This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It estab ...
- tool
数据结构,堆栈基本原理; 数组,堆栈,结构体等系列,数据结构间区别联系; 在此我就不饶了,直接上大白话(我总认为干些实事,比扯淡强....),故事虚构,若有雷同,请你下方留言; ruiy讲的,所跑的托 ...
- java dubug调试
摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试 ...
- Spark shell里的语句探索
获得垃圾链接数据集的命令如下: wget http://www-stat.stanford.edu/~tibs/ElemStatLearn/datasets/spam.data scala> v ...
- DOCTYPE与浏览器模式详解(标准模式&混杂模式)
关于渲染模式: 在多年以前(IE6诞生以前),各浏览器都处于各自比较封闭的发展中(基本没有兼容性可谈).随着WEB的发展,兼容性问题的解决越来 越显得迫切,随即,各浏览器厂商发布了按照标准模式(遵循各 ...
- stream转byte数组几种方式
第一种,写法最简单的.使用原生IO,一个字节一个字节读: //一个字符一个字符读,太慢 int i; while((i=in.read()) != -1){ i = in.read(); arr[j+ ...