接口中可以定义方法

1. 定义静态方法(直接调用)

public interface Test {
public static void method() {
/**
* 1、定义一个静态的带有方法体的方法
* 2、接口不能创建对象,调用静态方法不需要对象
* 3、接口名调用
*/
System.out.println("接口中静态方法");
}
} 2. 定义普通方法(需要子类实现接口) public default void methodDefault(){
System.out.println();
}

isAssignableFrom() 方法与 instanceof 判断继承关系

isAssignableFrom()方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。
isAssignableFrom()方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。 使用方法: 父类.class.isAssignableFrom(子类.class) 子类实例 instanceof 父类类型

Enum 枚举类

Enum.valueOf(enumType, name.toUpperCase()):将枚举常量名称转换成枚举常量

参数:
enumType -- 这是枚举类型,一个常量的类的对象。
name -- 这是枚举常量名称。 返回值:
此方法返回具有指定名称的枚举常量。 (Class<E> enumType).getEnumConstants():通过Class对象取得所有的枚举常量

Java8妙用Optional解决判断Null为空的问题

Optional(T value):私有构造函数

of(T value):构造Optional对象,value为空会报错

empty():返回value为null的EMPTY对象

ofNullable(T value):value为null不会报错,而是返回EMPTY对象

orElse(T other)
orElseGet(Supplier<? extends T> other)
orElseThrow(Supplier<? extends X> exceptionSupplier)
这三个函数都是在构造函数传入的value值为null时,进行调用的。
orElse和orElseGet:相当于value值为null时,给予一个默认值。 map(Function<? super T, ? extends U> mapper)
flatMap(Function<? super T, Optional<U>> mapper)
这两个函数做的是转换值的操作。 获取name:
public class User {
private String name;
public String getName() {
return name;
}
}
String city = Optional.ofNullable(user).map(u-> u.getName()).get(); public class User {
private String name;
public Optional<String> getName() {
return Optional.ofNullable(name);
}
}
String city = Optional.ofNullable(user).flatMap(u-> u.getName()).get(); isPresent()
ifPresent(Consumer<? super T> consumer)
isPresent即判断value值是否为空,而ifPresent就是在value值不为空时,做一些操作。 filter(Predicate<? super T> predicate)
过滤
Optional<User> user = Optional.ofNullable(user).filter(u -> u.getName().length()<6);

Lombok

@Data相当于:
@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。 @EqualsAndHashCode:
1. 此注解会生成 equals(Object other) 和 hashCode() 方法。
2. 它默认使用非静态,非瞬态的属性
3. 可通过参数 exclude 排除一些属性
4. 可通过参数 of 指定仅使用哪些属性 @EqualsAndHashCode(callSuper = true):
用自己的属性和从父类继承的属性来生成hashcode。 @NoArgsConstructor:
自动生成无参数构造函数。
@AllArgsConstructor:
自动生成全参数构造函数。

Timer(线程安全) 定时任务

Timer:
public class Timer {}
通过 synchronized 保证线程安全。 TimerTask:
public abstract class TimerTask implements Runnable {}
(一个抽象类,它的子类代表一个可以被Timer计划的任务)
通过 synchronized 保证线程安全。 (1)Timer.schedule(TimerTask task,Date time)
安排在指定的时间执行指定的任务。
(2)Timer.schedule(TimerTask task,Date firstTime ,long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行.
(3)Timer.schedule(TimerTask task,long delay)
安排在指定延迟后执行指定的任务.
(4)Timer.schedule(TimerTask task,long delay,long period)
安排指定的任务从指定的延迟后开始进行重复的固定延迟执行.
(5)Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)
安排指定的任务在指定的时间开始进行重复的固定速率执行.
(6)Timer.scheduleAtFixedRate(TimerTask task,long delay,long period)
安排指定的任务从指定的延迟后开始进行重复的固定速率执行.

