摘要: 2Redis扩容环境准备 2.1资源申请 申请 32 个 redis 分片资源(主备) 申请 8 台 redis-proxy资源 申请 1 台 虚机(安装RMT工具) 2.2环境搭建 安装redis (含sentinel)版本:3.2.1.1 redis配置要与生产保持一致 安装 redis-pro 阅读全文
posted @ 2022-02-16 15:31 lvoooop 阅读(279) 评论(0) 推荐(0) 编辑
摘要: #浏览器生产消息 ##1.生成http请求 http请求消息:请求行+请求头+空行+请求数据 http响应 消息:状态行+响应头+空行+响应体 状态码 get/set方法 ##2.DNS服务器 1.DNS解析器如何解析域名 2.DNS服务器如何存储域名 3.域名各级含义 ##3.Http通信 1.调 阅读全文
posted @ 2022-01-21 17:12 lvoooop 阅读(119) 评论(0) 推荐(0) 编辑
摘要: ##Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka层级:topic——partition——Replica(Leader/Follower) Kafk 阅读全文
posted @ 2022-01-14 09:37 lvoooop 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 近期完成了职业生涯的第一个需求,即现有系统的国密改造。 主要内容是更新原系统内的加密算法,将国际通用加密算法更改为国密加密算法: 主要涉及SM2,SM3,SM4。 SM2为非对称算法 SM4为对称算法 SM3为摘要算法 . 其中遇到的坑简单罗列如下:(以下问题只对应公司提供的加密软件包,不同工具或许 阅读全文
posted @ 2021-09-29 16:00 lvoooop 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 最近的需求是统一日志系统,在排查日志类型时发现GC的文件从前未接触过。学习记录如下: 2021-09-28T19:03:37.939+0800: 13.994: [GC (Allocation Failure) [PSYoungGen: 94241K->18904K(116736K)] 292602 阅读全文
posted @ 2021-09-29 14:31 lvoooop 阅读(191) 评论(0) 推荐(0) 编辑
摘要: SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 SM2 非对称加密算法,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 204 阅读全文
posted @ 2021-07-20 16:49 lvoooop 阅读(5010) 评论(0) 推荐(1) 编辑
摘要: 重载(运行时决定)重写(编译时决定) synchornized与volatile(原子性与有序性角度) volatile和synchronized的区别 volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取; synchronized则是锁定当前变量,只有 阅读全文
posted @ 2020-10-26 20:13 lvoooop 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 利用三元组(ip地址,协议,端口)就可以标识网络的进程 socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭) socket是“open—write/read—close”模式的一种实现,那么socket就提供了这些操作对应的函数接口 tcp通信中的sock 阅读全文
posted @ 2020-08-31 16:07 lvoooop 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 线程进程 进程是资源分配的最小单位,线程是CPU调度的最小单位 调用 start 方法方可启动线程并使线程进入就绪状态,而 run 方法只是 thread 的一个普通方法调用,还是在主线程里执行。 数组链表 AQS再整理 (双,单)链表查找:遍历,二分,调表 udp多对多?广播 阅读全文
posted @ 2020-06-05 18:01 lvoooop 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 如何反编译 什么是jar包 为什么要手动gc Linux部署java https://www.cnblogs.com/onepixel/p/7674659.html 阅读全文
posted @ 2020-05-27 00:08 lvoooop 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 双数有序找单值 public int singleNonDuplicate(int[] nums) { int l = 0, h = nums.length - 1; while (l < h) { int m = l + (h - l) / 2; if (m % 2 == 1) { m--; // 阅读全文
posted @ 2020-04-19 13:37 lvoooop 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 1介绍缓存 2 缓存穿透 2.1 什么是缓存穿透 正常情况下,我们去查询数据都是存在。 那么请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去。 这种查询不存在数据的现象我们称为缓存穿透。 2.2 穿透带来的问题 试想一下,如果有黑 阅读全文
posted @ 2020-04-12 18:22 lvoooop 阅读(213) 评论(0) 推荐(0) 编辑
摘要: orm原理 对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(在Java中可以用XML或者是注解),将程序中的对象自动持久化到关系数据库中或 阅读全文
posted @ 2020-04-10 19:42 lvoooop 阅读(107) 评论(0) 推荐(0) 编辑
摘要: public int[][] merge(int[][] intervals) { ArrayList<int[]> res = new ArrayList<>(); if (intervals.length<2)return intervals; //重写排序规则 返回值为负则表示参数a<参数b, 阅读全文
posted @ 2020-02-17 17:40 lvoooop 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 线程池相关问题 concurrentHashmap;(https://crossoverjie.top/2018/07/23/java-senior/ConcurrentHashMap/)关于hashmmap的部分问题 hashmap 1.7put: 根据key计算hashcode,根据hashco 阅读全文
posted @ 2020-01-04 20:55 lvoooop 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一 线程安全 1.1 什么是线程安全? 如果对于一个对象可以安全地被多个线程同时使用,那么它就是线程安全的。 1.2 Java语言中的线程安全 在这里讨论线程安全,就限定于多个线程之间存在共享数据访问这个前提。 将Java语言中各种操作共享的数据分为5类: (1)不可变 不可变对象一定是线程安全的( 阅读全文
posted @ 2020-01-02 22:40 lvoooop 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 这节我们总结一下JVM运行期的优化问题。 https://www.cnblogs.com/zhouyuqin/p/5224573.html JVM运行期优化 即时编译器(JIT) 编译对象与触发条件 编译对象 触发条件 编译过程 编译优化技术 JVM运行期优化 Java程序在运行的期间,可能会有某个 阅读全文
posted @ 2019-12-23 11:43 lvoooop 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 第三章 JDK并发包https://www.cnblogs.com/sean-zeng/p/11957569.html JAVA的线程是映射在操作系统的原生线程上的,所以使用synchronized对线程的操作是重量级的,在不必要的条件下应尽量避免使用。 JDK内部提供了大量实用的API和框架。本章 阅读全文
posted @ 2019-12-19 23:07 lvoooop 阅读(248) 评论(0) 推荐(0) 编辑
摘要: JVM的编译器可以分为三个编译器: 1、前端编译器:把.java转变为.class的过程。如Sun的Javac、Eclipse JDT中的增量式编译器(ECJ)。 2、JIT编译器:把字节码转变为机器码的过程,如HotSpot VM的C1、C2编译器。 3、AOT编译器:静态提前编译器,直接将*.j 阅读全文
posted @ 2019-12-19 11:16 lvoooop 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 第一章 几个概念 同步:一次方法调用须等到其返回后才能有后续 异步:一次方法调用后在另一线程执行,调用者可不必等其返回就可进行后续 并发:任务以极短的时间交替进行 并行:任务同时进行 临界区:公共资源 阻塞:临界区资源被占用,须等待前一线程释放。 死锁:彼此占用所需资源,都无法继续进行 饥饿:线程优 阅读全文
posted @ 2019-12-11 16:47 lvoooop 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 一、运行时栈帧结构 栈帧是用于支持虚拟机进行方法调用和执行的数据结构,是虚拟机栈的栈元素。 栈帧存储了局部变量表,操作数栈,动态连接,和返回地址等。 每一个方法的执行 对应的一个栈帧在虚拟机里面从入栈到出栈的过程。 只有位于栈顶的栈帧才有有效的,对应的方法称为当前方法。 执行引擎运行的所有指令只针对 阅读全文
posted @ 2019-12-10 17:11 lvoooop 阅读(111) 评论(0) 推荐(0) 编辑
摘要: java虚拟机具有语言无关系,它只和“class文件“这种特定的二进制文件格式绑定。 不同语言的编译器将对应的程序编译成字节码文件(*.class),送给jvm执行。 class文件本质上就是一张表,由各类数据项构成。 2.1、魔数(是否可以被虚拟机执行)和class文件版本 2.2、常量池(两大类 阅读全文
posted @ 2019-12-04 20:50 lvoooop 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 确定对象已废弃需要两步: 利用可达性分析算法(与GC roots有关联——虚拟机栈中的对象,方法区静态对象,方法区常量对象,本地方法引用的对象)判断是否需要回收。 是否覆盖过finalize方法并执行:覆盖过可以“免死一次”。 引用的概念: 强引用(Strong Reference):通常我们通过n 阅读全文
posted @ 2019-11-27 21:39 lvoooop 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区域: 程序计数器:字节码的行号指示器。 虚拟机栈:为每个方法创建一个栈帧(存放方法中的局部变量,变量引用等)。 本地方法栈:存放本地方法。 以上是线程独立的 堆:存放对象实例 方法区:存放类的版本,字段,方法,接口和常量池(运行时常量池)。 线程共享 1、创建对象,在堆中开辟内存时是如何 阅读全文
posted @ 2019-11-27 16:36 lvoooop 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 最近看了一些关于spring框架的材料,发现其中涉及很多设计模式的东西没有接触过。在此着重补习一下常用的设计模式。 参考大佬微博https://www.cnblogs.com/K-artorias/category/1115270.html 。 创建型:~~~~~~~~~ 单例模式 class si 阅读全文
posted @ 2019-11-07 16:01 lvoooop 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 微信点餐用到的日志框架:slf4j(门面)+logback(框架) @RunWith(SpringRunner.class) @SpringBootTest @Slf4j public class LogTest { @Test public void test1(){ String name =" 阅读全文
posted @ 2019-11-06 20:27 lvoooop 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 参看大佬博客https://www.cnblogs.com/xiaoxi/p/5935009.html 阅读全文
posted @ 2019-08-30 10:07 lvoooop 阅读(135) 评论(0) 推荐(0) 编辑
摘要: spring boot 关系数据库 sql语句 阅读全文
posted @ 2019-08-26 10:07 lvoooop 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 关系型数据库原理与进阶 java细节 数据结构 试着找一下 阅读全文
posted @ 2019-06-20 11:36 lvoooop 阅读(95) 评论(0) 推荐(0) 编辑
摘要: DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。 下图是dubbo的架构图: 节点角色说明: Provider: 阅读全文
posted @ 2019-06-14 17:05 lvoooop 阅读(398) 评论(0) 推荐(0) 编辑