java对象的比较分析
User u1=new User("Tom");
User u2=new User("Tom");
User u3=u1;
u3.setName("Jack");
u1==u3//true
u1.equals(u3)//true
u1==u2//false;
u1.equals(u2)//false
String s1=new String("hello");
String s2=new String("hello");
s1==s2//false,按地址进行比较
s1.equals(s2)//true, 已重写,按值进行比较
public boolean equals(Object o)
{
//如果和自身比较,返回TRUE
if(this==o) return true;
//如果不是这个类的实例,返回FALSE
if(!o instanceof User) return false; final User u=(User)o
if(this.getName().equals(u.getName())
return true;
else
return false;
}
package javacompareDemo;
//对象的比较
class person{
private String name;
private int age;
public person(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//这里注意,比较操作是应该发生在person类内部函数上的
public boolean compare(person per){
if(this==per)
return true;
if(this.name.equals(per.name)&&this.age==per.age)
return true;
else
return false;
} }
public class ClassCompare1 { public static void main(String[] args) {
person per1 = new person("影流之主",19);
person per2 = new person("放逐之刃",18);
person per3 = new person("影流之主",19);
System.out.println(per1.compare(per2));
System.out.println(per1.compare(per3));
}
}
java对象的比较分析的更多相关文章
- 理解Java对象:要从内存布局及底层机制说起,话说….
前言 大家好,又见面了,今天是JVM专题的第二篇文章,在上一篇文章中我们说了Java的类和对象在JVM中的存储方式,并使用HSDB进行佐证,没有看过上一篇文章的小伙伴可以点这里:<类和对象在JV ...
- 源码分析:Java对象的内存分配
Java对象的分配,根据其过程,将其分为快速分配和慢速分配两种形式,其中快速分配使用无锁的指针碰撞技术在新生代的Eden区上进行分配,而慢速分配根据堆的实现方式.GC的实现方式.代的实现方式不同而具有 ...
- JVM源码分析之Java对象头实现
原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 “365篇原创计划”第十一篇. 今天呢!灯塔君跟大家讲: JVM源码分析之Java对象头实现 HotSpot虚拟机中,对象在内存中的布局分为三 ...
- JAVA对象分析之偏向锁、轻量级锁、重量级锁升级过程
在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding). 对象头 HotSpot虚拟机(后面 ...
- java内存区域分析及java对象的创建
java虚拟机在执行java程序的过程中会将它管理的内存区域加分为若干个的不同的数据区域. 主要包括以下几个运行时数据区域,这里就只介绍经常会用到的 1:java虚拟机栈:我们常说的堆栈,栈就是指的j ...
- 使用Gson转换json数据为Java对象的一个例子
记录工作中碰到的一个内容. 原料是微信平台的一个接口json数据. { "errcode" : 0, "errmsg" : "ok", &q ...
- Java 类反射机制分析
Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...
- 玩转Java对象和XML相互转换
最近在项目中一直出现Java对象和XML之间的相互转换,一开始由于项目很庞大,我又是临时调度过去,导致在按照项目组长的要求进行写代码的同时,总是在这块云里雾里,最近才慢慢开始搞清楚项目中具体的使用缘由 ...
- Java提高篇——通过分析 JDK 源代码研究 Hash 存储机制
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实 ...
随机推荐
- [分 享] PHPCMS V9 更换域名,附件地址无法批更新(更换变便)问题>解决方法!!
大家应该都有在域名更换(比如说,从本地上传到空间)的情况下,用内容>附件管理>附件地址替换 功能. 基本上替换不了所有表中原来域名的地址. 现PHPCMS V9最新版本的依旧存在些问题. ...
- [LeetCode]题解(python):151-Reverse Words in a String
题目来源: https://leetcode.com/problems/reverse-words-in-a-string/ 题意分析: 给定一个字符串,里面包括多个单词,将这个字符串的单词翻转,例如 ...
- VB 字符串函数总结
'###################################################### 1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符 ...
- [原]命令模式在MVC框架中的应用
其实在项目开发中,我们使用了大量的设计模式,只是这些设计模式都封装在框架中了,如果你想要不仅仅局限于简单的使用,就应该深入了解框架的设计思路. 在MVC框架中,模式之一就是命令模式,先来看看模式是如何 ...
- c语言libcurl 使用实例get/post方法+c语言字符串处理
#include <stdio.h> #include <curl/curl.h> #include <string.h> #include <ctype.h ...
- 折腾slidingmenu
转自自己jekyll博客 alanslab.cn 第一次用gimp做这么大工程,出乎意料,蛮好用的.以前ps倒是蛮熟练的,只摸 过两下gimp,感觉望而生畏.今天硬着头皮折腾了一阵子,发现最起码上图可 ...
- padding-top、margin-top和top的区别
padding-top:10px;是指容器内的内容距离容器的顶部有10个像素,是包含在容器内的: margin-top:10px;是指容器本身的顶部距离其他容器有10个像素,不包含在容器内: top: ...
- 使用hibernate 分表做增删改查
公司项目有一张表的数据量特别大.而且时间越长累积的数据量就越大. 后来DBA决定分表来解决性能问题. 分表是指 一个母体表 一群子表(结构和字段与母体表完全一样) 我们程序对母表操作其实就是对子 ...
- Windows Server 2012 R2超级虚拟化之六 Hyper-v Replica 2.0和Live migrations
Windows Server 2012 R2超级虚拟化之六 Hyper-v Replica 2.0和Live migrations 分钟复制选项也是非常有用的.Hyper-V Replica 2.0在 ...
- Dot模板的使用小结2
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...