Halo(三)的更多相关文章

  1. Halo 开源项目学习(三):注册与登录

    基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的. 博客安装 项目启动成功后,我们可 ...

  2. Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(三)

    一.前提: 完成前一篇的内容. 具体参考:Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(二)篇 二.本篇目标: l  说说游戏中各种角色的动作.属性以及重构思路 l  进行代码重构让色狼大叔和 ...

  3. [Android 4.4.3] 泛泰A870 Mokee4.4.3 20140610 RC2.0 通过刷第三版 by syhost

    欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam  (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...

  4. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十二 || 三种跨域方式比较,DTOs(数据传输对象)初探

    更新反馈 1.博友@落幕残情童鞋说到了,Nginx反向代理实现跨域,因为我目前还没有使用到,给忽略了,这次记录下,为下次补充.此坑已填 2.提示:跨域的姊妹篇——<三十三║ ⅖ 种方法实现完美跨 ...

  5. 【English】三、以o结尾单词变复数

    一.以O结尾的词,许多加es构成复数,特别是一些常用词如: potatoes      土豆 tomatoes     西红柿 echoes 回声 tornadoes    龙卷风 torpedoes ...

  6. Unity 编辑器学习(三)之 Light & Baked

    上一篇博客已经详细的介绍GI了,接下来我们讲点实际的,怎么烘焙场景及注意事项. 一.Light Property: Function: Type 当前灯光的类型.有四种类型:Directional,  ...

  7. Halo(十三)

    Spring Boot Actuator 请求跟踪 Spring Boot Actuator 的关键特性是在应用程序里提供众多 Web 接口, 通过它们了解应用程序运行时的内部状况,且能监控和度量 S ...

  8. Halo(一)

    @EnableJpaAuditing 审计功能(启动类配置) 在实际的业务系统中,往往需要记录表数据的创建时间.创建人.修改时间.修改人. 每次手动记录这些信息比较繁琐,SpringDataJpa 的 ...

  9. Windows系统下三十款优秀开源软件

    Windows系统下三十款优秀开源软件 1.Firefox 官方网站:http://www.getfirefox.com/ 可替换Internet Explorer 功能特点:如果你还没有使用Fire ...

随机推荐

  1. 【leetcode】1012. Complement of Base 10 Integer

    题目如下: Every non-negative integer N has a binary representation.  For example, 5 can be represented a ...

  2. Java并发与多线程与锁优化

    前言 目前CPU的运算速度已经达到了百亿次每秒,所以为了提高生产率和高效地完成任务,基本上都采用多线程和并发的运作方式. 并发(Concurrency):是指在某个时间段内,多任务交替处理的能力.CP ...

  3. BLUEHOST香港主机FTP连接不上解决办法

    昨天购买了BLUEHOST的香港主机后,以为一切顺风顺水,结果FTP却连接不上,用了多种FTP工具都不行,​​​按官方博客要求开启了TSL仍然不行​.​经过一晚上的测试后终于成功,现分享出来. 方法一 ...

  4. spring-boot整合shiro实现权限管理

    1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...

  5. MAX3232 每次只有在上电后,再连接串口线正常——保护电阻。RS232防雷保护

    转载:http://m.newsmth.net/article/Circuit/298517?p=1 转载:http://www.360doc.com/content/18/0719/13/57938 ...

  6. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)

    1. 问题详细提示如下: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unava ...

  7. [CSP-S模拟测试]:u(差分)

    题目背景 $\frac{1}{4}$遇到了一道水题,完全不会做,于是去请教小$D$.小$D$看了一眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{4}$只好来问 ...

  8. Instagram几个queryhash

    page_query_hash 42323d64886122307be10013ad2dcc44comment_query_hash 33ba35852cb50da46f5b5e889df7d159f ...

  9. 颁发不受浏览器信任的SSL证书

    xshell登录服务器,使用openssl生成RSA密钥及证书 # 生成一个RSA密钥 $ openssl genrsa -des3 -out tfjybj.key 1024 # 生成一个证书请求$ ...

  10. 《图解设计模式》读书笔记6-2 Chain of Responsibility模式

    目录 1. 简介 2. 示例程序 类图 代码 3. 模式的角色和类图 角色 类图 4. 思路拓展 1. 简介 Chain of Responsibility模式是责任链模式,模式的核心就是转移责任.就 ...