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()跟==的区别的更多相关文章

  1. equals和==的区别 (Java基础)

    1. == 是一个运算符.2.Equals则是string对象的方法,可以.(点)出来. 我们比较无非就是这两种 1.基本数据类型比较 2.引用对象比较 1.基本数据类型比较 ==和Equals都比较 ...

  2. java equals和==的区别

    大概说equals和==都比较的是什么: 1. boolean tem = a == b; 首先==比较的肯定是地址,从堆栈的角度说也就是说==比较的是栈上面的内容.因为栈是用来存放地址或是java中 ...

  3. java中equals和==的区别 (转)

    java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...

  4. 【转】Java中equals和==的区别

    [转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...

  5. C#中 Equals和= =的区别

    C#中 Equals和= =的区别 前言:最近感觉技术进步实在是太慢,一直被游戏缠身不能自拔哈哈,但是游戏打多了真的是感觉整个人浮躁的不行,所以我现在要去游戏多写代码多看书,今天在博客园中看到一个前辈 ...

  6. Java 中 Equals和==的区别(转)

    另外一篇参考: https://blog.csdn.net/striverli/article/details/52997927 在谈论equals和==的区别前,我们先简单介绍一下JVM中内存分配的 ...

  7. [转] equals和==的区别小结

    ==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象.比较的是真正意义上的指针操作. 1.比较的是操作符两端的操作数是否是同一个对象 ...

  8. equals和==的区别小结

    ==: == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象.比较的是真正意义上的指针操作. 1.比较的是操作符两端的操作数是否是同一个对象 ...

  9. ==与equals()区别

    equals和==的区别? 经常被简单的理解为equals方法用来比较两个对象是否相同, 而==比较运算符用来比较两个基本数据类型的数值是否相同. 这样的理解无可厚非,但还要透过简单看看本质,才会更清 ...

  10. 手写Spring+demo+思路

    我在学习Spring的时候,感觉Spring是很难的,通过学习后,发现Spring没有那么难,只有你去学习了,你才会发现,你才会进步 1.手写Spring思路: 分为配置.初始化.运行三个阶段如下图 ...

随机推荐

  1. ruby2.2.2在msvc2010上编译

    ruby2.2.2在msvc2010上编译有些问题,主要是msvc2010不支持c99,ruby有些扩展源代码例如ffi.c局部变量没有在block的起始位置定义,导致编译器报错. 办法 1.用支持c ...

  2. ReentrantReadWriteLock读写锁的使用

    Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象.两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象. 读写锁:分为读 ...

  3. sql server Case when 的用法

    sql Case 仅仅返回第一个符合条件的值,剩下的Case部分将会被自动忽略. Case 的使用有两种格式:简单Case函数和Case搜索函数. 简单Case 函数: Case sex when ' ...

  4. Asm Shader Reference --- Shader Model 2.0 part

    ps部分 ps_2_0 概览   Instruction Set                                   Name Description Instruction slot ...

  5. (2)I2c总线SDA\SCL以及开始终止条件

    I2C只用两条线(SDA和SCL)在连接到总线上的设备之间传送数据.每一个设备都由唯一的地址来识别(不管是微处理器.LCD驱动器.存储器或者键盘接口),并且可以依照设备的功能作为发送器或者接收器使用. ...

  6. bzoj 1483 [HNOI2009]梦幻布丁(链表+启发式合并)

    1483: [HNOI2009]梦幻布丁 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1818  Solved: 761[Submit][Status ...

  7. ubuntu下git安装及连接github

    1.安装 sudo apt-get install git git-core git-gui git-doc git-svn git-cvs gitweb gitk git-email git-dae ...

  8. centos git版本服务器配置

    在服务器上安装git及做些操作 - 执行命令 ` sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-de ...

  9. JavaScript constructors, prototypes, and the `new` keyword

    Are you baffled(阻碍:使迷惑) by the new operator in JavaScript? Wonder what the difference between a func ...

  10. jsp <c:forEach> 判断第一条 或 最后一条记录

    <c:forEach>标签具有以下一些属性: var:迭代参数的名称.在迭代体中可以使用的变量的名称,用来表示每一个迭代变量.类型为String. items:要进行迭代的集合.对于它所支 ...