蟑螂恶霸qaq
码龄9年
关注
提问 私信
  • 博客:83,497
    83,497
    总访问量
  • 57
    原创
  • 959,961
    排名
  • 7
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2016-04-05
博客简介:

qq_34548229的博客

查看详细资料
个人成就
  • 获得58次点赞
  • 内容获得30次评论
  • 获得111次收藏
创作历程
  • 1篇
    2021年
  • 33篇
    2020年
  • 26篇
    2019年
成就勋章
TA的专栏
  • 数据库相关
    2篇
  • Java基础
    8篇
  • Spring全家桶
    8篇
  • 多线程与高并发
    13篇
  • 面试
    3篇
  • 操作系统
    2篇
  • JVM
    5篇
  • 网络
    2篇
  • Zookeeper
    2篇
  • Linux相关
    2篇
  • Redis
    1篇
  • 数据结构与算法
    6篇
  • 设计模式
    11篇
  • LeetCode
    1篇
  • ElasticSearch学习
    1篇
  • 其它
    2篇
  • 前端
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

立个flag,五月把mysql的八股文写了

立个flag,五月把mysql的八股文写了
原创
发布博客 2021.05.08 ·
275 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ReadWirteLock读写锁源码分析

首先看构造方法然后看获取读锁和获取写锁方法以上表示内部有2把锁,一把读锁一把写锁,这两把锁都有一个变量为sync同步器(也就是aqs),在reentranReadWirteLock构造方法里初始化了读锁和写锁,并在初始化读写锁方法里将读写锁的同步器设置为reentranReadWirteLock的同步器。所以实际上虽然有2把锁,但用的是同一个aqs。。。未完待续...
原创
发布博客 2020.07.22 ·
235 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一文读懂NIO

前言NIO看了好多的博客、视频,都学不明白,最多只是单纯的记住了代码而已,时间一久就忘得一干二净,更不用说学习更牛逼的Netty,Nginx,Redis的底层原理了。所以这篇博客从底层讲起,从操作系统上的BIO到Non-blocking IO到Java中的NewIO,只有真正理解了原理,才能学会NIO。操作系统知识首先要有一点操作系统的前置知识。系统调用的概念都知道操作系统中分为用户态(可以理解为应用程序所在的空间)和内核态(可以理解为操作系统内核所在的空间)。用户态是不能直接访问内核态的,要访
原创
发布博客 2020.07.15 ·
410 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

多个线程做排序,返回最早排序好的线程的结果

多个线程做排序,返回最早排序好的线程的结果最近面天猫,面试官出了一道这样的题:假设有一个排序方法,里面起了5个线程、分别用一个排序算法做排序操作,这个方法返回5个线程中最快排好序的结果。一下子把我问懵了,我知道主线程等待多个线程执行完毕再执行可以用join,但主线程等待任意一个线程执行完毕就执行,我没想过这个问题。不过我倒是知道这个问题肯定是问的juc下的那些新的同步锁,只是一下子脑子突然懵了有点想不起来。最终只想到一个countDownLatch,遗憾了(虽然就算答出来应该也过不了面试~)。实
原创
发布博客 2020.07.14 ·
473 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

ThreadLocal全解析以及Java的强软弱虚引用

ThreadLocal全解析最近在面试一家还算二三线的略知名厂时,被问到了ThreadLocal,虽然大致的使用方式是回答出来了,但面试官问到使用ThreadLocal需要注意什么,以及它为什么会导致内存泄漏的问题时,就一脸懵逼了。所以写篇文章记录一下。ThreadLocal本身并不复杂,但面试一旦被问到,拖个5-10分钟还是没问题的,感觉也算是一个有“性价比”的知识点。Java的四种引用(强软弱虚)首先需要一点前置知识,Java中实际上有4种引用。强引用在之前的学习中了解到gc会收集那些没
原创
发布博客 2020.07.11 ·
504 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

多线程之 线程池总结

JDK提供2种线程池,ThreadPoolExecutor、ForkJoinPool这里先写ThreadPoolExecutor 有时间再写ForkJoinPoolThreadPoolExecutorJDK提供4种默认的线程池,实际上他们的底层都是ThreadPoolExecutor,通过传入构造方法的7个参数实现不同的功能Executors.newSingleThreadExecutor(); // 单个线程的线程池Executors.newCachedThreadPool(); // 0个核心
原创
发布博客 2020.06.20 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

hashmap 源码阅读总结记录

