【Java】Java泛型、集合、UML统一建模语言、final关键字

昨天在昆仑巢,下午练习Spring Boot的过滤器Filter。

昨天傍晚开始阅读《疯狂Java讲义(第2版)》,熟悉了UML建模语言、Final修饰符、List集合和泛型。

1.UML建模语言: 13种图,常用的包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图等。

cb1df8719fc94a459f58feba468bcbf8.jpeg

 2.final可用于修饰类、变量和方法。

final修饰变量时,表示该变量一旦获得了初始值就不可被改变。

final修饰的成员变量,必须由程序员显式地指定初始值。

3.List集合,元素有顺序、可重复,集合中的每个元素都有其对应的顺序索引。

List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。

4.泛型:

List<String> 等同于如下接口:

public interface ListString extends List

所谓泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用方法时动态地指定(即传入实际的类型参数,也成为类型实参)。

 

4.1 可以为任何类、接口增加泛型声明,并不是只有集合类才可以使用泛型声明,虽然集合类是泛型的重要使用场所。

示例代码如下:

定义了Apple类时使用了泛型声明:

public class Apple(T)(){

     //使用T类型形参定义实例变量

     private T info;

     public Apple(){}

     //下面方法中使用T类型形参来定义构造器

     public Apple(T   info){

      this.info=info;

     }

     public void setInfo(T   info){

    this.info=info;

}

    public  T getInfo()

{

    return  this.info;

}

 public static void main(String[ ] args)

{

//因为传给T形参的是String实际类型

//所以构造器的参数只能是String

Apple(String)  a1= new Apple<>(" 苹果");

System.out.println(a1.getInfo());

//因为传给T形参的是Double实际类型

//所以构造器的参数只能是Double或者double

Apple<Double>   a2  = new Apple<>(5.67);

System.out.println(a2.getInfo());

}

}

 

4.2   不管为泛型的类型形参传入哪一种类型实参,对于Java来说,它们依然被当成同一个类处理,在内存中也只占用一块内存空间,因此在静态方法、静态初始化块或者静态变量的声明和初始化中不允许使用类型形参。

 

public class R<T>
        {
            // 下面代码错误,不能在静态Field声明中使用类型形参
            static T info;
            T age;
            public void foo(T msg){}
            // 下面代码错误,不能在静态方法声明中使用类型形参
            public static void bar(T msg){}
        }
 

  • 20
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张天龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值