zoukankan      html  css  js  c++  java
  • Halo(三)

    接口中可以定义方法

    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)
    	安排指定的任务从指定的延迟后开始进行重复的固定速率执行.
    
  • 相关阅读:
    thinkpad的trackpoint在webstorm或phpstorm下滚动条失效的解决方案
    SQL 中操作XML类型数据
    远程调试项目
    2021031520210321 助教一周小结(第七周)
    2021030820210314 助教一周小结(第六周)
    2021030120210307 助教一周小结(第五周)
    2021022220210228 助教一周小结(第四周)
    2021020820210214 助教一周小结(第二周)
    2021021520210221 助教一周小结(第三周)
    2021032220210328 助教一周小结(第八周)
  • 原文地址:https://www.cnblogs.com/loveer/p/11895878.html
Copyright © 2011-2022 走看看