zsf_lance
码龄8年
求更新 关注
提问 私信
  • 博客:45,985
    45,985
    总访问量
  • 45
    原创
  • 12
    粉丝
  • 16
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
加入CSDN时间: 2016-11-28

个人简介:努力努力再努力~

博客简介:

asd804171023的博客

查看详细资料
个人成就
  • 获得23次点赞
  • 内容获得5次评论
  • 获得64次收藏
创作历程
  • 15篇
    2020年
  • 15篇
    2019年
  • 15篇
    2018年
成就勋章
TA的专栏
  • 数据结构和算法
    3篇
  • jvm
    2篇
  • redis
    1篇
  • spring
    4篇
  • 网络
    2篇
  • 分布式
    1篇
  • 注册中心
    1篇
  • Java基础
    7篇
  • rpc
    3篇
  • linux
    4篇
  • mysql
    2篇
  • 消息中间件
    3篇
  • 设计模式
    1篇
  • Elasticsearch
    4篇
  • 错误记录
    2篇
  • docker
    1篇
  • 数据库
    1篇
  • 数据库中间件
  • git
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 8

TA参与的活动 0

  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

java线程(三)syschronized同步原理

作用 保证原子性(同步代码中的执行不受其他线程干扰),可见性(同步代码中修改后的数据,退出同步后,对其他线程立即可见),有序性(多条线程有序执行) 用法修饰静态方法,相当于对类的class对象加锁。 修饰实例方法,相当于对当前实例对象加锁。 同步代码块,可以自由选定加锁对象。知识点jdk1.6之前单纯通过monitor实现锁,但因为需要切换内核态执行线程阻塞和线程唤醒等调用...
原创
发布博客 2020.04.03 ·
583 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

java线程(二)ThreadLocal

ThreadLocal存取元素实际上是以当前threadlocal为key存储的,值为value存储到线程对象thread中的threadlocalmap中。添加元素执行结束后要remove,否则如果与线程池配合使用,会导致元素一直存在线程中被占用,如果没有再次被使用既会变成内存泄漏,如果再次使用可能会有脏数据的问题。(为什么强调线程池,因为在线程池中线程才不会回收,线程如果被回收自然不会...
原创
发布博客 2020.04.03 ·
279 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Dubbo(应用篇)

参考自dubbo官网 http://dubbo.apache.org/en-us/注册中心注册中心通过registry标签配置,可配置多个。注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。注册中心不做请求转发,相当于目录服务,存储地址和地址变更通知注册中心与消费端、服务端均为长连接,与服务端保持长连接可以检测服务提供端是否异常,与消费端保持...
原创
发布博客 2020.04.01 ·
383 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息队列之kafka

读写数据基于topic,每个topic分为多个partition,每个partition有多个副本。每个partition分为多个段文件,在/KaTeX parse error: Expected '}', got 'EOF' at end of input: {topicName}-{partitionid}/目录下存储一个个segment文件。分为log文件和索引文件,索引文件分为按照offs...
原创
发布博客 2020.03.28 ·
310 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

消息队列之RabbitMq

为什么用消息队列解耦、削峰、异步。解耦两个业务系统,比如订单系统用户下单后,积分系统添加积分,则订单系统可以通过发mq消息,积分系统监听mq消息处理。如果还有其他业务系统需要在用户下单时做一些业务处理,则监听这个消息就可以。否则通过http调用,需要在修改订单系统增加调用,订单系统则会越来越复杂,各业务系统也越来越耦合。异步有些比较耗时而又非要求实时性的,比如同步账号数据、导出大数据量表...
原创
发布博客 2020.03.28 ·
812 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

树型算法题解

树结构如下 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }1. 获取给定二叉树最小深度思路:通过广度优先遍历能更快找到最优解。深度优先搜索也可以找到最优解,但是需要找到所有解后广度优先搜索,一层一...
原创
发布博客 2020.03.26 ·
1320 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

linux 和 操作系统知识点

常用命令ps -ef 查询所有进程,包含启动信息,启动用户、进程idpmap -x 查询进程内存占用top 查看系统运行情况,查看负载,内存占用,cpu占用,用M按内存排序,用P按照cpu占用排序。top -Hp 制定进程输出线程信息。du -h --max-depth=1 查看当前一级目录下的文件大小,不指定深度则当前目录下每个字目录都会列出来df -h df是查看磁盘总使用情况,-h...
原创
发布博客 2020.03.26 ·
729 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

http、https

http无状态(每次连接都是相互独立的、相互不影响)、无连接(每次连接处理完就断开连接)、应用层协议。为了解决无连接多次请求的效率问题、新增了长连接保持连接不关闭。为了解决http协议的无状态、http的应用上增加了cookie和session用于维护请求的状态。http常见返回码200 成功状态码204 响应成功,但是报文实体没有内容301 表示资源已经被转移,永久重定向,...
原创
发布博客 2020.03.26 ·
1259 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

tcp、udp

tcp传输控制协议,传输层协议。通过建立连接,后再传输数据,通过连接实现了流量控制、数据有序性、数据可靠性(丢失重传)等特性。但是因为需要维护连接所以效率偏低。需要维护半连接队列和全连接队列。udp用户数据报协议。不需要建立连接,直接将数据报发给接收端,存在出现丢包,数据无序,无法控制流量等问题。传输效率高。数据包小,包头字节数少。tcp和udp区别Tcpudp可靠性...
原创
发布博客 2020.03.26 ·
275 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

springmvc原理浅析

