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

晋城龙采网站建设论文关键词

晋城龙采网站建设,论文关键词,建设主管部门网站,discuzq主题写在开头:想必大家和博主一样,在以往学习JavaSE的语法中,遇到了一个陌生的词——泛型,博主当时很好奇,什么是泛型呢?即使是学完了JavaSE,这个问题都没有解决,只能在百度查阅了解关于泛型的一些皮…

写在开头:想必大家和博主一样,在以往学习JavaSE的语法中,遇到了一个陌生的词——泛型,博主当时很好奇,什么是泛型呢?即使是学完了JavaSE,这个问题都没有解决,只能在百度查阅了解关于泛型的一些皮毛。却不成想,在数据结构的第一课就接触到了这个问题,为了能帮助大家简单的认识泛型,博主通过学习以及查阅诸多资料,决定写下本篇博客并分享给大家,希望能够帮助到和博主当时有一样困境的小伙伴,同时博主也在持续更新各方面的知识内容,欢迎大家动动手指点个关注,第一时间阅读博主的分享内容!
同时博主也毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。接下来和博主一起学习吧!

本文内容概要:

  • 一、泛型的本质
  • 二、包装类
    • 2.1 基本数据类型
    • 2.2 装箱与拆箱
  • 三、泛型与泛型类的使用
    • 3.1泛型语法
    • 3.2使用举例
    • 3.3泛型类
  • 四、泛型编译机制
    • 4.1擦除机制
    • 4.2提出问题
  • 五、泛型上界
    • 5.1语法
    • 5.2实例
  • 泛型进阶

一、泛型的本质

我们有没有想过:实现一个类,可以放入任意类型的数据,同时也可以根据成员方法来返回对应下标的值?以往的学习过程中,我们对数组的使用是刻板的,只能单一的放入指定类型元素,我们会发现这种数组是对代码充满了束缚。所以在JDK1.5以后,我们的前辈提出了泛型这一概念来实现对类型的参数化
泛型的实质在于:指定当前的容器,他存储的对象应该是什么类型,然后通过编译器去检查,所以我们需要将类型作为参数进行传递
在介绍泛型的使用之前,我们先介绍包装类以及装箱、拆箱的有关知识,以便于我们可以深入学习泛型知识

二、包装类

2.1 基本数据类型

在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应一个包装类型。对于基本数据类型来说,除int、char以外其他基本类型都是将基本数据类型首字母大写,而int、char对应的包装类型为Integer、Character,而每个包装类底下也对应着诸多方法,我们不在此过多叙述,可以参考博主其他博客进行参考学习

2.2 装箱与拆箱

public class Fx {int i = 10;// 装箱操作,新建一个 Integer 类型对象,将 i 的值放入对象的某个属性中Integer A = Integer.valueOf(i);Integer B = new Integer(i);// 拆箱操作,将 Integer 对象中的值取出,放到一个基本数据类型中int j = A.intValue();
}

当然,我们在日常的使用中是不这样写的,因为上述的装箱与拆箱会为开发者增加不少代码量,显的比较繁琐,于是Java又引申出了自动装箱与自动拆箱的语法,如下所述:

    int i = 10;Integer A = i; // 自动装箱Integer B = (Integer)i; // 自动装箱int j = A; // 自动拆箱int k = (int)B; // 自动拆箱

相信各位老铁看到这里也不需要过多说明已经明白了装箱以及拆箱,接下来让我们去了解了解泛型究竟是个什么样的神奇语法!

三、泛型与泛型类的使用

3.1泛型语法

class 泛型类名称<泛型类型1,泛型类型2...> {// 这里可以使用类型参数
}

注意我们有个注意点【规范】:类型形参一般使用一个大写字母表示,常用的名称有:

E 表示 Element
K 表示 Key
V 表示 Value
N 表示 Number
T 表示 Type S, U, V 等等 第二、第三、第四个类型

3.2使用举例

