Java中int与integer的区别(基本数据类型与引用数据类型)
一、先说说int与integer的区别
int 是基本数据类型,默认值为0,不需要进行实例化
integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化。
基本数据类型是可以用“==”进行比较,而引用数据类型则不可以,一般是通过equals方法来实现比较。
二 、再说说基本数据类型与引用数据类型的区别?
特点:
1、从概念方面来说
基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值
2、从内存构建方面来说
基本数据类型:变量在声明之后java就会立刻分配给他内存空间
引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。
3、从使用方面来说
基本数据类型:使用时需要赋具体值,判断时使用“==”号
引用数据类型:使用时可以赋null,判断时使用equals方法
以上所述是小编给大家介绍的Java中int与integer的区别(基本数据类型与引用数据类型),希望对大家有所帮助!
相关推荐
-
Java中Integer两种转int方法比较
方法一: Integer.parseInt(); 返回的是一个 int 的值. 方法二: new Integer.valueof(); 返回的是 Integer 的对象. new Integer.valueof().intValue(); 返回的也是一个 int 的值. 笔试应用例题: 设有下面两个赋值语句: a = Integer.parseInt("123"); b = Integer.valueOf("123").intValue(); 下述说法正确的是(
-
java中的Integer的toBinaryString()方法实例
在一次面试的过程中,遇到过这样的题目,题目的大概意思是:让写出Integer类中的toBinaryString()方法 也就是说,把Integer转换为Binary的过程写出来 但是我蒙的,在查了JDK的源码,发现了这个很好用的方法,在此给大伙看看 下面是我做的一个测试: 复制代码 代码如下: /** * */package com.b510.test; /** * @author Hongten * @date 2013-12-15 */public class TestF { public
-
Java源码解析Integer方法解读
toUnsignedString方法解读 看到Integer中有这样的一个方法把int转为Unsigned类型的字符串,但是有几个点不是很清楚,经过查询资料弄懂了,解读如下: /** * Convert the integer to an unsigned number. */ private static String toUnsignedString(int i, int shift) { char[] buf = new char[32]; int charPos = 32; int ra
-
Java中关于int和Integer的区别详解
1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者,integer 是后者(也就是一个类). 2.初始化时 复制代码 代码如下: int i = 1; Integer i = new Integer(1); // (要把integer 当做一个类看) int 是基本数据类型(面向过程留下的痕迹,不过是对Java的有益补充) Integer 是一个类,是int的扩展,定义了很多的转换方法 类似的还有:float Float.double Double.string Stri
-
浅析java中Integer传参方式的问题
Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层.而且这里Integer对象也有特殊性.其实现上可能类似 复制代码 代码如下: class Integer{final int value; //一旦赋值,就不能改变.} 这就出现:调用时传的地址值不能改变外层+对象本身又不能改变.导致这个值没法改变 解决方案很多1.java风格就是,单个值用返回值.return i; 外面再i=foo();赋值:多个值用数组或对象.2.传递自己的封装类.class
-
细数java中Long与Integer比较容易犯的错误总结
今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较. 其实这样是错误的. 因为Long与Ineger都是包装类型,是对象. 而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的. 但是有一种特殊情况, 其实Long与Integer都将 -128~127 这些对象缓存了. 可以看看Long类
-
Java中对AtomicInteger和int值在多线程下递增操作的测试
Java针对多线程下的数值安全计数器设计了一些类,这些类叫做原子类,其中一部分如下: java.util.concurrent.atomic.AtomicBoolean; java.util.concurrent.atomic.AtomicInteger; java.util.concurrent.atomic.AtomicLong; java.util.concurrent.atomic.AtomicReference; 下面是一个对比 AtomicInteger 与 普通 int 值在多线
-
Java int与integer的对比区别
Java int与 integer区别: int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1:Integer i= new Integer(1);(要把int
-
Java基本数据类型与封装类型详解(int和Integer区别)
int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer.在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字
-
java 整型数与Integer的缓存深入理解
深入理解java 整型数, Integer的缓存 Integer类实质上也是一个普通的java类,即使值相同,也是不同的对象. 例如 Integer a = 148; Integer b = 148; System.out.println(a==b); 这时输出为false. 很容易理解. 但是如果把值换成48. Integer a = 48; Integer b = 48; System.out.println(a==b); 这时就会发现输出变成了true.原因是jdk对128以下的整数作了缓
随机推荐
- Javascript无阻塞加载具体方式
- 先装VS再装IIS时出错的解决方法
- 学习PHP Cookie处理函数
- python测试驱动开发实例
- 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
- Java中 shuffle 算法的使用
- XMLHttpRequest处理xml格式的返回数据(示例代码)
- jquery随机展示头像代码
- 基于JavaScript操作DOM常用的API小结
- js图片轮播手动切换效果
- IntelliJ IDEA 2017.1.4 x64配置步骤(介绍)
- 一个PHP实现的轻量级简单爬虫
- Java中启动线程start和run的两种方法
- OpenGL Shader实例分析(3)等待标识效果
- PHP SESSION机制的理解与实例
- Flutter 封装一个 Banner 轮播图效果的实例代码
- Nginx进行域名重写和泛域名解析配置的方法
- JavaWeb项目部署到服务器详细步骤详解
- vue里面父组件修改子组件样式的方法
- 详解Spring Security的formLogin登录认证模式