Synchronizd Lock 锁升级 AQS

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

限流器 RateLimiter

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

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 …

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文件二进制文件–>验证与解析(格式 关键字 关键词 语法 引用 类型转化等等) –> 初始化 –> 使用 –> 卸载

Java CAS 理解

CAS(Compare and Swap) 是利用底层硬件平台特性,实现原子性操作的算法,Java 1.5 以后 JUC(java.util.concurrent) 实现主要以此为基础;找了不少资料以下记录一下个人对于 CAS 的理解(部分资料 copy

Java内存之直接内存

一、概念和特征 直接内存并非 JVMS 定义的标准 Java 运行时内存。 JDK1.4 加入了新的 NIO 机制,目的是防止 Java 堆 和 Native 堆之间往复的数据复制带来的性能损耗,此后 NIO 可以使用