Java, Long类型值比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dear_Alice_moon/article/details/83344932

        Java中, Long类型是long的包装类。 在进行 Long类型的对象比较中,需要弄清楚Long类型的对象是比较具体的值是否相等,还是需要比较对象是否相同。  

        若要对本文的Demo有一个更好的理解,可以先观看博客:  【java】Long.valueOf()和longValue()区别       

         以下是2个小Demo的例子:

         Demo1, User.java类          

package com.test.fastJson.entity;

public class User {
	
	public String name;

	public int age;

	public String sex;
	
	public Long phoneNumber;  // 电话号码, 暂且使用该数据类型.
	
	
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + ", sex=" + sex + ", phoneNumber=" + phoneNumber + "]";
	}
	
	public User(int age, String sex) {
		super();
		this.age = age;
		this.sex = sex;
	}
	
	public User(String name, int age, String sex, Long phoneNumber) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phoneNumber = phoneNumber;
	}

	public User() {
		super();
	}
	
	
	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;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Long getPhoneNumber() {
		return phoneNumber;
	}

	public void setPhoneNumber(Long phoneNumber) {
		this.phoneNumber = phoneNumber;
	}
	
}

      

         Demo1, Test7.java类          

package com.test.fastJson;

import com.alibaba.fastjson.JSON;
import com.test.fastJson.entity.User;

public class Test7 {
	
	public static void main(String[] args) {
		
		User user = new User("张三", 23, "男", 12345678L);
		
		System.out.println("user为:" + user);
		System.out.println("----------------------------------------");
		
		System.out.println("'user.getPhoneNumber()' 与 '12345678L' 是否相等: " + (user.getPhoneNumber() == 12345678L));     
		System.out.println("----------------------------------------");
		
		System.out.println("'user.getPhoneNumber().longValue()' 与 '12345678L' 是否相等: " + (user.getPhoneNumber().longValue() == 12345678L));     
		System.out.println("----------------------------------------");
		
		
		Long test = 12345678L;
		System.out.println("'user.getPhoneNumber()' 与 'test' 是否相等:" + (test == user.getPhoneNumber()));
		System.out.println("----------------------------------------");
		
		System.out.println("'user.getPhoneNumber().longValue()' 与 'test' 是否相等:" + ( test == user.getPhoneNumber().longValue() ) );
		System.out.println("----------------------------------------");
		
		
	}
	
	
}

      运行结果如下图一所示:

                                                                                                    图一

         Demo2,  Test8.java类          

package com.test.fastJson;

public class Test8 {
	
	public static void main(String[] args) {
		
		long num1 = 1234567;
		long num2 = 1234567;
		
		System.out.println(" 'num1' 与  'num2' 是否相等:" + (num1==num2));
		
	}
	
}

      运行结果如下图二所示:

                                                                                                    图二

         对于文中Demo1中的例子,下列的情况,我也不是很明白其中的原理是什么!如果有哪位小伙伴懂,可以指定一二,谢谢。对Java理论知识、基础知识非常缺乏的我,有时在编程时真的感到好“难受”, 有小伙伴可以指点我一二么? 谢谢 

	(user.getPhoneNumber() == 12345678L) 为:true,  
	(user.getPhoneNumber().longValue() == 12345678L) 为 true, 
	(test == user.getPhoneNumber()) 为:false,
	(test == user.getPhoneNumber().longValue()) 为:true

猜你喜欢

转载自blog.csdn.net/dear_Alice_moon/article/details/83344932