java之泛型基础

神通数据库连接oscarJDBC.jar 神通数据库oscarJDBC.jar数据库连接驱动,找了很久,javal连接方式 public static Connection con() throws Exception {         String DRVIER = "com.oscar.Driver";         String URL = "jdbc:oscar://IP:端口/数据库名称;";                  Class.forName(DRVIER);         Connection conn = DriverManager.getConnection(URL,"用户名","密码");         return conn;     } 立即下载

一:简介

从这里开始再次回顾一下Java基础,目的是再次深入一点学习,不是教程,主要以相关知识的重点为主,有时候可能有较强的偏向性,所以可能会遗漏一些基础概念或者之类的东西。泛型学习笔记上篇,主要记录java泛型相关基础,包括为什么引入泛型,泛型的使用方式,以及在JDK或框架中的典型应用。

二:泛型的概念

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

三:为什么要使用泛型

  • 类型安全—— 泛型的主要目标是提高 Java 程序的类型安全。使得java代码可以编译时期检查出因java类型导致的可能在运行时抛出ClassCastException异常。符合越早出错代价越小原则。
  • 消除强制类型转换—— 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
  • 潜在的性能收益—— 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。

四:泛型语法

如在概念中提到,参数化类型可以用在类、接口、方法上。

泛型类:

public class GenericClass<T>{
    private T t;

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }
}
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

泛型接口

public interface GenericInterface<T> {
    void method(T t);
}
  
  • 1
  • 2
  • 3

泛型方法

    public <E> E genericMethod(E e){
        return e;
    }

  
  • 1
  • 2
  • 3
  • 4

五:典型应用

  
 关于泛型,我们最常见的就是在JDK的集合中见到,并且使用。简单的看一个典型的集合类:Collection。
public interface Collection<E> extends Iterable<E> {
    // Query Operations

    int size();

    boolean isEmpty();

    boolean contains(Object o);

    Iterator<E> iterator();

    Object[] toArray();

    <T> T[] toArray(T[] a);

    // Modification Operations

    boolean add(E e);

    boolean remove(Object o);


    // Bulk Operations

    boolean containsAll(Collection<?> c);

    boolean addAll(Collection<? extends E> c);

    boolean removeAll(Collection<?> c);

    default boolean removeIf(Predicate<? super E> filter) {
        Objects.requireNonNull(filter);
        boolean removed = false;
        final Iterator<E> each = iterator();
        while (each.hasNext()) {
            if (filter.test(each.next())) {
                each.remove();
                removed = true;
            }
        }
        return removed;
    }

    boolean retainAll(Collection<?> c);

    void clear();


    // Comparison and hashing

    boolean equals(Object o);

    int hashCode();

    /**
     * default 关键字是java1.8引入的一个新特性,有兴趣的可以自行了解一下
     * 相关的Spliterator和Stream以及前面的Predicate都是1.8新引入的接口
     */

    @Override
    default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }

    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }

    default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
}

  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

从Spring的BeanFactory中获取Bean的方法

    <T> T getBean(String name, Class<T> requiredType) throws BeansException;
  
  • 1

泛型使用规则

  1. 泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
  2. 同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
  3. 泛型的类型参数可以有多个。
  4. 泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。
  5. 泛型的参数类型还可以是通配符类型。例如Class

总结:

    这里只记录了泛型最基本的一些知识,连泛型的边界都没有涉及到,目的是想让结构清晰一点。接下来的泛型进阶,和泛型最佳实战会深入了解。

获去CapsLock键的状态 判断CapsLock键有没有打开 判断CapsLock键有没有打开 判断CapsLock键有没有打开 立即下载

相关推荐

FPGA时钟架构解密:从SRCC/MRCC到全局时钟树的实战指南

本文深入解析Xilinx 7系列FPGA时钟架构,从SRCC/MRCC引脚特性到全局时钟树设计,详细介绍了BUFG、BUFMR等关键组件的应用场景和优化策略。通过对比SRCC与MRCC的驱动范围及适用场景,提供低抖动时钟布线技巧和时钟域交叉(CDC)设计方法,帮助工程师构建高性能FPGA时钟系统。

