日常随笔杂记
文章平均质量分 77
夏季花醉
Java
展开
-
跳表DEMO
在平衡树上,我们找到指定范围的小值之后,还需要以中序遍历的顺序继续寻找其它不超过大值的节点。一般来说,平衡树每个节点包含2个指针(分别指向左右子树),而skiplist每个节点包含的指针数目平均为1/(1-p),具体取决于参数p的大小。如果像Redis里的实现一样,取p=1/4,那么平均每个节点包含1.33个指针,比平衡树更有优势。平衡树的插入和删除操作可能引发子树的调整,逻辑复杂,而skiplist的插入和删除只需要修改相邻节点的指针,操作简单又快速。原创 2022-12-18 10:51:21 · 219 阅读 · 0 评论 -
【NIO学习介绍】
首先NIO的介绍在网上有很多,有叫New I/O的,也有叫 no-block-I/O的,其实这两种叫法都可以,因为NIO是Jdk1.4之后引入的新的I/O技术,用于提升原有只能阻塞形式I/O的性能。本文主要介绍NIO的一些概念:两个核心技术I/O 多路复用和三个主要组件。......原创 2022-08-04 23:05:53 · 271 阅读 · 0 评论 -
ES的基础
* 数据量特别大,需要各种复杂查询(全文搜索功能、相似度搜索与比较、模糊匹配、地理位置聚合、搜索内容多语言支持与分词支持等)、聚合并尽量实时的场景。* 大量数据写入频繁,但更新较少,查询较多的情况* 数据模型后期存在大概率变动或不确定性等(改数据库结构会导致业务代码不稳定性)* 数据体量较大或者增量较快但是变更较小的情况(如海量日志数据:ELK)es中有四中节点,四种不同类型的Node是一个node.master和node.data的true/false的两两组合负责保存和更新集群的一些元数据信息,之后同步原创 2022-06-16 14:30:57 · 1200 阅读 · 0 评论 -
Bean生命周期
作为开发我们可能每天都是写很多的业务Bean,在使用框架给的系统功能Bean。但是很多人也会觉得这个是八股文并不重要所以我们很多时候并不是很清楚的了解一个Bean生成的过程和顺序。Spring中一个Bean的产生过程主要包括了以下四个主流程:实例化 Instantiation 属性赋值 Populate初始化 Initialization 销毁 Destruction其中每一步又涉及到很多前置、后置的一系列的扩展接口,详细不铺开了,可以借鉴一下下图。详细流程建议还是写一个Demo直接debu原创 2022-02-25 15:54:51 · 186 阅读 · 0 评论 -
dubbo的异步调用
不可否认dubbo是一款十分棒的架构设计,但是可能对它了解的不够,在使用过程中也是遇到了很多问题。发现时间久了之前一些遇到的问题没有落文档,慢慢也都忘了,这是一种损失我认为。所以就最近一次遇到的问题做一下笔记,如果有大佬看到有问题的地方可以指正一下。 目前的项目由于应用分的比较彻底,各应用之间的dubbo也是比较常见频繁,于是也就出现了一系列的服务治理问题,期间在服...原创 2020-03-24 23:29:16 · 641 阅读 · 0 评论 -
并发编程整理总结
并发编程总结1.线程1.1线程的实现这里展示最常见的两个(看代码吧),其实继承Thread这种如果看过源码的话你会发现也是去实现了Runnable接口。这里不做展开,感兴趣的可以自己跟一下源码。/** * @author XUWEIJIE * @since 2019/3/28 */public class T...原创 2019-03-28 22:31:19 · 304 阅读 · 0 评论 -
jvm参数和工具整理
打印垃圾回收时的配置:-verbose:gc -XX:+PrintGCDetials启用特定GC:-XX:+UseSerialGC指定堆内存大小: 最小:-Xms10M 最大:-Xmx20M指定新生代内存:-Xmn10M(这里是eden和两个Survivor的总大小,一般不去改动,对系统性能影响较大)指定eden大小:-XX:SurvivorRatio=8指定大对象标准...原创 2019-03-07 15:43:43 · 452 阅读 · 0 评论 -
Java类加载整理总结
1.概述一个Java文件从编写到最后地执行其实总结起来就是两步:1.编译;2.运行。编译,即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行,则是把编译生成的.class文件交给Java虚拟机(JVM)执行。而虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行验证,准备,解析,初始化,最终生成虚拟机可以直接使用的java类型,这个过程...原创 2019-02-27 14:20:39 · 249 阅读 · 0 评论 -
redis学习总结
一.什么是redis二.redis支持的数据结构以及对应的适应场景三.为什么要用redis(redis的优点)四.redis使用中的一些问题和处理方案一.什么是redis?Redis 是一个高性能的key-value(存储系统)内存数据库,和memcached类似。 二.redis支持的数据结构以及对应的适应场景?redis支持的数据结构有如下5种:Stri...原创 2019-02-25 13:27:04 · 181 阅读 · 0 评论 -
zookeeper一些配置随笔杂记
# ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。在实际开发中分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协 调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列 等功能。本人接触zookeeper时间不久,而由于项目技术栈限制目前只...翻译 2018-08-20 21:23:13 · 196 阅读 · 0 评论 -
java代理随笔杂记
正向代理: 1.通过一个代理去访问一些原本无访问到的网络资源。2.例如防火墙(VPN加速器):一些情况下由于访问一些网站会带来不可预料的危险, 但是我们又不得不访问时就可以使用正向代理,在正向代理配置中设置 影藏自身的一些基本信息,达到安全访问的目的。 反向代理: 一般用于分流用户请求到多个真实服务器上使用,均衡负载:1. 用户在实际使用中其实访问的负载均衡的ip而不是实际的服务器...转载 2018-08-20 21:16:15 · 178 阅读 · 0 评论 -
浅谈CountDownLatch
# CountDownLatch 最近复习线程池相关内容整理了一些资料:新手可以参考一下,大佬如果觉得有误也请指出。 CountDownLatch是JAVA提供在java.util.concurrent包下的一个辅助类,可以把它看成是一个计数器,其内部维护着一个count计数,只不过对这个计数器的操作都是原子操作,同时只能有一个线程去操作这个计数器(类似于),...原创 2018-08-27 21:18:28 · 226 阅读 · 0 评论