万金油之缓存

在互联网产品中,缓存无处不在。当一个网站前期请求量少,服务响应很快,当随着请求增加响应越来越慢。这时需要对请求的入口合并、业务调整、底层代码重构、数据库SQL与表等等优化后提高响应最终提升整体的性能,也可以引入缓存以提高吞吐量。但是引入缓存也带了维护的问题,比如脏数据的问题、缓存数据更新的策越等等。

Synchronizd Lock 锁升级 AQS

Synchronized 在1.5以前是重量级锁,当遇到synchronzed时,其他线程需要等待并进入blocked状态。 在1.6以后,经过大量的测试发现加锁的地

限流器 RateLimiter

限流器 我们项目是新闻类的站点,每天需要限制各种爬虫,保证服务在可承受范围内,需要保护后台服务正常。需要使用限流器。 固定 滑动 令牌桶 一 固定窗口:

Spring Bean创建过程

bean初始化过程: 大体分为三个过程bean的对象创建、属性填充、初始化事件 bean的创建前事件,其中bean的创建前事件主要场景是在aop

Java_docker_jvm

当前jvm配置 -XX:+PrintFlagsInitial 查看初始 docker JAVA_OPTS 1-XX:+AlwaysPreTouch 2 JAVA进程启动的时候,虽然我们可以为JVM指定合适的内存大小,但是这些内存操作系统并没有真正的分配给JVM

Controller方法上自定义注解

定义自定义注解 1@Retention(RetentionPolicy.RUNTIME) 2@Target(ElementType.PARAMETER) 3public @interface Logined { 4} 注解处理器 1@Component 2@Slf4j 3public class LoginedArgumentResolver implements HandlerMethodArgumentResolver { 4 @Override 5 public boolean supportsParameter(MethodParameter parameter) { 6 return …

HandlerMapping

Spring HandlerMapping 1package org.springframework.web.servlet; 2 3import javax.servlet.http.HttpServletRequest; 4 5import org.springframework.lang.Nullable; 6 7public interface HandlerMapping { 8 // 省略一下常量配置..... 9 /** 10 * 返回此请求的处理程序和任何拦截器。可以根据请求URL、会话状态或实现类选

Java 基础技

Java 基础技能 包括以下大致内容 Object类的常用方法 常用反射方法 常用字段处理 枚举处理 泛型的获取 基本类型的判断 1. isAssignableFrom

用一条SQL查询产品的库存

使用一条SQL语句,对产品的库存查询。 产品的表结构 1CREATE TABLE `temp` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT, 3 `product_id` int(11) NOT NULL, 4 `flag` int(1) DEFAULT NULL, 5 `size` int(11) DEFAULT NULL, 6 PRIMARY KEY (`id`) 7) ENGINE=InnoDB DEFAULT CHARSET=utf8; 字段 描述 id 主键 product_id 产品唯一

HttpClient 工具类

HttpClient 工具类 1package cn.linuxcrypt.utils; 2 3import org.apache.http.*; 4import org.apache.http.client.ClientProtocolException; 5import org.apache.http.client.ResponseHandler; 6import org.apache.http.client.config.CookieSpecs; 7import org.apache.http.client.config.RequestConfig; 8import …

Java 8中的常用函数式接口

Java 8中的常用函数式接口 函数式接口 函数描述符 原始类型特化 Predicate T->boolean IntPredicate, LongPredicate, DoublePredicate Consumer T->void IntConsumer,LongConsumer, DoubleConsumer Function<T,R> T->R IntFunction, IntToDoubleFunction, IntToLongFunction, LongFunction, LongToDoubleFunction, LongToIntFunction, DoubleFunction, …

Java 类加载机制

Java 类的加载机制

大致流程: 读取.class文件二进制文件–>验证与解析(格式 关键字 关键词 语法 引用 类型转化等等) –> 初始化 –> 使用 –> 卸载