java
文章平均质量分 84
彼岸花@开
万里南天外,求书禹穴间
展开
-
Arthas(阿尔萨斯)线上诊断使用笔记
Arthas是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪 Java 代码;实时监控 JVM 状态。原创 2024-07-03 17:04:57 · 653 阅读 · 0 评论 -
浅拷贝和深拷贝?仔细搞懂你
浅拷贝和深拷贝?仔细搞懂你原创 2022-08-12 11:07:32 · 350 阅读 · 0 评论 -
对象池commons-pool2
对象池commons-pool2原创 2022-06-29 10:35:02 · 898 阅读 · 0 评论 -
ThreadLocal深入调研
目录1.什么是ThreadLocal?2.基本使用2.1.常用方法2.2.ThreadLocal类与Synchronized关键字的区别3.ThreadLocal的内部结构4.ThreadLocalMap中hash冲突的解决1.什么是ThreadLocal?提供线程内部的的局部变量;不同的线程之间不会干扰,也就是线程隔离;在该线程的生命周期中起作用,线程结束,ThreadLocal也随着消亡;总结:线程并发:在多线程并发的场景 传递数据:ThreadLoca原创 2021-07-16 11:13:37 · 121 阅读 · 0 评论 -
Java集合基础知识(HashMap,ConcurrentHashMap)
1..HashMap底层原理(JDK1.7)底层:哈希表(数组+单向链表),数组类型Entry[]Entry对象包含了4个元素hashcode,key,value,下一个节点的地址构造器默认构造器,初始化数组长度赋值16,负载因子赋值0.75(扩容阈值threshold是16*0.75=12)带参构造器,初始化数组长度是2的指数倍(例如,传递24,实际上是32),负载因子是传递的值threshold,扩容阈值是2的指数倍*thresholdput方法(头插法)小知识点原创 2021-05-10 15:34:57 · 93 阅读 · 0 评论 -
Java集合基础知识(List,Set)
1.数组和集合数组数组和集合都是对多个数据进行内存存储操作,不是持久化存储,简称容器。数组的特点一旦指定长度,就不可以更改 申明了同一类型数据就只能存放该类型的数据数组的缺点数组长度确定了就不可更改 删除,增加元素,都效率低下 数组中实际元素的数量没有提供对应的方法或者属性来获取 数组存储:有序,可重复,对无序,不可重复的数组不能满足要求针对上诉缺点,就引入了新的存储数据结构-----集合不同的集合数据结构不一样,集合不一样,特点也不一样集合集合分两类原创 2021-04-29 11:03:10 · 159 阅读 · 0 评论 -
布隆过滤器
1.布隆过滤器1.1.简介本质是一种数据结构,本质是一个很长的二进制向量和一系列随机映射函数,可以简单理解成一个二进制数组。二进制的特点:不是0就是1。充分利用了数组的快速查询功能主要用于判断一个元素是否在一个集合中,0代表不存在,1代表存在,有一点的误判率1.2.场景(解决大规模数据下不需要精确过滤的场景)检查垃圾邮件地址 爬虫URL地址去重 redis缓存穿透问题(需要预先把需要查询的过滤条件放入布隆过滤器,先查布隆过滤器,如果没有则返回没有,如果有,查redis缓存,缓存没有,原创 2021-04-25 13:39:41 · 70 阅读 · 0 评论 -
linux下安装Redis最新版本,搭建多哨兵,搭建分布式Cluster集群,springboot2.x集成和封装
目录1.下载并解压Redis linux版本2.安装C++ 环境3.安装redis1.下载并解压Redis linux版本在redis官网下载最新的版本,我这里是6.0.6版本,http://download.redis.io/releases/redis-6.0.6.tar.gz,一般上传到/opt目录下解压redis-6.0.6.tar.gz:tar -zxvfredis-6.0.6.tar.gz2.安装C++ 环境#安装gcc套装(如果是新系统gcc通常安装不.原创 2021-04-20 13:48:31 · 208 阅读 · 0 评论 -
Redis从通俗到易懂(上)
1.先聊Nosql概述为什么要用Nosql,不用mysql呢?1.1.单机mysql的时代90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够,那个时候基本都是静态网页,服务端无压力。大数据时代的当下,网站的瓶颈是什么?数据量太大,一个msql放不下 数据量太大,数据库索引(B+ Tree),一个服务器内存也放不下 访问量读写混合,一个服务器也承受不了1.2.Memcached(缓存)+Mysql+垂直拆分(读写分离+缓存)网站80%的情况都是读,每次都去查询数据.原创 2021-04-16 14:52:56 · 79 阅读 · 0 评论 -
老调重弹-代理模式
一.概念(纯粹理解)java代理模式是一种设计模式,分静态代理和动态代理。代理模式有两点好处:1.隐藏委托类的具体实现2.不改变委托类的情况下,增加切面逻辑委托类是指具体实现了接口的实现类。代理类是指调用了委托类的实现,当作“中介”的作用。静态代理:代理类和委托类实现了同一个接口,在代理类的构造函数的参数中传入委托类的对象实例,在代理类的接口实现中,调用该对象实例,同时增加...原创 2019-11-15 09:43:35 · 204 阅读 · 0 评论 -
maven本地仓库--各种好玩的配置
目录前提1.自定义配置本地仓库目录2.设置maven依赖的jdk版本3.使用指定的阿里云maven中央仓库4.配置私有仓库(假如所有的maven项目都使用私服,例如nexus3)5.使用本地仓库的jar包,禁止从远端(有可能是外网的中央仓库,有可能是私服nexus3)下载6.将本地jar包导入本地仓库前提下载并解压maven客户端apache-maven-3.6.3-bin.zip1.自定义配置本地仓库目录打开apache-maven-3.6.3\conf\s原创 2021-04-12 17:45:57 · 454 阅读 · 0 评论 -
Java多线程基础知识梳理
线程是程序中执行的线程,Java虚拟机允许应用程序同时执行多个执行线程每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行一.线程创建1.继承Thread类,重写run方法,编写线程执行体,创建线程对象,调用start()方法启动线程。(由于类单一继承,不建议使用)public class TestDemo extends Thread{ @Override public void run() { System.out.println(Thread.current原创 2021-03-24 16:00:57 · 110 阅读 · 0 评论