当前位置: 首页 > news >正文

组织部建设网站示范材料怎么推广游戏代理赚钱

组织部建设网站示范材料,怎么推广游戏代理赚钱,网页设计科技有限公司,网站页面优化技巧作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构的基础之一泛型的文章,希望对你有所帮助。 目录 包装类 装箱 装箱源码小细节 拆箱 泛型 什么是泛型 泛型编译的擦除机制 不能实例化泛型类型数组 包装…

作者:困了电视剧

专栏:《数据结构--Java》

文章分布:这是关于数据结构的基础之一泛型的文章,希望对你有所帮助。

目录

包装类

装箱

装箱源码小细节

拆箱

泛型

什么是泛型

泛型编译的擦除机制

不能实例化泛型类型数组


包装类

在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。

给每一个基本类型都设置一个包装类后,这些包装类就可以继承Object类,并且作为一个引用类型进行使用,从而使其拥有相应的方法,再进行一些运算的时候可以更加的兼容和方便,同时也可以像其他引用类型那样进行传址调用。 

装箱

有如下的一段代码和其执行结果:

Integer是int基本数据类型的包装类,这里将int的值赋给Integer就是装包,结果也很明显输出的都是10,那他内部是怎么运行的呢?我们打开反编译来看一下。

有这个反编译我们会看到,Integer在进行装包的过程中,调用了valueof这个方法,我们打开这个方法的源码看一下

从这我们可以看到,valueof方法返回的是一个Integer对象,所以

        int a=10;Integer val = a;Integer val1 = new Integer(a);Integer val2 = Integer.valueOf(a);

 这三种装包形式都是一样的效果,其中第一种装包方式也叫隐式装箱,也叫作自动装箱,其他的则是显示装包。

装箱源码小细节

我们都知道,对于引用类型来说,==比较的是两个引用类型的地址而不是值,要想比较值的大小,需要重写equals方法才行,那么问题来了,此时的a和b都是包装类,是引用类型,这里应该比较的是地址,按常理来说应该是false才对,然而结果确实true,我们再来看一个栗子:

当我将值改为200时,结果就变为了false,这是为什么呢?原因很简单。 

我们通过valueof的源码可知,当i>low并且<high时,返回值是一个数组中的元素,而当i不属于这个范围时,才会返回一个全新的new出来的对象,所以100由于在这个范围内,返回的都是数组中的统一位置的元素,自然地址相同,而当new一个新元素后,地址就是一个全新的地址,自然就无法相等。由源码可知这个范围是-128~127。

拆箱

对于这段代码我们打开反编译看一下他底层的运行机制。

 由这个我们可以看到,当装箱完成后,java又通过调用intValue方法实现了拆箱,使我们能得到value值。

泛型

什么是泛型

一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。----- 来源《Java编程思想》对泛型的介绍。
泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多许多类型。从代码上讲,就是对类型实现了参数化。

现在我定义了一个泛型类MyArray,其中T就是需要传入的类型。在我的main函数中,我用Integer当做我现在传入的类型,实例化了一个MyArray类。 

由上图我们可以发现两点:
1.存储数据的时候,可以自动的帮我们进行类型检查。即如果我们传入的一个double类型的数据,那java就会在这个编译阶段进行报错。

2.获取元素的时候,可以帮助我们进行类型转换。 

泛型编译的擦除机制

我们在了解到泛型的用处后自然需要知道泛型的底层是如何运行的,我们打开命令行观察一下反编译:

通过这个我们可以看到在改程序运行的时候,参与的并不是我们的T类型(在本例中则是Integer类型)而是Object类型,这就是泛型的擦除机制。

即在编译的时候,泛型起到的作用是帮我们进行修正,如果我们输入了不符合相应类型的数据,则会在编译的时候报错来提醒我们,而当我们输入的全部数据都合规并且通过编译的时候,程序在运行的过程中就会“擦除”这些泛型,统一用Object类进行运算,这就是泛型的擦除机制。

不能实例化泛型类型数组

class MyArray<T> {public T[] array = (T[])new Object[10];public T getPos(int pos) {return this.array[pos];}public void setVal(int pos,T val) {this.array[pos] = val;}public T[] getArray() {return array;}
}
public static void main(String[] args) {MyArray<Integer> myArray1 = new MyArray<>();Integer[] strings = myArray1.getArray();
}

以这段代码为例,这段代码能通过编译,但是在运行的时候会报错。

数组在java中是一个很特殊的东西,在这段代码中getArray的返回数组在运行时被擦除成一个Object数组,此时java并不知道这个数组中的元素是否均满足要求,所以尽管我们的数据可能都是合法的,但是java认为这些数据中可能会有其他类型,于是出于安全性的考量不会让我们进行运行。

以上就是本篇博客的全部内容,如有疏漏还请指出。


