java泛型_Java核心知识 基础五 JAVA 泛型
泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本 质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法, 能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,我们就可以使用 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。如果指定了类型参数的上界的话,则使用这个上界。把代码中的类型参数都替换 成具体的类。
java泛型_Java核心知识 基础五 JAVA 泛型相关推荐
- java 复制对象_Java核心知识 基础七 JAVA 复制
将一个对象的引用复制给另外一个对象,一共有三种方式.第一种方式是直接赋值,第二种方式 是浅拷贝,第三种是深拷贝.所以大家知道了哈,这三种概念实际上都是为了拷贝对象. 1. 直接赋值复制 直接赋值.在 ...
- Java尚硅谷核心知识
Java尚硅谷核心知识 一.Java基础部分 1.1 Java语言的主要特性 1.2 Java程序运行机制及运行过程 1.2.1Java两种核心机制 1.3Java语言的环境搭建 1.3.1 为什么要 ...
- 机械转行java自学经历,零基础学java,血泪总结的干货
机械转行java自学经历,零基础学java,血泪总结的干货 1.我为什么转行 2.转行之路 3.面试之路 自学路上的网站 Java教程 实践项目一站式学习 bilibili 自学书籍 <Java ...
- Java好学吗?零基础入门Java,三个就业方向实现月入过万!
Java好学吗?零基础入门Java容易吗?据统计,这是很多人学习前最常问也是最关心的问题之一. 不可否认,大家在开始接受新事物的时候都会陷入困境,但学习是循序渐进的,零基础入门Java到底难不难,只有 ...
- java并发核心知识体系精讲_JAVA核心知识汇总
双非同学如何逆袭大厂? 在互联网行业,入行的第一份工作很大程度上决定了以后职业发展的高度.有些双非的同学认为自己校招进不了大厂以后还会有社招,这种想法很危险.大厂的社招,大多数都只招大厂的员工.什么意 ...
- java细节_java细节知识
代码优化细节 (1)尽量指定类.方法的final修饰符 带有final修饰符的类是不可派生的.在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是fin ...
- 学java 的要点_零基础学Java,掌握Java的基础要点
对于程序员群体来说,了解一定的技巧会对学习专业技能更有帮助,也更有助于在自己的职业发展中处于有利地位,无限互联Java培训专家今天就为大家总结Java程序员入门时需要掌握的基础要点: 掌握静态方法和属 ...
- 零基础自学java的难处_零基础自学Java 在学习中要注意哪些问题
如果是零基础自学Java编程,在学习过程中有很多要注意的问题,想要学好学精必然是件难事,并且可能会走弯路浪费很多时间,短时间内是不可能学成参加工作的,想要成为专业的Java程序员并不容易,技术过硬尤为 ...
- 怎么运行java虚拟机_Java代码如何运行在Java虚拟机中
我们都知道要运行Java代码就必须要有JRE,也就是Java运行时环境,JRE中包含了Java程序的必需组件,包括Java虚拟机以及Java核心类库,然而运行C++代码则不需要额外的运行时环境,只需要 ...
最新文章
- Ubuntu 搭建 Zerotier One MOON 根目录服务器
- JAVA通信系列三:Netty入门总结(转)
- linux登陆连接信息,成功登录后Linux关闭连接
- java 二进制,八进制,十进制,十六进制间相互转换的方法
- 开发常见错误解决(3)VS2005调试程序出错,绑定句柄无效 Terminal Services
- c语言中realloc()函数解析
- 三大纪律七项注意(Access数据库)
- Java并发编程实战~ReadWriteLock~
- Java讲课笔记19:throw关键字、自定义异常与垃圾回收
- Android人脸识别开发入门--基于虹软免费SDK实现
- (90)FPGA比较器设计
- VMware虚拟机运行虚拟系统时显示“内部错误”的解决方法
- 扫描枪取消回车二维码_如何使条码扫描枪录入完不自动回车呢-百度经验
- 芝麻小客服电脑版新增网址自带openid功能,聊天界面改版,新增通用设置
- 微信小程序并发服务器架构,「系统架构」如何设计一个健壮高效的微信小程序登录方案...
- postgresql统一把字段小写转大写
- 苹果圆圈怎么设置_苹果手机白色圆圈怎么弄
- 【科创人独家】EasyStack王瑞琳:All In超级领先,知易行难
- SQL Server 2008 R2导出数据脚本和导入数据库脚本的方法(原创+转载)
- Android--经典蓝牙(文件传输--socket通信)