integer对应java类型_Java中的Integer和int等包装类和基本数据类型简单比较

在初学Java时我们接触到的都是一些基本的数据类型,比如int , float,double等。但是对于高等语言JAVA等面向对象的语言来说,一切都是对象。如此看来这些基本数据类型显得就有些‘单薄’--------它只有一个值。这点令我们在面向对象编程时多少有些不适。因为我们考虑的对象是方法和属性的集合。基于此,这些基础数据类型的包装类就产生了。

二者之间的关系:

(1)包装类和基本数据类型相对应。除了8大基本数据类型的包装类外还有两个BigInteger和BigDecimal。通常用在科学计算中,也就是如果你的数子大于2(31)括号内为平方,不妨用下这个。用法可以参考基本数据类型。这两个包装类前者是整型后者是实数类型。

(2)包装类声明的是一个引用,基本数据类型是值。这是最大的区别,因为我们操作对象其实都是在操作对象的一个引用。举一个最常用的java集合类HashSet里面存储的都是引用。

public static void main(String[] args){

Set aset=new HashSet();  //这里存储的都是引用,另外注意这里的Integer泛型,也表明HashSet内部必须是对象。

Integer a=200;    //很奇怪这里并不是一个创建类对象最常用的方式?没错,Java实现了对应类型之间的自动转换,谓之曰:自动封箱

Integer b=200;

System.out.println(a==b);//这里输出的是false??

aset.add(3);//自动将3封箱成Integer对象

System.out.println(a.compareTo(2));  //a为对象有方法可以调用,如果为基本数据类型,则什么都没有。

System.out.println( a.toString()); //Integer类型的方法,很方便。

}

上面的语句明明相等,为什么还会是false呢?换成100,输出true了?原来这里Integer类中有一个缓存机制,设计者认为通常-128--127之间的数为常用数字,如果你用上面的方式来使用这些类则在上述区间内系统还是会把它当成基本数据类型来对待,不会自动装箱为一个对象;如果你用Integer a=new Integer(100)的使用方式,就是在明确告诉系统忽略数字大小直接给我生成一个新的对象,我们知道对象是基于引用。引用地址不同自然数就不同。所以这种使用方式之间的比较无论数字大小,一律false。关于缓存的一些机制信息请参阅http://blog.sina.com.cn/s/blog_7ffb8dd5010123lt.html。比较其实比较的依然是地址,但是缓存机制的存在使得可以节省空间。比如大量运算中只涉及到某一值时缓存机制省去了不停开辟新地址,创建新对象的麻烦。

在java中除了Integer有缓存机制同样的缓存机制类型还有Short,Byte,Character,Long。浮点型没有该机制,这种使用机制多采用类似Integer a=Integer.valueOf(200)的方法。

大小范围除Character为0-127外其余均为-128--127.

public static void main(String[] args){

Integer a=Integer.valueOf(100);

Integer a1=Integer.valueOf(100);

System.out.println(a==a1);

Character b=Character.valueOf('c');

char b1='c';

System.out.println(b1==b);

Byte c=Byte.valueOf((byte) 100);//这里value内的值必须是byte类型,必须强制转换类型,否则出错。byte数据类型在处理网络或文件数据流时特别有用。

Byte c1=Byte.valueOf((byte) 100);//对于byte总有种既熟悉又陌生的感觉,如果谁有这方面介绍的资料请贴在评论处,感激不尽。

System.out.println(c==c1);

}

输出结果全部为true。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] 网页上的验证码是为了解决什么问题?说说你了解的验证码种类有哪些

[html] 网页上的验证码是为了解决什么问题?说说你了解的验证码种类有哪些 解决的问题:防止机器行为,确定是人为操作,比如登陆、发帖等。保护服务器,比如12306买票的时候,各种抢购的时候。验证码的类型&…

nodejs接收post数据

