java泛型_Java核心知识 基础五 JAVA 泛型

48978370b966df5a2cbbdd132a7610fe.png

泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本 质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法, 能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,我们就可以使用 Java 泛型。

1. 泛型方法()

你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数 类型,编译器适当地处理每一个方法调用。

// 泛型方法 printArray

public static < E > void printArray( E[] inputArray ) {

for ( E element : inputArray ){

System.out.printf( "%s ", element );

}

}

1). extends T>表示该通配符所代表的类型是 T 类型的子类。

2). super T>表示该通配符所代表的类型是 T 类型的父类。

2. 泛型类

泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。和泛型方法一 样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数, 也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。因为他们接受一个或多个参数, 这些类被称为参数化的类或参数化的类型。

public class Box {

private T t;

public void add(T t) { this.t = t;

}

public T get() { return t;

}

3. 类型通配符?

类型通配符一般是使用? 代 替 具 体 的 类 型 参 数 。 例 如 List> 在逻辑上是 List,List 等所有 List的父类。

4. 类型擦除

Java 中的泛型基本上都是在编译器这个层次来实现的。在生成的 Java 字节代码中是不包含泛 型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个 过程就称为类型擦除。如在代码中定义的 List和 List等类型,在编译之后 都会变成 List。JVM 看到的只是 List,而由泛型附加的类型信息对 JVM 来说是不可见的。 类型擦除的基本过程也比较简单,首先是找到用来替换类型参数的具体类。这个具体类一般 是 Object。如果指定了类型参数的上界的话,则使用这个上界。把代码中的类型参数都替换 成具体的类。

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

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

相关文章

省钱小贴士(ECS):教你如何每年省出8w+ 块

摘要&#xff1a; 随着用户越来越多地使用阿里云的ECS服务&#xff0c;如何用最小的成本来保有ECS&#xff0c;成为用户越来越重要的关注点。为了更好的服务客户&#xff0c;ECS团队调整了系统盘的最小容量限制。 随着用户越来越多地使用阿里云的ECS服务&#xff0c;如何用最小…

相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵

目录信息熵条件熵相对熵交叉熵总结一 信息熵 (information entropy)熵 (entropy) 这一词最初来源于热力学。1948年&#xff0c;克劳德爱尔伍德香农将热力学中的熵引入信息论&#xff0c;所以也被称为香农熵 (Shannon entropy)&#xff0c;信息熵 (information entropy)。本文只…

《CDN 之我见》原理篇——CDN的由来与调度

CDN是将源站内容分发至全国所有的节点&#xff0c;从而缩短用户查看对象的延迟&#xff0c;提高用户访问网站的响应速度与网站的可用性的技术。它能够有效解决网络带宽小、用户访问量大、网点分布不均等问题。 为了让大家更全面的了解CDN的原理、调度、缓存和安全等关键技术点&…

java实现apriori算法_各种排序算法的分析及java实现(一)

阅读本文约需要7分钟大家好&#xff0c;我是你们的导师&#xff0c;我每天都会在这里给大家分享一些干货内容(当然了&#xff0c;周末也要允许老师休息一下哈)。上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的相关知识&#xff0c;今天跟大家分享在 各种排序算法的分…

超越杭州、北京居首、广州晋级第一梯队……国内城市算力大起底!

戳蓝字“CSDN云计算”关注我们哦&#xff01;近日&#xff0c;在2019中国人工智能计算大会&#xff08;AICC2019&#xff09;上&#xff0c;IDC与浪潮联合发布了《2019-2020中国人工智能计算力发展评估报告》。报告指出&#xff0c;计算力是承载和推动人工智能走向实际应用的基…

在阿里,我们如何管理代码分支?

摘要&#xff1a; 阿里有很多的研发团队&#xff0c;不同事业部使用的发布流程、分支策略并非整齐划一&#xff0c;但总体上看是比较规整的。其中有一种主流的发布模式以及对应的分支使用方式&#xff0c;称为“AoneFlow”。这套工作模式思路独特&#xff0c;在阿里以外的地方并…

linux杀掉80端口线程命令

80端口被其他程序占用&#xff0c; fuser -k -n tcp 80 查看端口是否启用 telnet ip地址 端口没有启动&#xff0c;显示拒绝&#xff1a; 端口启动&#xff0c;显示微笑&#xff1a;

.ne中的控制器循环出来的数据如何显示在视图上_【asp.net core 系列】3 视图以及视图与控制器...

0.前言 在之前的几篇中&#xff0c;我们大概介绍了如何创建一个http://asp.net core mvc项目以及http请求如何被路由转交给对应的执行单元。这一篇我们将介绍一下控制器与视图直接的关系。 1. 视图 这里的视图不是数据库里的视图&#xff0c;是一种展示技术。在http://asp.net …

为了让开发者写MaxCompute SQL更爽,DataWorks 增强SQL 编辑器功能

摘要&#xff1a; 众所周知&#xff0c;数据开发和分析的同学每天都要花大量时间写MaxCompute SQL&#xff1b;Dataworks作为数据开发的IDE直接影响着大家的开发效率&#xff0c;这次新上线的Dataworks我们在编辑体验上做了很多工作&#xff0c;在前端实现MaxCompute SQL和编辑…

看懂“大数据”,这一篇就够了!

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | 鲜枣课堂作者 | 小枣君近年来&#xff0c;大数据这个词的热度很高&#xff0c;受到公众的广泛关注。对于很多人来说&#xff0c;当他第一次听到“大数据”这个词&#xff0c;会自然而然从字面上去理解——认为大数据就是大量…

服务器漏洞处理_wildfly禁用https和8443端口

文章目录一、https和84431. 问题分析1.1. https1.2. 8443端口2. 思路预测3. 解决方案一、https和8443 1. 问题分析 1.1. https 从以上2个漏洞分析&#xff0c;都和8443端口有关&#xff0c;而8443是https的端口&#xff0c;由此分析&#xff0c;和https有关。 1.2. 8443端口…

阿里云MaxCompute被Forrester评为全球云端数据仓库领导者

摘要&#xff1a; 参考消息网3月19日报道 日前&#xff0c;全球权威调研机构佛瑞斯特研究公司&#xff08;Forrester&#xff09;发布《2018年一季度云端数据仓库》报告。报告对大数据服务商的主要功能、区域表现、细分市场和典型客户等进行了全面评估&#xff0c;最终AWS、阿里…

npoi 所有列调整为一页_别再浪费纸了,一张纸就能打印Word、Excel、PPT所有内容,真厉害...

前几天公司的行政小姐姐在整理打印的废纸&#xff0c;不整理不知道&#xff0c;一整理&#xff0c;一个星期浪费的打印纸有几千张&#xff01;&#xff01;&#xff01;现在可是提倡环保啊~这不&#xff0c;现在已经规定每人的打印纸张了&#xff0c;杜绝浪费&#xff0c;从节约…

【HBase从入门到精通系列】如何避免HBase写入过快引起的各种问题

摘要&#xff1a; 首先我们简单回顾下整个写入流程 client api > RPC > server IPC > RPC queue > RPC handler > write WAL > write memstore > flush to filesystem 整个写入流程从客户端调用API开始&#xff0c;数据会通过protobuf编码成一个请求&…

怎么加载csv_python爬虫入门实战(四)!爬取动态加载的页面

今天的主题是爬取动态网页的经验分享&#xff0c;以cocos论坛为例子进行分享。(官方不会打我吧 )配置环境为什么选择cocos论坛呢&#xff1f;因为自己在浏览论坛时&#xff0c;发现标题内容会随着滚动条的位置而动态添加。环境: python3 requests 。还要引入几个系统库。参考如…

再谈全局网HBase八大应用场景

摘要&#xff1a; HBase可以说是一个数据库&#xff0c;也可以说是一个存储。拥有双重属性的HBase天生就具备广阔的应用场景。在2.0中&#xff0c;引入了OffHeap降低了延迟&#xff0c;可以满足在线的需求。引入MOB&#xff0c;可以存储10M左右的对象&#xff0c;完全适应了对象…

文件标识符必须为双精度类型的整数值标量_数据类型

标识符在Java中&#xff0c;标识符多用于类名、方法、字段、变量和包名等&#xff0c;他的命名方式需遵循以下规则&#xff1a;1、标识符可以由字母、数字、__、$组成&#xff0c;但不能包含&#xff01;、#、%、空格等其他特殊字符。2、标识符的命名最好做到见名知意。3、不能…

MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案

摘要&#xff1a; 摘要 在SQL Server备份专题分享中&#xff0c;前四期我们分享了&#xff1a;三种常见的数据库备份、备份策略的制定、如何查找备份链以及数据库的三种恢复模式与备份之间的关系。本次月报我们分享SQL Server如何利用文件组技术来实现数据库冷热数据隔离备份的…

检测到会话cookie中缺少HttpOnly属性

解决方案01&#xff1a;在会话cookie中添加HttpOnly属性 具体操作步骤如下&#xff1a; HttpServletResponse response2 (HttpServletResponse)response; response2.setHeader( "Set-Cookie", "namevalue; HttpOnly");解决方案02&#xff08;建议使用&am…