最后
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:
Dubbo面试专题
JVM面试专题
Java并发面试专题
Kafka面试专题
MongDB面试专题
MyBatis面试专题
MySQL面试专题
Netty面试专题
RabbitMQ面试专题
Redis面试专题
Spring Cloud面试专题
SpringBoot面试专题
zookeeper面试专题
常见面试算法题汇总专题
计算机网络基础专题
设计模式专题
接下来我们就通过自定义注解
的方式,为大家介绍两个手机号
& 是否是日期
。
在此之前,都到这里了,你别问我注解
是一个什么东西,这边建议您回炉
一下 (≖‿≖
1、自定义手机号校验
- 自定义注解
@Target({ElementType.FIELD})//用来描述属性字段
@Retention(RetentionPolicy.RUNTIME)//用来描述运行时状态
@Constraint(validatedBy = IsPhoneValidator.class)//指定自定义校验器
public @interface IsPhone {
//校验错误信息
String message() default “手机号格式有误”;
//是否强制校验
boolean isRequired() default false;
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
- 自定义校验器
这里我用了hutool包的【正则表达式池】 (ฅ’ω’ฅ
//实现ConstraintValidator,泛型为: <校验注解,需要校验的值的类型>
public class IsPhoneValidator implements ConstraintValidator<IsPhone,String> {
private Boolean isRequired = false;
@Override
public void initialize(IsPhone constraintAnnotation) {
isRequired = constraintAnnotation.isRequired();
}
//参数1:传来的参数内容
//参数2:上下文(可以获取到注解填写的内容)
@Override
public boolean isValid(String phone, ConstraintValidatorContext constraintValidatorContext) {
if (isRequired){
return isPhone(phone);
}else {
if (!StringUtils.isEmpty(phone)){
return isPhone(phone);
}else {
return true;
}
}
}
//采用hutool包中的正则表达式池来校验手机号
public boolean isPhone(String phone){
return ReUtil.isMatch(Validator.MOBILE,phone);
}
}
- 测试
这样子定义完就可以使用了
@PostMapping(“/test”)
public R test(@Validated @RequestBody TestBean testBean){
System.out.println(testBean.getPhone());
return R.ok();
}
因为我这里没有定义自定义拦截校验拦截器,就是如下的情况:↓
这样子就算完成了 (•˘_˘•
2、自定义校验时间是否为合法
那一开始肯定也是定义我们的自定义注解
- 自定义注解
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
分享如下**
[外链图片转存中…(img-xFci5aob-1715683941149)]