Integer & int & == & equals
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的更多相关文章
- list<Integer>,Integer[],int[]之间的互转(jdk1.8)
偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多. List<Integer> list = new ArrayList& ...
- String,Integer,int类型之间的相互转换
String, Integer, int 三种类型之间可以两两进行转换 1. 基本数据类型到包装数据类型的转换 int -> Integer (两种方法) Integer it1 = new I ...
- Integer ==与Equals【原创】
package Equals; public class IntegerEquals { public static void main(String[] args) { printLine(128) ...
- IntegerCache缓存占用堆、栈、常量池的问题,自动拆装箱的基本概念,Integer==int时的问题说明
原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 先普及一个基本概念:Java中基本数据类型的装箱和拆箱操作 自动装箱 在JDK5以后,我们 ...
- mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
使用mysql的时候,用到int类型的蛮多,需要注意一下: 1. 值的范围 Type Storage Minimum Value Maximum Value (Bytes) (Signed/Uns ...
- Java中List, Integer[], int[]的相互转换
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Mai ...
- LeetCode 7 Reverse Integer & int
Reverse Integer 想用余10直接算,没想到 -123%10 是 7, 原因 -123-(-123//10*10) r=a-n*[a/n] 以上,r是余数,a是被除数,n是除数. 唯一不同 ...
- 7.Reverse Integer (INT; Overflow)
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 思路:要注意溢出 ...
- LeetCode 7 Reverse Integer int:2147483647-2147483648 难度:2
https://leetcode.com/problems/reverse-integer/ class Solution { public: int inf = ~0u >> 1; in ...
随机推荐
- 【追寻javascript高手之路05】理解事件流
前言 新的一天又开始了,我们对今天对未来抱有很大期待,所以开始我们今天的学习吧,在此之前来点题外话,还是爱好问题. 周三的面试虽然失败,但是也是很有启迪的,比如之前我就从来没有想过爱好问题,我发现我的 ...
- sharepoint2010问卷调查(2)-实现问卷的图片调查(采用自定义字段类型)
1. 首先建立个图片库上传图片 并建立文件夹1和2,1下有1.1文件夹,2下2.1文件夹,2.1下有文件夹2.1.1. 在1文件夹下放如下图片: 2.建立自定义字段类型,如下图: 3.部署后建立栏目的 ...
- Convert.ChangeType不能处理Nullable类型的解决办法
在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable类型,比如int?. 解决办法也很简单,贴出完整的代码(大部分代码来自网络),注意下面代码没经过完 ...
- yii 的网址收藏
http://blog.csdn.net/yuhui_fish/article/details/7656929 YII框架多子域名同步登录问题 http://blog.csdn.net/yuhui_f ...
- 简单粗暴的对android so文件加壳,防止静态分析
转载自http://bbs.pediy.com/showthread.php?t=191649 以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路.最近翻看各种资料,有了一些思路.看到论坛 ...
- Android Studio 2.2新功能预览
升级SDK可用Background 多加了个按钮,可用一边写代码一边下载SDK Instant Run 修改代码一秒启动 APK analyzer 分析任何的APK 查看APK下载包的大小,解压后的实 ...
- nav布局 在线演示 DIVCSS5
<!doctype html> nav布局 在线演示 DIVCSS5 传统 div ul li布局导航条效果 网站首页 HTML教程 HTML入门 HTML5教程 CSS教程 CSS入门 ...
- 分享 | Git常用的一些命令
最近,各个项目团队已经全面从svn转向Git 近期将会分享一些Git的常用操作及使用经验: 先了解下工作中一些需要用到的命令: --------------------------- Git基本常用命 ...
- 深入解析Windows操作系统笔记——CH1概念和术语
1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具 1.1操作系统版本 1.2基础概念和术语 1.2.1Windows API 1.2.2 服务.函数和例程 1.2.3 ...
- Thrift 跨服务开发框架
Thrift概述 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP,Ruby, Erla ...