泛型和lambda表达式

本文介绍了Java中的泛型,包括语法定义、使用方式和泛型类的继承。同时,文章详细讲解了泛型接口及其实现。此外,还探讨了Lambda表达式的概念、格式及其实现多线程的示例,展示了其简化代码和函数式编程的思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型

  1. 泛型的语法定义:

    class 类名 <泛型标识,泛型标识,…>{ private 泛型标识1,变量名;常用的泛型标识:T,E,K,V } 里面正常写法

    public class GenericDemo<K> {
        //定义数组
        private K[] arr;
    }
    
  2. 泛型的使用语法:

    • 类名<具体的数据> 对象名 = new 类名<具体的数据类型>()
    • jdk1.7之后,后边的<>可以省略不写
    • 类名<具体的数据> 对象名 = new 类名<>()
  3. 泛型总结:

    • 类型参数化,让类的定义更加通用
    • 泛型不支持基本类型,因为在编译时,基本类型无法转换成Object
    • 泛型类在创建对象的时候,如果没有指定数据类型,将按照Object类型来操作
    • 同一泛型类在逻辑上可以看成是多个不同的类型,但实际是相同的类型
  4. 从泛型类派生子类:

    • 子类也是泛型,子类和父类的泛型要一致 (例如:连泛型的类型T要一致,写的内容相同),

      如果父类没有指明类型,则父类要按照Object类型处理

      public class Child<T> extends Parent<T> {
      }
      
    • 子类不是泛型,父类要明确泛型类型,

      如果父类没有指明类型,则父类要按照Object类型处理

  5. 泛型接口:

    • 泛型接口的语法定义:interface 接口名<泛型标识1,泛型标识2,…>{ 泛型标识 方法名(); … }
    • 实现类也是泛型,实现类和接口的泛型要一致,如果接口没有指明类型,则接口要按照Object类型处理
    • 实现类不是泛型,接口要明确泛型接口的数据类型,如果接口没有指明类型,则接口按照Object类型处理

lambda表达式

1、lambda表达式概念

  1. 面向对象的编程中强调,必须通过对象的形式去做事情;函数思想则是尽量忽略对象的复杂写法,“强调做什么,而不是以什么形式去做”
  2. lambda表达式就是函数思想的体现
  3. lambda表达式就是定义函数式的简化写法,而不是函数调用的简化写法

2、lambda表达式格式

  1. 三要素:形式参数,箭头,代码块
  2. 形如:(形参)->代码块
  3. 形参如果多个参数,参数之间逗号隔开,如果没有参数,留空括号,不用留空格
  4. -> 一定的是英文,固定写法,表示执行
  5. 代码块:具体要做的事情
  6. 使用前提:使用接口:接口当中有且只有一个抽象方法

代码示例:

package com.lambda;

public class Lambda {
    public static void main(String[] args) {
        //正常写法
        Mythread mythread = new Mythread();
        Thread t = new Thread(mythread);
        t.start();

        //匿名内部类
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("多线程1就绪了");
            }
        }).start();

        //lambda表达式:创建线程
        new Thread(()->{
            System.out.println("多线程2就绪了");
        }).start();
    }
}

class Mythread implements Runnable{

    @Override
    public void run() {
        System.out.println("多线程就绪");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值