原理基于servletspringmvc的核心类DispatcherServlet,基于javaweb传统开发模式,顶层继承自HttpServlet,在web.xml中配置该Servlet匹配的路径为/,即所有请求都会经过DispatcherServlet进行处理。实现servlet的doGet、doPost等方法,最终都经过doDispatch方法处理,在该方法进行参数解析、路径匹配处理、响...
原创
发布博客 2020.03.26 ·
289 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式事务

两阶段提交(2pc)第一阶段:准备工作,询问各节点是否可以提交事务,节点响应是否可以提交,让事务进入准备状态。第二阶段:若都响应可以提交,则向所有节点发送提交事务。所有节点都确认后,结束事务。如果有一个准备阶段响应失败,则都不执行提交操作,而是执行事务回滚操作。原理:通过预先占用资源(比如对要更改的数据进行加锁)的方式实现分布式事务。数据库的xa事务。优点:保证较强的一致性。缺点:性...
原创
发布博客 2020.03.26 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring(二) aop和事务

aop面向切面编程,可以将业务代码和功能代码分开,比如日志打印和权限控制等等,避免重复代码和解耦。通过动态代理,运行期修改字节码信息,实现字节码增强,根据原有类生成代理类。aop定义切入点 pointcount在哪个方法,哪个类切入通知 advice切入的内容切面 aspect切入点+通知advior 另一种切面切入点+通知,advisor只持有一个Pointcut和一个adv...
原创
发布博客 2020.03.26 ·
498 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

zookeeper

zk的作用基于watcher机制异步通知的方式,注册znode,其他服务监听znode的变动,可以实现服务注册中心,集群管理,一致性协调服务等,可以降低系统的耦合。角色leader: 处理读写请求。写请求会转发给leader,然后由leader广播给follower,leader收到一半的ack则认为写成功了,然后持久化数据,应答客户端。follower: 处理读请求,且参与过半投票,参与...
原创
发布博客 2020.03.26 ·
249 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Dubbo(原理浅析篇)

dubbo spi扩展dubbo扩展利用java的spi机制,使高层引用底层,用户可以通过spi扩展dubbo。java spi通过在META-INF目录创建services文件夹,然后以接口全限定名作为文件名,多个实现类的权限定名为文件内容,通过ServiceLoader类的load方法传入接口class,即可获取到所有实现类。原理是通过在指定目录查找该类的文件,从文件中获取权限定名并创建...
原创
发布博客 2020.03.26 ·
712 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring ioc原理浅析

ioc控制反转传统创建对象,需要在用到的地方new对象,如果一个类的创建方式发生改变,那么所有调用到的地方都要改动。spring基于di依赖倒置的思想,通过ioc控制反转将bean的创建、初始化、销毁生命周期都交给spring容器,高层不再直接依赖底层,而是通过第三方获取。调用类需要用到什么对象,只需要通过spring获取。好处提高了代码的可维护性,对象的管理只需要一个地方配置,比如一个被...
原创
发布博客 2020.03.26 ·
301 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

分布式缓存之redis知识点

数据类型字符串string、散列hash、列表list、集合set、有序集合sorted set、位图bitmap、基数统计HyperLogLogs、消息队列Streams基本数据类型底层的数据结构不是固定的,会根据数据情况进行调整。底层数据结构redis使用c语言实现,以下的数据结构都是底层通过c语言定义的结构。 hashtable字典结构。字典结构类似hashMap,使用哈希表,...
原创
发布博客 2019.11.20 ·
252 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

jvm类加载、内存划分、GC机制

类加载流程加载:获取类的字节流,将类信息存储到方法区,在堆中生成该类的class对象指向类信息验证:类似编译期的验证。验证类文件格式、类的版本信息(防止低版本虚拟机加载高版本类字节流)、语义分析比如重载是否合法、是否继承final定义的类等等类似编译期的验证,防止加载了跳过编译器生成的错误的字节码文件。准备:为成员变量赋初始值(比如对象引用初始化为空,基本数据类型int初始化为0)、fin...
原创
发布博客 2019.11.01 ·
322 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

java线程(四) 线程池原理

线程池作用:限制线程数,管理线程、避免频繁创建和销毁线程造成性能损耗ThreadPoolExecutor作用封装线程池的一系列逻辑,通过该类可创建线程池。构造参数corePoolSize 核心线程数,有任务时才会创建线程,一般情况核心线程不会过期,一直占用,除非调allowCoreThreadTimeOut方法设置允许过期,核心线程才会因为空闲超时而过期keepAliveTim...
原创
发布博客 2019.10.27 ·
304 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

java线程(五) concurrent包

1 . 原子类原子基本数据类型。AtomicInteger、AtomicLong、AtomicBoolean 支持cas设置值,自增等操作。 将基本数据类型的value设置为volatie保证可见性 AtomicInteger通过unsafe方法的compareAndSwapInt方法进行设值,AtomicLong使用unsafe的compareAndSwapLong...
原创
发布博客 2019.10.10 ·
183 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

java线程(一)基础知识点

1. 内存模型内存划分JMM规定了内存主要划分为主内存和工作内存两种。主内存和工作内存只是jvm规范划分的两个抽象概念,为了屏蔽不同处理器的内存处理差异制定的规范。跟JVM内存模型(堆、栈、方法区)是在不同的层次上的描述,如果要对应起来,主内存相当于对应的堆空间、元空间,工作内存对应部分栈空间,从硬件角度,主内存对应的是硬件的物理内存,工作内存对应的寄存器和cpu高速缓存。 jvm规范约定...
原创
发布博客 2019.09.25 ·
185 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多