var qsrequire(querystring);var obj"";req.on(data,function(data1){ //数据较大,分多次接收objdata1;})req.on("end",function(){ //接收完成后的操作objqs.parse(obj);res.writeHead(200, { content-type:text/html;charsetutf-8});res.wr…

uushare新增类似美味(del.icio.us)的书签服务

书签是用于收藏网址的一种工具(又称为网络收藏夹),通过它你可以将常访问的网站或平时发现感兴趣的网址收藏起来。 跟浏览器中的收藏夹不同,书签的优点是可以随时随地收藏大量的网址并且便于管理和寻找,同时不用担心因系…

java owl文件_jena解析.owl文件 实现owl文件的解析 - 下载 - 搜珍网

压缩包 : dca8341a689eea992f7e364244ae0.zip 列表jenaApp/jenaApp/.classpathjenaApp/.projectjenaApp/.settings/jenaApp/.settings/.jsdtscopejenaApp/.settings/org.eclipse.jdt.core.prefsjenaApp/.settings/org.eclipse.wst.common.componentjenaApp/.settings/org.eclip…

[html] 说说你对HTML元素的显示优先级的理解

[html] 说说你对HTML元素的显示优先级的理解 这个我记得前面的已经提过了,无非就是frameset优先级最高 z-index可以提高同等级的元素的显示 再一个就是有窗口的比没窗口的高 表单元素比非表单元素优先级高个人简介 我是歌谣,欢迎和大家一起交流前后端知…

HttpClient系列~StringContent与FormUrlEncodedContent

知识点 本文是一个很另类的文章,在项目中用的比较少,但如果项目中真的出现了这种情况,我们也需要知道如何去解决,对于知识点StringContent和FormUrlEncodedContent我们应该了解的多一点,FormUrlEncodedContent是以键/值…

2008年12月31日,博客园开博

今天是美好的一天,天气晴朗,鸟语花香。呃。。好像没鸟也没花。。大冬天的。。好冷哦! 今天是08年的最后一天,08年发生了很多震惊世界的事情。 所以我打算保留对08年的记忆。 去感谢一些人,去忘掉一些人,去追…

java web 多语言_基于 Selenium WebDriver 实现多语言环境下自动化截图

到此,一个 Junit4 test case 就在 Eclipse 中建成 , 如代码清单 1.清单 1. 将脚本导入 Eclipsepackage com.example.casePackage; import static org.junit.Assert.fail ; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Bef…

[html] Standards模式和Quirks模式有什么区别?

[html] Standards模式和Quirks模式有什么区别? 怪异盒模型:元素内容宽度width-margin2-border2-padding2?其实我建议这样说 标准盒模型:元素内容宽度width,元素实际宽度margin2border2padding2width 怪异盒模型:元素…

IP通信基础 4月28号

冗余拓扑: 环路带来的问题:广播风暴;帧的重复复制;交换机MAC地址表的不稳定。 STP相关概念: 桥ID;端口ID;根桥;非根桥;根端口;指定端口;阻塞端口&…

成功有感之给年轻人的10个忠告

1、努力工作要努力,随随便便过日子过四五年也是过,稍微努力的过四五年也是过,努力的过四五年也是过,何不努力好好的干。如果努力的过好毕业后的四五年,这对我们以后的人生非常有帮助。2、虚心学习多与比自己大的人(长辈…

[html] HTML与XHTML二者有不同

[html] HTML与XHTML二者有不同 XHTML 标签必须关闭XHTML所有标签必须小写XHTML标签必须正确嵌套个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

java 编译参数_java – 为什么要编译?代码似乎打破了类型参数的约束

在下面的测试中,TesterClass对其两个类型参数之间的关系设置了约束.方法func2()似乎打破了这个约束,我希望它会在某处导致类型编译错误(在func2的定义中,或者每当类与String之外的任何第二个参数一起使用时),但它不会!此外,如果我调用func2并将结果保存在适当类型的…

Javascript乱弹设计模式系列(1) - 观察者模式(Observer)

前言 博客园谈设计模式的文章很多,我也受益匪浅,包括TerryLee、吕震宇等等的.NET设计模式系列文章,强烈推荐。对于我,擅长于前台代码的开发,对于设计模式也有一定的了解,于是我想结合Javascript来设计前台方…

oracle中出现会话被锁

v$locked_object视图列出当前系统中哪些对象正被锁定 --查询被锁session_id select session_id from v$locked_object; -- SELECT sid, serial#, username, osuser FROM v$session where sid 396; --杀掉一个会话进程 ALTER SYSTEM KILL SESSION 396,17429; 转载于:https://ww…

[html] title与h1、b与strong、i与em的区别分别是什么?

[html] title与h1、b与strong、i与em的区别分别是什么? title标签写在body里面不会被渲染,只能写在head里面,对网站SEO比较重要h1标签写在body里面,但是写在head里(不推荐),渲染的时候会自动渲染到body里面去b标签与strong标签在表现上是一样的,都自带font-weight: …

【JS】JS中数值型字符串相加变成拼接字符串的解决方法

一、问题描述 数值型的字符串,通过、 运算符连接后,变成了字符串拼接,而不是数值计算。 先上图: 二、错误原因 这是由于JS中、 运算符既是算术运算符,也是字符串的连接符> 的运算规则是:如果把数字与字符…

[html] html5都有哪些新的特性?移除了哪些元素?

[html] html5都有哪些新的特性?移除了哪些元素? 新增特性canvassvgvideodrag & droplocalStorage/sessionStorage语义化标签: header/nav/section/article/footerinput 类型: date/datetime/email/range移除元素appletbigfontframe/frameset个人简介…

安卓JAVA调用lua_android中java与lua的相互调用

Android Studio Lua环境配置开发环境1. Android Studio 3.52. java sdk: 1.8.03.android sdk:28配置环境添加lua支持语法支持插件,打开android studio -> File -> Settings三方库选择参考文章:https://gameinstitute.qq.com/community/…

过年之-防飞车贼

1、飞车贼最喜欢在马路边和小巷子里下手。 2、当你在偏僻路段单独行走时,听到后面有靠近的车声,提高警惕,注意避让尾随跟踪、企图接近的摩托车。 3、对于可疑车辆、人员要提高警惕,特别是两个人的摩托车:飞车贼寻找目标…