监控企业网站模板巴中公司网站建设
监控企业网站模板,巴中公司网站建设,八年级学生做的简易网站,制作网页喜欢可以逛逛博主的博客#xff1a;m1kasaz - m1kasaz的博客
接口和抽象类的区别
接口是对行为的抽象#xff0c;抽象类是对本质的抽象。一个类具有多种功能#xff0c;可以实现多个方法#xff0c;但它只能是“它”#xff0c;只能继承一个类。使用习惯上#xff0c;我…喜欢可以逛逛博主的博客m1kasaz - m1kasaz的博客接口和抽象类的区别接口是对行为的抽象抽象类是对本质的抽象。一个类具有多种功能可以实现多个方法但它只能是“它”只能继承一个类。使用习惯上我们一般利用类实现代码的复用利用接口实现代码的规范与解耦。接口中的default 和 static方法有什么区别default方法表示这是它的默认实现如果你不重写这个方法被调用时就按照默认的走static表示这个方法归接口所有你不需要实现。final关键字的作用final关键字可以修饰类但不能修饰抽象类、方法、变量。如果修饰类表示这个类无法继承。如果修饰方法表示这个方法无法重写。修饰变量表示这是一个常量。不能修饰抽象类抽象类是为了被继承但是final会阻止他被继承如何创建一个不可变对象类声明为final不可继承所有成员变量声明为private final不提供修改变量的setter方法通过构造器初始化时如果是引用类型要进行深拷贝Deep Copy防止外部修改原对象。线程池对比直接new一个线程的优点能复用线程降低初始化线程的性能开销提高线程的响应速度能应对突发流量如果1000个请求交给系统处理线程池可以设置最大线程数量进行限流threadlocal可能出现的问题内存泄漏。threadlocal的底层基于hashmap其key是threadlocal本身是一个弱引用对象其值为强引用对象其生命周期就是线程的生命周期。但是如果我们使用的是线程池线程不会被彻底销毁当ThreadLocal实例被 GC 回收后ThreadLocalMap中会出现 Key 为null的 Entry。由于Value与当前Thread之间存在强引用链路只要线程不销毁如在线程池中这部分 Value 就永远无法被回收导致内存泄漏。拒绝策略直接抛出异常调用主线程执行该任务直接丢弃丢弃最旧任务spring创建bean的方式component注解扫描基于配置类的confuguration和bean基于配置类的importaop的常用注解和其实现机制什么情况会失效注解作用执行时机Aspect声明切面标注在类上表示这是一个切面类。Pointcut定义切入点规定哪些方法需要被拦截如execution(* com.xxx.service.*.*(..))。Before前置通知在目标方法执行之前运行。After后置通知在目标方法执行之后运行无论成功还是抛出异常。AfterReturning返回通知在目标方法正常执行完毕后运行。AfterThrowing异常通知在目标方法抛出异常后运行。Around环绕通知最强大。手动控制目标方法的执行joinPoint.proceed()可修改输入输出。实现机制当你为一个bean配置了切面spring不会直接返回原对象而是返回代理对象jdk代理 通过java.lang.reflect.Proxy动态创建一个实现类。cglib代理通过字节码增强技术动态创建一个目标类的子类并重写方法。失效情况自调用现象方法A调用方法B且只有B有AOP注解这个时候类内部还没有创建动态对象就会失效。方法修饰符不是publicfinal方法或static方法内部类或非 Spring Beanredis的基本数据结构String基于SDS简单动态字符串实现。用于单值存储、计数器、分布式锁。List基于quicklist将多个ziplist像链表一样连接。推送最新内容、简单消息队列头进尾出Hash基于ziplist使用连续内存块或hashtable不连续通过hash函数映射。存储结构化数据Set基于intset整数集合或hashtable实现。对比Hash结构核心功能就是去重。ZSet基于skiplisthashtable或ziplist。用于排行榜、范围查询等skiplist:(22 封私信) SkipList跳表高效查找的利器 - 知乎zset数据量太大可能导致什么问题如何优化问题内存占用、读写效率、运营备份、集群失效优化思路限制大小、设置过期时间value无法设置过期时间需手动删除、切分大setredis为什么快基于内存、IO多路复用避免了单线程的IO阻塞这一致命问题具体来说IO多路复用就是设置一个selector不断轮询socket等某个socket就绪后才通知线程处理该请求没有通知时该线程会空闲mysql为什么选择b树其实是问b树的优势b树的非叶子节点只存储索引叶子节点存储数据的结构而且一个非叶子节点可以有多个子树。这使得其与其他树相比树高更低增删改查的效率都会更高。b树的叶子节点按顺序排列使其天然支持范围查找对应了sql中频繁的范围查找。深分页的优化思路深分页为什么慢以下面一条语句来举例-- 需求查询第 100001-100010 条订单按创建时间排序 SELECT id, order_no, create_time FROM orders WHERE status 1 ORDER BY create_time DESC LIMIT 100000, 10;mysql会先查询100010条数据然后舍弃前100000条。所有我们优化的核心思路就是让他查快点。从查询速度的角度思考我们可以添加索引从查询量的角度思考我们可以提前计算主键值。索引的细节就是最好创建联合索引这样索引的性价比比较高提前计算就是先算好某一页对应的主键值比如第二页是100000到110000这样。