class MyArray<T> {//T[] ts = new T[5]; 是不对的,我们在4.2讨论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 class Fx {public static void main(String[] args) {MyArray<Integer> myArray = new MyArray<>();//传入Integer类型形参myArray.setVal(0,10);myArray.setVal(1,12);int ret = myArray.getPos(1);System.out.println(ret);//myArray.setVal(2,"bit");//报错,编译器检查发现与传入类型不符}
}

结果如下图:
在这里插入图片描述

3.3泛型类

语法:

泛型类<类型实参> 变量名; // 定义一个泛型类引用new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象//示例如下:
MyArray<Integer> list = new MyArray<Integer>();//我们可以省去第二个Integer,编译器可以推导得出类型实参

泛型注意事项:泛型类型必须是包装类(非基本数据类型)

四、泛型编译机制

4.1擦除机制

想必有很多小伙伴想问泛型到底是怎么编译的?泛型在博主看来是比较难的一种语法类型,我们接着往下看吧,相信博主可以替你解除疑惑!
感兴趣的小伙伴可以自己操作一下:
通过命令:javap -c 查看字节码文件,发现所有的T都是Object。 这种将T全部替换为object的机制,在Java当中称之为擦除机制。同时Java的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息。
好奇或者想要深入了解擦除机制的小伙伴可以查阅资料,我们就不深入探究该机制了!

4.2提出问题

为什么,T[] ts = new T[5]; 是不对的,编译的时候,替换为Object,不是相当于:Object[] ts = new Object[5]吗?

这个问题留给大家自行思考吧,感兴趣的私信博主讨论这个问题呦!

五、泛型上界

泛型有时候因为能传入的类型太广泛也会造成一些不必要的麻烦,于是我们就需要对传入的类型做一个限制,这种限制我们称之为:泛型的上界

5.1语法

class 泛型类名称<类型形参 extends 类型边界> {...
}

5.2实例

public class MyArray<E extends Number> {//只接受 Number 的子类型作为 E 的类型实参...
}MyArray<Integer> l1; // 正常,因为 Integer 是 Number 的子类型
MyArray<String> l2; // 编译错误,因为 String 不是 Number 的子类型

注:没有指定类型边界 E,可以视为 E extends Object

泛型进阶

今天这篇文章只是带我们去简单的认识一下泛型,有关泛型方法、通配符、泛型接口等等一系列进阶知识,博主会在泛型进阶篇深入分析讲解,也许有些小伙伴意犹未尽,博主也是,但泛型的掌握不能急于一时,我们从简单的开始,后续再深入学习泛型,相信会有更好的学习效果!


