最新Java 新特性之枚举,springmvc源码分析

言尽于此,完结

无论是一个初级的 coder,高级的程序员,还是顶级的系统架构师,应该都有深刻的领会到设计模式的重要性。

  • 第一,设计模式能让专业人之间交流方便,如下:

程序员A:这里我用了XXX设计模式

程序员B:那我大致了解你程序的设计思路了

  • 第二,易维护

项目经理:今天客户有这样一个需求…

程序员:明白了,这里我使用了XXX设计模式,所以改起来很快

  • 第三,设计模式是编程经验的总结

程序员A:B,你怎么想到要这样去构建你的代码

程序员B:在我学习了XXX设计模式之后,好像自然而然就感觉这样写能避免一些问题

  • 第四,学习设计模式并不是必须的

程序员A:B,你这段代码使用的是XXX设计模式对吗?

程序员B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的

image

从设计思想解读开源框架,一步一步到Spring、Spring5、SpringMVC、MyBatis等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!

image

搜集费时费力,能看到此处的都是真爱!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

代码实现

public class SeasonTest {

public static void main(String[] args) {

Season spring = Season.SPRING;

System.out.println(spring);

}

}

//自定义枚举类

class Season{

//1.声明Season对象的属性:private final修饰

//final修饰的属性必须进行赋值,赋值方式有显式赋值、构造器赋值和代码块赋值

private final String seasonName;

private final String seasonDesc;

//2.私有化类的构造器,并给对象属性赋值

private Season(String seasonName,String seasonDesc){

this.seasonName = seasonName;

this.seasonDesc = seasonDesc;

}

//3.提供当前枚举类的多个对象:public static final的

public static final Season SPRING = new Season(“春天”,“春暖花开”);

public static final Season SUMMER = new Season(“夏天”,“夏日炎炎”);

public static final Season AUTUMN = new Season(“秋天”,“秋高气爽”);

public static final Season WINTER = new Season(“冬天”,“冰天雪地”);

//4.其他诉求1:获取枚举类对象的属性

public String getSeasonName() {

return seasonName;

}

public String getSeasonDesc() {

return seasonDesc;

}

//4.其他诉求1:提供toString()

@Override

public String toString() {

return “Season{” +

“seasonName='” + seasonName + ‘’’ +

“, seasonDesc='” + seasonDesc + ‘’’ +

‘}’;

}

}

2.2 使用 enum 关键字定义枚举类


使用说明

  1. 必须在枚举类的第一行声明枚举类对象

  2. 使用 enum 定义的枚举类默认继承了java.lang.Enum 类,因此不能再继承其他类;

  3. 枚举类的构造器只能使用 private 权限修饰符

  4. 枚举类的所有实例必须在枚举类中显式列出,分隔; 结尾 ,系统会自动添加 public static final 修饰。

步骤

5. 实例化当前枚举类的对象,多个对象之间用 , 隔开,末尾对象 ; 结束;

6. 用private final来修饰声明枚举类对象的属性;

7. 私有化枚举类的构造器,并给枚举类对象属性赋值。

代码实现

public class SeasonTest {

public static void main(String[] args) {

Season spring = Season.SPRING;

System.out.println(spring);

}

}

/**

  • 自定义枚举类

*/

enum Season{

//1. 提供当前枚举类的对象,多个对象之间用",“隔开,末尾对象”;"结束

SPRING(“春天”,“春暖花开”),

SUMMER(“夏天”,“夏日炎炎”),

AUTUMN(“秋天”,“秋高气爽”),

WINTER(“冬天”,“冰天雪地”);

//2. 声明Season对象的属性:private final修饰

//final修饰的属性必须进行赋值,赋值方式有显式赋值、构造器赋值和代码块赋值

private final String seasonName;

private final String seasonDesc;

//3. 私有化类的构造器,并给对象属性赋值

private Season(String seasonName,String seasonDesc){

this.seasonName = seasonName;

this.seasonDesc = seasonDesc;

}

//4.其他诉求1:获取枚举类对象的属性

public String getSeasonName() {

return seasonName;

}

public String getSeasonDesc() {

return seasonDesc;

}

//4.其他诉求1:提供toString()

@Override

public String toString() {

return “Season{” +

“seasonName='” + seasonName + ‘’’ +

“, seasonDesc='” + seasonDesc + ‘’’ +

‘}’;

}

}

其中有一点要注意的是,实际上,enum 继承的是 Enum 类而非 Object 类,Object 类的 toString(); 方法返回的是地址,而 Enum 类的 toString(); 方法返回的是当前枚举常量的名称

3 Enum 类

===========================================================================

由于利用 enum 关键字修饰的类默认继承了 Enum 类,所以也可以使用父类的方法。

Enum 类的几个重要的方法与示例

1)toString():返回当前枚举类对象常量的名称

2)values():返回枚举类型的对象数组,该方法可以很方便地遍历所有的枚举值。

Season[] values = Season.values();

for (Season value : values) {

System.out.println(value);

}

3)valueOf(String str):可以把一个字符串转为对应的枚举类对象,要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常。

Season winter = Season.valueOf(“WINTER”);

System.out.println(winter);

总结

这份面试题几乎包含了他在一年内遇到的所有面试题以及答案,甚至包括面试中的细节对话以及语录,可谓是细节到极致,甚至简历优化和怎么投简历更容易得到面试机会也包括在内!也包括教你怎么去获得一些大厂,比如阿里,腾讯的内推名额!

某位名人说过成功是靠99%的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

的汗水和1%的机遇得到的,而你想获得那1%的机遇你首先就得付出99%的汗水!你只有朝着你的目标一步一步坚持不懈的走下去你才能有机会获得成功!

成功只会留给那些有准备的人!

[外链图片转存中…(img-UfXaPjQD-1715629970259)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值