java equal_Java equal() 和 == 详细分析
1
== 返回值是true/false;
(1) 基本数据类型比较的就是值(2)引用型数据类型就是地址值
public classTest1 {public static voidmain(String[] args) {int i = 1;int j = 1;
System.out.println(i==j);
Test1 t1= newTest1();
Test1 t2= newTest1();
System.out.println(t1);
System.out.println(t2);
System.out.println(t1==t2);
System.out.println(t1.equals(t2));
}
}
结果为:
truecom.briup.Test1@15db9742
com.briup.Test1@6d06d69cfalse
false
2.equal() 是方法,一般只有实例化 对象才会使用!
equal()比较的也是地址值,但注意的是这里的equal() 方法值的是Object类中的方法
先结论:String类中equal()方法比较的是值,而不是地址值!下面给出解释
java中所有的类都默认继承Object类!Object类是所有类的父类
但java中存在 重写 的概念,书面解释:
就是在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
简单的说就是,如果子类重写了方法,调用执行的就是子类的这个方法里面的代码!
public classTest1 {public static voidmain(String[] args) {
String s1= "fys";
String s2= "fys";//syso(对象名)输出的应该是地址值,//syso(对象名 ) == syso(对象名.toString())//String类中不仅重写了equal()方法,同时也重写了toString()方法
System.out.println(s1);//此处比较的是地址值,
System.out.println(s1 ==s2);
System.out.println(s1.equals(s2));
}
}
fystrue
true
将此字符串与指定对象进行比较。
Object类的equal()解释如下:
指示一些其他对象是否等于此。
注重:在第二段代码中
System.out.println(s1 ==s2);
这里比较的是地址值!不要理解为具体字符串的比较!
但为什么返回值为true呢?
这里涉及到了对象的创建,在jvm里面运行内存的知识,简单的解释就是字符串即"fys" 的存放空间位置既不在栈,也不在堆中,而是存在在常量池里面!
内容来源于网络如有侵权请私信删除
java equal_Java equal() 和 == 详细分析相关推荐
- java消费者模式_基于Java 生产者消费者模式(详细分析)
生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...
- java生产线消费者,基于Java 生产者消费者模式(详细分析)
生产者消费者模式是多线程中最为常见的模式:生产者线程(一个或多个)生成面包放进篮子里(集合或数组),同时,消费者线程(一个或多个)从篮子里(集合或数组)取出面包消耗.虽然它们任务不同,但处理的资源是相 ...
- java lam表达式_详细分析Java Lambda表达式
在了解Lambda表达式之前我们先来区分一下面向对象的思想和函数式编程思想的区别 面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用他的方法来解决 函数时编程思想: 只要能获取到结果,谁去 ...
- Java虚拟机:深入详细分析Java ClassLoader原理与源码
一.什么是ClassLoader? ClassLoader就是类加载器,当我们写好一个Java程序之后,都是由若干个.class文件组成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一 ...
- 阿里一道Java并发面试题 (详细分析篇)
题目 我个人一直认为:网络.并发相关的知识,相对其他一些编程知识点更难一些,主要是不好调试并且涉及内容太多 ! 所以今天就取一篇并发相关的内容分享下,我相信大家认真看完会有收获的. 大家可以先看看这个 ...
- java.util.concurrent包详细分析--转
原文地址:http://blog.csdn.net/windsunmoon/article/details/36903901 概述 Java.util.concurrent 包含许多线程安全.测试良好 ...
- 分享一道阿里Java并发面试题 (详细分析篇)
我个人一直认为:网络.并发相关的知识,相对其他一些编程知识点更难一些,主要是不好调试并且涉及内容太多 ! 所以今天就取一篇并发相关的内容分享下,我相信大家认真看完会有收获的. 大家可以先看看这个问题, ...
- JAVA设计模式之单例模式详细分析(全)
目录 前言 1. 定义 2. 实现 2.1 懒汉式(线程不安全) 2.2 饿汉式(线程安全) 2.3 懒汉式(线程安全) 2.4 双重检查锁实现(线程安全) 2.5 静态内部类实现(线程安全) 2.6 ...
- Java 桶排序,详细分析
一.简介 桶排序也是时间复杂度仅为 O(n) 的一种排序方法,它假设输入数据服从均匀分布,我们将数据分别放入到 n 个桶内,先对桶内数据进行排序,然后遍历桶依次取出桶中的元素即可完成排序. 和计数排序 ...
- Java基础之多线程详细分析
在了解多线程之前,先来了解一下进程与线程之间的关系. 进程和线程: 进程是指在系统中正在执行的一个程序,每个进程之间是独立的. 线程是进程的一个基本执行单元.一个进程要想执行任务,必须得有线程(每1个 ...
最新文章
- DIV同时使用两个class
- c# 泛型有什么作用?
- Linux 学习 Ubuntu 12.04 配置指南
- 【setup.py编译出错】——提示无法查找到powershell.exe
- android 系统之ContentProvider
- javascript常用内置对象总结(重要)
- 平纹、斜纹、缎纹是什么?各自有何特点?
- Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException 异常
- 机器学习第3周:算法学习
- Metasploit之——社会工程学工具包
- JN5169 ZigBee 3.0 协议栈之 ZPS 配置编辑器
- 利用 Google 搜索学术论文和资源的一些心得
- 为什么计算机休眠风扇还转,Win10电脑睡眠但风扇还在转怎么办
- 谷粒商城【商城系统】完整总结
- what is the mes (mes系统是什么)
- 关于家用路由器下挂多个设备包括下挂路由器的操作
- 国内安卓统一推送通道
- 嵌入式系统考试题库(CSU)
- Unity学习笔记(实现传送带)
- 说说我自己对于 基金 股票 的理解