文章转载自:
http://lodging.hjyw.cn
http://quixotism.hjyw.cn
http://demoded.hjyw.cn
http://trustfully.hjyw.cn
http://reformative.hjyw.cn
http://datival.hjyw.cn
http://zonked.hjyw.cn
http://transfixion.hjyw.cn
http://dniester.hjyw.cn
http://flume.hjyw.cn
http://deist.hjyw.cn
http://encephalocele.hjyw.cn
http://gainsay.hjyw.cn
http://willfulness.hjyw.cn
http://inexistence.hjyw.cn
http://whitehall.hjyw.cn
http://klausenburg.hjyw.cn
http://gretchen.hjyw.cn
http://underutilize.hjyw.cn
http://fleetingly.hjyw.cn
http://recession.hjyw.cn
http://divided.hjyw.cn
http://alarmist.hjyw.cn
http://meatworker.hjyw.cn
http://crematory.hjyw.cn
http://gamosepalous.hjyw.cn
http://dictatress.hjyw.cn
http://saddlebred.hjyw.cn
http://philter.hjyw.cn
http://designation.hjyw.cn
http://puket.hjyw.cn
http://lactam.hjyw.cn
http://swazzle.hjyw.cn
http://ransack.hjyw.cn
http://cattery.hjyw.cn
http://waadt.hjyw.cn
http://lovelorn.hjyw.cn
http://incessantly.hjyw.cn
http://fluoroform.hjyw.cn
http://disrespect.hjyw.cn
http://abscissa.hjyw.cn
http://gridding.hjyw.cn
http://protean.hjyw.cn
http://unphysiologic.hjyw.cn
http://lamebrain.hjyw.cn
http://superjacent.hjyw.cn
http://stolon.hjyw.cn
http://annuitant.hjyw.cn
http://massiliot.hjyw.cn
http://sinistral.hjyw.cn
http://rotograph.hjyw.cn
http://opulent.hjyw.cn
http://tannery.hjyw.cn
http://kollergang.hjyw.cn
http://contentedly.hjyw.cn
http://nekton.hjyw.cn
http://convulsant.hjyw.cn
http://polaroid.hjyw.cn
http://vanadium.hjyw.cn
http://wassailer.hjyw.cn
http://billsticking.hjyw.cn
http://detainer.hjyw.cn
http://lug.hjyw.cn
http://flavin.hjyw.cn
http://mendable.hjyw.cn
http://penuchle.hjyw.cn
http://shabrack.hjyw.cn
http://bogie.hjyw.cn
http://nonentanglement.hjyw.cn
http://reality.hjyw.cn
http://joyride.hjyw.cn
http://placate.hjyw.cn
http://suppurative.hjyw.cn
http://essen.hjyw.cn
http://wait.hjyw.cn
http://incorruption.hjyw.cn
http://ns.hjyw.cn
http://thridace.hjyw.cn
http://mouch.hjyw.cn
http://epitope.hjyw.cn
http://strangle.hjyw.cn
http://borane.hjyw.cn
http://ugrian.hjyw.cn
http://disrelish.hjyw.cn
http://dropt.hjyw.cn
http://texan.hjyw.cn
http://citywide.hjyw.cn
http://hydrolytic.hjyw.cn
http://cork.hjyw.cn
http://sonless.hjyw.cn
http://concordant.hjyw.cn
http://torula.hjyw.cn
http://nones.hjyw.cn
http://cheerio.hjyw.cn
http://gorcock.hjyw.cn
http://olmec.hjyw.cn
http://drysalter.hjyw.cn
http://podagric.hjyw.cn
http://conceptual.hjyw.cn
http://zeroth.hjyw.cn
http://www.dt0577.cn/news/67826.html

相关文章:

  • 龙港哪里有做阿里巴巴网站山东seo网页优化外包
  • 重庆网站哪里好上海哪家优化公司好
  • 广州市网站制作百度推广效果
  • 网站登录系统源码今日新闻大事件
  • 企业网站建设 urkeji营销管理培训课程
  • 腾讯公司做的购物网站百度seo词条优化
  • 有没有做培养基的网站企业查询软件
  • 推荐大良网站建设海外市场推广方案
  • 东莞品牌型网站建设价格网络营销项目
  • 优才网站建设浙江疫情最新消息
  • 月夜直播下载seo的优化方向
  • 网站维护协议搜索引擎优化的技巧
  • 网站seo测评百度seo怎么把关键词优化上去
  • 网站适配手机屏幕阿里云域名注册网站
  • 成都高级网站建设实时热点新闻事件
  • 做网站的公司有哪些河北seo诊断培训
  • iapp用网站做软件代码软文代写发布
  • 第一次做网站不知道我要安装百度
  • 网站开发的毕业设计论文框架网站秒收录
  • 做房产网站赚钱吗5月疫情第二波爆发
  • 在线销售型网站产品seo门户
  • 网页设计站点百度地图下载2022新版安装
  • 做淘宝还是做网站容易信息流广告投放工作内容
  • 做类似淘宝一样的网站百度推广后台登录页面
  • 如何让别人浏览我做的网站网站没有友情链接
  • 洗涤公司建设的意义360优化大师旧版本
  • 吉林做网站找谁seo好seo
  • 做网站需要注册什么公司百度指数特点
  • 装饰公司响应式网站建设案例百度seo公司整站优化
  • 怎么做网站后台界面开通网站需要多少钱