int 是基本类型,直接存数值,integer是对象,用一个引用指向这个对象
int 是基本数据类型,Integer是类
int类的变量初始为0,Integer的变量则初始化为null. 如果只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型;
如果要像对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用
的方法。
public static void main(String args[]){
Integer i = new Integer(5);
Integer j = new Integer(5);
System.out.print(i==j);//false:比较的是i与j,new后是申请了两块内存分别用来存放5,两块内存不同
System.out.println(i.equals(j));//true:比较的是i的内容与j的内容boolean java.lang.Integer.equals(Object obj)
String aa = "aaaaa";
String bb = "aaaaa";
System.out.println(aa.equals(bb));//boolean java.lang.String.equals(Object anObject)
/**
* i.equals(j) 与 aa.equals(bb)这两个equals分别是两个类下的函数
* Integer类下:
* public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
} String类下:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
} * */ // Integer i = -127;
// Integer j = -127;
// System.out.print(i==j);//-128~127内为true;其他的为false;因为缓存就是-128~127(1byt)
// System.out.println(i.equals(j));//true:比较的是i的内容与j的内容
/**
* 缓存
* Integer (-128~127)
* Boolean (all)
* Byte (all)
* Character (<=127)
* Short (-128~127)
* Long (-128~127)
* Float (none)
* Double (none)
* **/
// Double a = 12.1;
// Double b = 12.1;
// System.out.println(a==b);//false;Double 无缓存
// System.out.println(a.equals(b));//true
// double aa = 12.1;
// double bb = 12.1;
// System.out.println(aa==bb);//true
// //System.out.println(aa.equals(bb));
// //Cannot invoke equals(double) on the primitive type double // int i = -1288;
// int j = -1288;
// System.out.println(i==j);//true,只要两个数字相等,就是true // String a = "hello";//当创建一个字符串时,先去String poll(缓存池)内找,找到直接返回赋值
// String b = "hello";//这两个字符串都是String poll(缓存池)内的同一个
// String c = new String("hello");
// System.out.println(a==b);//true;String有缓存
// System.out.println(a==c);//false;a是缓存池内的,c是重新申请的内存占“hello”这6个字节(最后一个是结束符),两者不同
// System.out.println(a.equals(b));//true
// System.out.println(a.equals(c));//true // String i = "12";//字符串必须为数字类型的,否则会报java.lang.NumberFormatException
// int a =Integer.parseInt(i, 16);//转换为16进制
// System.out.println(a);
// int b = Integer.parseInt(i);//默认为10进制
// System.out.println(a+2); // Integer i = 1;
// i = Integer.reverse(i);//倒序
// System.out.println(i);//-2147483648
// i = Integer.reverse(i);
// System.out.println(i);//1 }

  

Integer & int & == & equals的更多相关文章

  1. list<Integer>,Integer[],int[]之间的互转(jdk1.8)

    偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多. List<Integer> list = new ArrayList& ...

  2. String,Integer,int类型之间的相互转换

    String, Integer, int 三种类型之间可以两两进行转换 1. 基本数据类型到包装数据类型的转换 int -> Integer (两种方法) Integer it1 = new I ...

  3. Integer ==与Equals【原创】

    package Equals; public class IntegerEquals { public static void main(String[] args) { printLine(128) ...

  4. IntegerCache缓存占用堆、栈、常量池的问题,自动拆装箱的基本概念,Integer==int时的问题说明

    原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 先普及一个基本概念:Java中基本数据类型的装箱和拆箱操作 自动装箱 在JDK5以后,我们 ...

  5. mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

    使用mysql的时候,用到int类型的蛮多,需要注意一下: 1. 值的范围 Type Storage Minimum Value Maximum Value   (Bytes) (Signed/Uns ...

  6. Java中List, Integer[], int[]的相互转换

    import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Mai ...

  7. LeetCode 7 Reverse Integer & int

    Reverse Integer 想用余10直接算,没想到 -123%10 是 7, 原因 -123-(-123//10*10) r=a-n*[a/n] 以上,r是余数,a是被除数,n是除数. 唯一不同 ...

  8. 7.Reverse Integer (INT; Overflow)

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 思路:要注意溢出 ...

  9. LeetCode 7 Reverse Integer int:2147483647-2147483648 难度:2

    https://leetcode.com/problems/reverse-integer/ class Solution { public: int inf = ~0u >> 1; in ...

随机推荐

  1. Number()、parseInt() 和 parseFloat() 的区别

    一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...

  2. HTML <a> 标签

    一,定义和用法 所有浏览器都支持 <a> 标签. <a> 标签定义超链接,用于从一张页面链接到另一张页面. <a> 元素最重要的属性是 href 属性,它指示链接的 ...

  3. Troubleshooting FIM: (No Display Name) in FIM Portal

    from: http://social.technet.microsoft.com/wiki/contents/articles/12682.troubleshooting-fim-no-displa ...

  4. Round in Oracle/VBA

    VBA的 Round采用的是银行家算法(rounds to the nearest even number) Round(1.5) = 2 Round(0.5) = 在Oracle中实现银行家算法 S ...

  5. .Net关闭数据库连接时判断ConnectionState为Open还是Closed?

    两种写法: if (conn.State == System.Data.ConnectionState.Open)            {                conn.Close();  ...

  6. Android布局优化策略

    我们要知道布局是否合理,可以通过Hierarchy Viewer这个工具.打开Hierarchy Viewer(定位到tools/目录下,直接执行hierarchyviewer的命令,选定需要查看的P ...

  7. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  8. react native 的js 文件从哪里获取

    /** * Loading JavaScript code - uncomment the one you want. * * OPTION 1 * Load from development ser ...

  9. Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...

  10. 搭建一个完整的Android工程(一)Dagger2

    写在前面 现在越来越多的使用到了开源项目,但是仅限于使用,却不了解,更谈不上深入.也是因为越来越多的开源项目,平时工作中遇到问题也是第一时间寻找对应的开源项目,少了许多独立的思考.现在虽然能很轻松的完 ...