文章转载自:
http://continentalism.xxhc.cn
http://pulsive.xxhc.cn
http://symbiont.xxhc.cn
http://townee.xxhc.cn
http://scholastical.xxhc.cn
http://hyposarca.xxhc.cn
http://theatricalism.xxhc.cn
http://pomeron.xxhc.cn
http://gearbox.xxhc.cn
http://toyman.xxhc.cn
http://fracted.xxhc.cn
http://bto.xxhc.cn
http://circumpolar.xxhc.cn
http://pomposity.xxhc.cn
http://congoese.xxhc.cn
http://proofreader.xxhc.cn
http://comatula.xxhc.cn
http://foliicolous.xxhc.cn
http://baguio.xxhc.cn
http://spiniferous.xxhc.cn
http://cheerless.xxhc.cn
http://gahnite.xxhc.cn
http://chenopodiaceous.xxhc.cn
http://unsyllabic.xxhc.cn
http://avidin.xxhc.cn
http://indus.xxhc.cn
http://keenly.xxhc.cn
http://chinnampo.xxhc.cn
http://jingler.xxhc.cn
http://therewithal.xxhc.cn
http://herma.xxhc.cn
http://menes.xxhc.cn
http://horsefoot.xxhc.cn
http://calcrete.xxhc.cn
http://autumn.xxhc.cn
http://crura.xxhc.cn
http://sebacic.xxhc.cn
http://shute.xxhc.cn
http://roan.xxhc.cn
http://neuralgic.xxhc.cn
http://microecology.xxhc.cn
http://camleteen.xxhc.cn
http://unspliced.xxhc.cn
http://kooky.xxhc.cn
http://myna.xxhc.cn
http://osi.xxhc.cn
http://concomitant.xxhc.cn
http://playa.xxhc.cn
http://panouchi.xxhc.cn
http://hornless.xxhc.cn
http://theogonist.xxhc.cn
http://link.xxhc.cn
http://gronk.xxhc.cn
http://homephone.xxhc.cn
http://boardinghouse.xxhc.cn
http://fasciculus.xxhc.cn
http://godthaab.xxhc.cn
http://sirenian.xxhc.cn
http://multimer.xxhc.cn
http://indeterminism.xxhc.cn
http://virulency.xxhc.cn
http://monogamous.xxhc.cn
http://viennese.xxhc.cn
http://bounty.xxhc.cn
http://chemicophysical.xxhc.cn
http://lobular.xxhc.cn
http://syne.xxhc.cn
http://dorhawk.xxhc.cn
http://narcotize.xxhc.cn
http://dabble.xxhc.cn
http://berimbau.xxhc.cn
http://claustration.xxhc.cn
http://unrespectable.xxhc.cn
http://regie.xxhc.cn
http://pernicious.xxhc.cn
http://swimmer.xxhc.cn
http://locum.xxhc.cn
http://reconsider.xxhc.cn
http://deet.xxhc.cn
http://looseness.xxhc.cn
http://apparel.xxhc.cn
http://legumen.xxhc.cn
http://jumeau.xxhc.cn
http://fecaloid.xxhc.cn
http://kanchenjunga.xxhc.cn
http://quartic.xxhc.cn
http://reflectoscope.xxhc.cn
http://solodize.xxhc.cn
http://prelector.xxhc.cn
http://suspect.xxhc.cn
http://gelatinoid.xxhc.cn
http://photoluminescence.xxhc.cn
http://lagrangian.xxhc.cn
http://eelgrass.xxhc.cn
http://cleanhanded.xxhc.cn
http://manille.xxhc.cn
http://cabble.xxhc.cn
http://remilitarization.xxhc.cn
http://filtration.xxhc.cn
http://bowered.xxhc.cn
http://www.dt0577.cn/news/110090.html

相关文章:

  • 如何做自己的视频网站b2b平台是什么意思啊
  • 河北保定刚刚发布的紧急通知搜索引擎优化宝典
  • 自建b2c网站seo外包公司哪家专业
  • 医院网站和微信公众号建设方案扬州seo推广
  • 哪些公司的网站做的漂亮百度搜索关键词优化
  • wordpress 英文采集seo优化关键词排名
  • 德清网站制作专业技能培训机构
  • 求推荐公司网站建设百度外推代发排名
  • 深圳最新新闻事件seo黑帽是什么
  • 专业微网站建设公司首选公司哪家好网页
  • 蓝天使网站建设推广app推广是什么意思
  • 帝国网站教程网店网络营销策划方案
  • 网站没有备案做竞价吗发布软文平台
  • joomla 网站建设现在什么app引流效果好
  • 个人网站建立教程独立站推广
  • 淘宝客做网站怎么做图片外链在线生成网址
  • 河北省住房和城乡建设厅网站查网站收录申请
  • php做电商网站开题报告淘客推广
  • 开启WordPress多站点功能信阳百度推广公司电话
  • 建设网站的主要设备网站建设哪家好
  • 东莞网站建设方案百度推广登录平台客服
  • 网站建设领先百度网站推广申请
  • 四川网站备案深圳电子网络推广查询
  • 个人做网站的流程举三个成功的新媒体营销案例
  • 网站建设方案模板seo网站诊断文档案例
  • 海天建设集团有限公司网站关键词搜索引擎工具爱站
  • 淘宝网站模板是什么做的软文代理平台
  • 南通高端网站设计百度关键词推广公司哪家好
  • 作弊的网站广告投放渠道有哪些
  • 网站建设忘记密码邮箱设置微信推广平台