![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Code_Flyer
这个作者很懒,什么都没留下…
展开
-
初识布隆过滤器BloomFilter
一、认识: 布隆过滤器,英文叫BloomFilter,可以说是一个二进制向量和一系列随机映射函数实现。 可以用于检索一个元素是否在一个集合中。二、原理:数据存储示意图-->说明:bit数组中以n个索引位(n个不同的hash算法后的产生的索引)表示一个数据小结:布隆过滤器是用于判断一个元素是否在集合中。通过一个位数组和N个hash函数实现。 注意:布隆过滤器有宁可错杀一百,也不能放过一个的特质,只会误报,不会漏报 优点: 空间效率高,所占空间小。...原创 2020-10-09 23:49:07 · 307 阅读 · 0 评论 -
@Transaction注解使用注意事项
@Transaction写的位置 控制事务的规则 总结:使用位置:1、用在接口或接口的方法上,AOP必须是JDK代理方式,否则 无效。不推荐2、用在类或类方法上。 推荐3、注解应该被应用到publick 修饰的方法上,其他(protected,private)事务回滚无效4、只有来自外部的方法调用,事务才有效。(同一个类内部调用回滚无效)回滚控制:...原创 2020-02-05 23:42:43 · 1019 阅读 · 0 评论 -
一个系统中调用其他多个接口,响应时间最短方案
接口调用流程图串行执行:总耗时:接口1 + 接口2并行执行:总耗时: < 接口1+ 接口2 ,或 >= 任意一个接口时间原创 2020-02-04 23:40:34 · 950 阅读 · 0 评论 -
动态代理的实现方式及优缺点
动态代理:是使用反射和字节码的技术,在运行期间(内存中)创建指定接口或类的子类以及实例化对象的技术,通过这个技术可以无侵入性的为代码进行增强扩展。1、实现方式(目前有2种): a. JDK原生动态代理 b. CGLIB动态代理2、运行流程: 一般的java对象实例化如下: 动态代理方式运行如下:实现方式: 1、JDK原生动态代理...原创 2020-02-04 14:43:16 · 537 阅读 · 0 评论 -
多线程下面临(不同的读写场景)的解决方案
多线程下保证安全,我们可以使用内置锁,但是呢,它面临着一些性能浪费。因为只有写才会产生安全问题,读没必要加锁。 对于不同的读写场景,我们可以使用不同的解决方案:使用volatile关键字(一写多读) 使用读写锁(多读多写),ReadLock和WriteLock 使用写时复制容器CopyWrite系列(很少写,很多读),这里需要注意,该容器不会保证数据的实时一致性,但有最终一致性。...原创 2020-02-03 18:45:17 · 281 阅读 · 0 评论 -
类加载机制和双亲委派模型
第一、类加载过程首先呢,应用程序在使用我们Java类时,包含以下七个阶段,即生命周期:1、加载:通过类的全限定名找到.class文件,把它从一个文件的字节流按照虚拟机规定的运行时的数据结构存储在方法区中,最后在虚拟机内存中生成一个代表这个类的class对象,作为访问这些数据的入口2、验证:检查每个.java文件对应的.class文件所形成的字节流中包含的信息是否符合虚拟机规范的要求...原创 2020-01-27 22:30:56 · 211 阅读 · 0 评论 -
线程池内部对于新提交的任务是如何处理的?
第一、线程池的优点提高线程的可管理性(可统一分配、调优、监控) 降低资源消耗(可重复利用创建好的线程) 提高响应速度(节省了线程的创建和销毁时间)第二、运行流程 ThreadPoolExecutor的参数int corePoolSize:核心线程数,也是线程池中最小数量。 int maximumPoolSize:线程池中允许的最大线程数。 long keepAliveTi...原创 2020-02-03 17:13:02 · 727 阅读 · 0 评论