最后
毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节
美团面试经验
字节面试经验
菜鸟面试经验
蚂蚁金服面试经验
唯品会面试经验
因篇幅有限,图文无法详细发出
方法二
public static final Gender BOY;
public static final Gender GIRL;
static {
BOY = new Gender();
GIRL = new Gender();
}
public Gender() {
}*/
/*
方法三
public static final Gender BOY =new Gender();
public static final Gender GIRL =new Gender();
public Gender() {
}
public static Gender getBOY() {
return BOY;
}
public static Gender getGIRL() {
return GIRL;
}*/
}
测试类
package com.atguigu.demo;
import com.atguigu.bean.Gender;
import com.atguigu.bean.Person;
public class Demo2 {
public static void main(String[] args) {
Person person = new Person();
person.setId(10);
person.setName(“张三”);
person.setGender(Gender.BOY);
System.out.println(person.getName()+“的性别是:”+person.getGender().getValue());
}
}
创建枚举类
在JDK.5之后,Java提供了enum关键字来快速的定义枚举类型,这样枚举类实现起来就非常方便了。其实现语法如下:
【修饰符】 enum 枚举类名{
常量对象列表
}
【修饰符】 enum 枚举类名{
常量对象列表;
其他成员列表;
}
虽然方便实现了,但是该方法实现枚举类也有很多需要注意的点:
-
①枚举类的构造器默认是私有的,并且必须是私有的
-
② 直接写对象名即可(对象与对象之间采用逗号隔开,最后使用分号)
-
③ 默认是采用无参构造器(后期可以设置)
-
④ 对象默认就是共有的静态的常量
-
⑤ 对象列表必须在类的首行
-
⑥ 如果显示的创建了有参的构造器,没有无参构造器
对象的创建就需要使用有参构造器 ,每个对象后面加小括号
- ⑦ JDK1.5之后switch,提供支持枚举类型,case后面可以写枚举常量名
代码示例
枚举类
package com.atguigu.bean;
public enum Gender2 {
// BOY,GIRL; 无参
BOY(“男孩”), GIRL(“女孩”); //必须在第一行
private String value;
Gender2(String value) {
this.value =value ;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return value;
}
}
测试类
package com.atguigu.demo;
import com.atguigu.bean.Gender2;
public class Demo3 {
public static void main(String[] args) {
Gender2 gender2 = Gender2.BOY; //通过类名可以调用说明是静态的,跨包是共有的
// Gender2.BOY = Gender2.Girl; 不可以更改说明是常量
System.out.println(gender2.getValue());
//返回该枚举类所有的常量对象,(后面会说到这个方法)
Gender2[] gender21 =Gender2.values();
for (int i = 0; i < gender21.length; i++) {
switch(values[i]){
case BOY:
System.out.println(values[i]+“:男孩”);
break;
case GIRL:
System.out.println(values[i]+“:女孩”);
break;
}
}
}
基本介绍
枚举类默认继承的是java.lang.Enum类,因此不能再继承其他的类。继承了Enum类的枚举类默认有以下几种方法:
name(); //获取对象的名称
toString(); //返回也是对象的名称,自定义的枚举类可以再次重写
ordinal(); //返回当前对象的位置(角标)
static values(); //返回该枚举类所有的常量对象
static valueOf(String name); //根据字符串的名称,返回常量对象
注:枚举类也不能被其他类继承
代码示例
测试类
package com.atguigu.demo;
import com.atguigu.bean.Gender2;
public class Demo3 {
public static void main(String[] args) {
Gender2 gender2 = Gender2.BOY;
//获取对象的名称
System.out.println(gender2.name());
//返回也是对象的名称,自定义的枚举类可以再次重写
System.out.println(gender2.toString());
//返回当前对象的位置(角标)
System.out.println(gender2.ordinal());
//返回该枚举类所有的常量对象
Gender2[] gender21 =Gender2.values();
for (int i = 0; i < gender21.length; i++) {
System.out.println(gender21[i]);
}
//根据字符串的名称,返回常量对象
String str = “BOY”;
Gender2 gender22 = Gender2.valueOf(str);
System.out.println(gender22);
}
}
基本介绍
枚举类虽然不能继承其他的类,但是枚举类也是类,可以实现接口,可以同时实现多个接口。可以统一实现,也可以用匿名内部类的形式,单独给某个常量对象实现抽象方法。
修饰符 类名 implements 接口名{
}
注意:
- 枚举类提供的对象个数是确定的,并且在类加载的时候对象已经产生了。所以,抽象方法的实现,可以将范围缩小到某个对象
常量对象 【(实参列表)】{
对父级做扩展
}
- 当枚举类中所有的对象都单独对抽象方法做了实现,那么公有的实现就可以删除
代码示例
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
常量对象 【(实参列表)】{
对父级做扩展
}
- 当枚举类中所有的对象都单独对抽象方法做了实现,那么公有的实现就可以删除
代码示例
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
[外链图片转存中…(img-gM3R6bIb-1715437177435)]
还有更多面试复习笔记分享如下
[外链图片转存中…(img-S872UeiD-1715437177435)]