初始化方法时 最大容量为什么是 2的30次方因为扩容是左移,如果1<<30还左移就是2的31次方了,比整形的最大值还大(整形溢出)初始化:判断是否最大容量检查负载因子设置阈值 初始值为12 阈值为16 大于初始值的最小的2的n次方问题: 怎么计算出来的然后就没了:说明初始化时并没有初始化hash表补充:里面有很多transient关键字,表示序列化时不需要保存put方法:可重复put 覆盖原值取hash值:问题:为.
原创
发布博客 2020.05.28 ·
148 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM 从入门到放弃

一图流总结
原创
发布博客 2020.05.26 ·
176 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Mysql 索引相关

原创
发布博客 2020.05.26 ·
135 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

四种 I/O控制方式

https://www.jianshu.com/p/eb5b9c539c3eI/O控制方式设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分别介绍。1 程序直接控制方式在早期的计算机中,由于无中断机构,处理机对I/O设备的控制采用程序直接控制方式,或称为忙-等待方式。如图(a)所示,计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的..
原创
发布博客 2020.05.11 ·
23697 阅读 ·
13 点赞 ·
0 评论 ·
56 收藏

Zookeeper应用 配置管理和分布式锁

由于zk的一些特性:速度快、高可用、临时节点、序列节点、watcher等所以可用zk来实现分布式的配置管理(如注册中心) 或者 分布式锁这里简单用java + zk来实现准备idea新建springboot项目,主要是POM要引入Zookeeper的包,注意包的版本必须和zk服务器的版本一致!分布式配置如图,分布式节点连接zk集群,watch其中的节点数据(配置),则在节点数据被修...
原创
发布博客 2020.04.24 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Zookeeper入门 集群安装

官网的介绍意思是数据节点是一个树形结构,有点类似于文件系统,比如要访问a目录下的b目录下的c文件就是/a/b/c但不同于文件系统,他的每一个层级也是一个数据节点,比如a也是一个数据节点,能保存数据的节点类型有2种:永久节点、短暂节点永久节点就是普通节点短暂(临时)节点就是指这个节点的存在依赖于zk和client的连接(session),当zk或者client挂了时,session消...
原创
发布博客 2020.04.23 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

VMware 新建一个基本的Linux虚拟机与快照克隆

新建一个能联网,有jdk的linux虚拟机,便于克隆复制多个节点出来1.新建一个虚拟机后,修改网络配置vm 网络设置nat,具体百度。这里给vm设置了192.168.153.0的子网,192.168.153.1是vm外部的网卡ip 192.168.153.2是vm内部的网关cd /etc/sysconfig/network-scriptsvi ifcfg-ens33 文件ONBOOT=...
原创
发布博客 2020.04.23 ·
233 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis 主从集群及哨兵机制

主从集群设置进入utils目录./install_server,安装3个6379 6380 6381的服务复制生成的/etc/redis/63xx.conf的3个文件到新建的test目录下修改复制过来的3个配置文件,关闭后台运行,关闭日志输出至文件(可在前台观察到日志输出)分别按照几个配置文件启动分别用redis-cli连接replicaof host port命令,可将从连接主主...
原创
发布博客 2020.04.19 ·
165 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

跳表SkipList原理及Java实现

https://www.cnblogs.com/acfox/p/3688607.html有空再自己写8
原创
发布博客 2020.04.17 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式之责任链模式

责任链模式就是:A B C三个任务处理的类,通过setNext方法组成一个链表(责任链),当一个任务到来时,在链表中依次往下流转,遇到能处理这个任务的节点时,任务被处理,否则继续往下流...
原创
发布博客 2020.04.03 ·
135 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 347 PriorityQueue

解这类求"前k个"的题目,关键是看如何定义优先级以及优先队列中元素的数据结构。题目中有”前k个“这样的字眼,应该很自然地联想到优先队列。优先级别可以由字符串出现的次数来决定,出现的次数越多,优先级别越高,反之越低。统计词频的最佳数据结构就是哈希表(HashMap),利用一个哈希表,就能快速地知道每个单词出现的次数。将单词和其出现的次数作为一个新的对象来构建一个优先队列,...
原创
发布博客 2020.04.02 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PriorityQueue 优先级队列

每次取出时,都是取得优先级最高的底层实现:二叉堆(二叉堆用数组实现)(没有传入自定义比较器时,使用自然排序)插入节点:移除节点时(poll)...
原创
发布博客 2020.04.02 ·
175 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

双向链表+HashMap 实现LRU算法(leetcode 416)

import java.util.HashMap;/** * @author MasterYee * @Description: * @date: 2020/3/29 */public class LRUCache { class Node{ int key; int value; Node pre; Node...
原创
发布博客 2020.03.29 ·
360 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

代理模式之CGLIB动态代理

出处CGLIB(Code Generation Library)详解什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在githu...
原创
发布博客 2020.03.13 ·
181 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多