weixin_29191081的博客 1484

Java之泛型基础

从这里开始再次回顾一下java基础,目的是再次深入一点学习,不是教程,主要以相关知识的重点为主,有时候可能有较强的偏向性,所以可能会遗漏一些基础概念或者之类的东西。泛型学习笔记上篇,主要记录java泛型相关基础,包括为什么引入泛型,泛型的使用方式,以及在JDK或框架中的典型应用。

Oscar Chen 2327

树莓派视觉小车实战:OpenCV驱动的智能物体追踪系统

本文详细介绍了如何从零开始构建一个基于树莓派的智能视觉小车,实现物体跟踪功能。通过OpenCV进行图像处理,结合颜色与轮廓识别算法,让小车能够实时锁定并追踪特定目标。内容涵盖硬件搭建、软件环境配置、核心代码解析及运动控制逻辑,为创客和开发者提供了完整的实战指南。

weixin_29047545的博客 143

神通OSCAR逻辑备份-java代码实现

测试方法代码: public class OscarExport { public static final byte level = 2; public static void main(String[] args) throws OBaseException, IOException, SQLException { BackupParameter backupParameter = new BackupParameter(); backupParamet.

数流坊 461

iOS中.obj、.usdz、.dae和.scn格式之间的转化(思路清晰版)

作者最近在写项目的过程中遇到了一些3d模型格式问题,故写下这篇文章记录一下解决问题的过程。

yueliangmua的博客 5586

FreeRTOS的学习(十四)——PendSV异常

本文将从任务切换的角度出发,学习PendSV异常的相关概念。

LEOD的博客 1729

【Java基础】6.泛型

Java泛型机制

Maxbao0401的博客 1245

Win11下Android模拟器报HAXM未安装?三步搞定虚拟化配置(附终端命令)

本文详细解析了Win11下Android模拟器HAXM报错的解决方案,从虚拟化配置到终端命令实战。通过检查BIOS设置、调整Windows功能及执行PowerShell命令,三步搞定虚拟化配置问题,有效提升模拟器性能。特别针对Win11与HAXM的兼容性问题提供了专业指导。

weixin_29215815的博客 143

【java基础】Java 泛型

在 Java 编程的世界里,泛型是一项极具魅力的特性。它如同一位神奇的魔法师,赋予代码更高的灵活性、更强的类型安全性以及更好的可维护性。借助泛型,我们能够编写出更加通用的代码,避免为不同的数据类型重复编写相似的逻辑。泛型,简而言之,就是参数化类型。它允许我们在定义类、接口或方法时,使用一个或多个类型参数来替代具体的数据类型。这些类型参数在实际使用时会被具体的类型所替换,从而实现代码的复用。泛型类是在定义类时使用类型参数的类。类型参数通常用大写字母表示,常见的有T(Type)、K(Key)、V。

小李同学的博客 1545

从零抓包分析AVDTP:用Wireshark解密蓝牙音频传输全流程

本文详细介绍了如何使用Wireshark抓包工具分析AVDTP协议,解密蓝牙音频传输的全流程。从实验环境搭建到信令交互解析,再到媒体流传输深度分析,逐步揭示蓝牙音频传输的技术本质,帮助开发者深入理解AVDTP协议的工作机制。

sun99的博客 204

网络工程师教程第6版(2024年最新版)

本书 根据《网络工程师考试大纲》(2024年审定通过)编写,对网络工程师岗位所要求的主要知 识及应用技术进行了阐述。本书主要内容包括数据通信、局域网、无线通信网、网络互连、网络安全、网络操作系统与应用服务器、组网技术、网络管理、网络规划和设计。本书是参加网络工程师考试的必备教材,也可作为网络工程从业人员学习网络技术的教材或日常工作的参考用书。王涛和严体华编写了第2章、第3章和第4章;网络工程师教程(第6版)由清华大学出版社出版,由工业和信息化部教育与考试中心组编,张永刚、王涛、高振江任主编,具体介绍如下。

鹿鸣天涯 6902

java基础 泛型

本文主要介绍的java基础中的泛型的相关知识,包括泛型的介绍和用法

m0_75209145的博客 624

【漏洞复现】爱数云盘 Usrm_GetAllUsers 未授权访问漏洞

爱数 AnyShare存在未授权漏洞,未授权的攻击者可以通过该漏洞获取用户名信息。

qq_67810151的博客 3121

JAVA基础之泛型

学习java泛型知识

m0_73481403的博客 457

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java 泛型基本类型时_Java基础之泛型

一、泛型的理解与简单使用泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这...

weixin_39936558的博客 628

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

泛型-Java泛型基础

面向对象相对于面向过程而言,是软件领域的

喻红叶 930

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java基础(二十):泛型

在JDK5.0之前只能把元素类型设计为ObjectJDK5.0时Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时指定集合元素的类型所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值或参数的类型这种语法形式就叫泛型的形式我们称为类型参数,这里的"类型"习惯上使用T表示,是Type的缩写。即::代表未知的数据类型,我们可以指定为,,等。

从基础到源码解析的学习记录 1509

Java泛型终极指南:从基础到高级应用

泛型(Generics)是Java SE 5.0引入的一个重要特性,它允许在定义类、接口和方法时使用类型参数(Type Parameters)。泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。专业解释:泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。通俗理解:就像方法有参数一样,泛型让类型也可以作为"参数"传递。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1277

Java:泛型基础

泛型 引入泛型 传统编写的限制:   在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型。如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的三种方法: 1.多态:将方法的参数类型设为基类,那么该方法就可以接收从这个基类导出的任何类作为参数。 class Primary{} //定义基类 cla

悠悠的博客 381

Java基础之泛型

泛型1.基础概念2使用泛型的原因2.1当不使用泛型时2.2当使用泛型时 1.基础概念 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数,也称为类型实参)。 从JDK1.5以后,Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时再指定集合元素的类型,正如:List< String>,这表明该

smilecb的博客 293

Java基础:泛型编程基础

java也要考试,对几个不太熟悉的知识点先进行整理,假期会系统的对每块知识进行整理顺带吐槽一下,手写代码的方式考核真的很让人排斥,也很让人头疼!!!!本博文为记录且仅为记录学习,不作商业用途。其中部分内容来自海贼宝藏课程,笔者仅为加深印象和系统性以笔记形式呈现,若有侵权请联系作者删除。

m0_67314592的博客 1300

Java基础学习之泛型的使用

Java基础学习之泛型的使用 文章目录Java基础学习之泛型的使用前言一、泛型是什么?二、泛型的三种常见使用1.泛型类2.泛型方法3.泛型接口总结 前言 本文记录了作者学习泛型的内容。 一、泛型是什么? 泛型是一种未知的数据类型,当我们不确定使用什么数据类型时使用泛型。 泛型也可以看作是一种变量,用来接收数据类型。 例如,在我们定义集合的时候,不确定集合中存储的数据类型,所以需要使用泛型。 二、泛型的三种常见使用 1.泛型类 在类名后加<泛型>。 注意:一个类是泛型类不代

weixin_45855864的博客 239

Java基础——泛型(面试问题)

泛型和上一篇博客《Java中常用关键字》一样,是在面试Java基础内容时,比较容易被问到的问题。 所以这篇博客继续总结Java基础部分——泛型的相关知识,包括—— 目录 什么是泛型; 泛型的实现原理; 泛型的特性; 使用场景; 测试用例; 泛型的具体使用;(泛型类,泛型接口,泛型通配符,泛型方法,泛型数组) 静态方法与泛型; 为传入的泛型实参进行上下边界的限制; 1、什么是泛型...

Ysunflower的博客 548

java泛型基础及样例

java泛型基本理解和例子

KuboDash的博客 494
上一篇: Mysql常用SQL语句集锦
下一篇: 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
CapsLockWY
博客等级 码龄9年 9粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值