自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 《少有人走的路》语录

爱是人们自律的原动力。真正的爱是行动,是一种由意愿而产生的行动。爱一个人却没有付诸行动,就等于从未爱过。

2022-09-01 03:27:06 337 1

原创 知识总结篇

文章目录java基础equals和hashCode方法String特性StringBuilder和StringBufferjava容器集合分类SetListQueueMapHashMap原理容器中的设计模式java并发创建线程线程方法jdk线程池支持-Executor框架volatile关键字互斥同步锁AQS组件线程安全级别锁优化自旋锁锁消除锁粗化轻量级锁偏向锁JVM内存模型堆内存结构如何判断对象是否死亡垃圾收集算法常见垃圾收集器类加载机制类加载器双亲委派模型打破双亲委派模型Mysql索引相关数据结构和算法

2022-01-11 11:51:39 636

原创 踩坑经验总结

转发MQ起因:数据状态发生改变,代码中始终找不到相应的代码。最后发现在另一个服务中做了修改,并且转发了MQ过来。总结:MQ生产和消费最好是端到端,遵循单一职责的软件设计原则,不要在服务中因为业务进行转发MQ,难以排查问题,后人迭代开发及其容易忽略并踩坑。数据库主从同步延迟数据库主从同步不及时会导致查到的数据出现问题。总结:当一个流程中有多个数据库操作,并且操作之间数据互相依赖,极易因为数据库主从同步不及时出现脏读数据。性能和强一致性不能兼得。...

2021-12-27 20:32:39 398

原创 设计模式总结

软件设计原则开闭原则对扩展开发,对修改关闭单一职责原则一个类之负责一个功能领域的相应职责里式替换原则所有引用基类的地方必须能透明地使用其子类的对象依赖倒置原则依赖于抽象,不能依赖于具体实现接口隔离原则类之间的依赖关系应该建立在最小的接口上合成/聚合复用原则尽量使用合成/聚合,而不是通过继承达到复用的目的迪米特法则一个软件实体应该尽可能少的与其他实体发生相互作用设计模式软件开发人员在软件开发过程中面临的一般问题的解决方案。设计模式分类创建型单例模式、工厂方法模式、抽象工厂

2021-12-26 16:14:16 250

原创 Dubbo知识

dubbo三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现。工作原理:服务注册,注册中心,消费者,提供者,代理通信,负载均衡。网络通讯、序列化:dubbo协议,长连接,NIO,hessian序列化协议。负载均衡策略...

2021-12-18 11:59:49 331

原创 消息队列MQ

文章目录消息队列使用消息队列的好处使用消息队列带来的问题消息队列使用消息队列的好处通过异步处理提高系统性能(削峰,减少响应时间,分担数据库压力)降低系统耦合性使用消息队列带来的问题系统可用性降低:需要考虑消息丢失,mq挂掉的情况。系统复杂度提高:需要保证消息没有重复消费,处理消息丢失,保证消息传递的顺序性。一致性问题:异步消息没有被正确消费,导致数据不一致。...

2021-12-18 11:58:58 477

原创 Spring知识

文章目录Springspring主要模块spring-mvcIOCAOPspring aop 与AspectJ aop区别spring中bean的作用域spring声明类注解spring中bean的生命周期springBean默认为单例singletonSpringspring主要模块spring-core:核心模块,主要提供ioc依赖注入功能。spring-aspects:与AspectJ的集成提供支持。spring-aop:提供了面向切面编程的实现。spring-jdbc:数据库连接。sp

2021-12-18 11:56:48 676

原创 Redis知识

文章目录redis分布式缓存redis单线程模型为什么redis单线程还能支撑高并发redis存储的数据类型redis设置过期时间redis如何实现高并发redis主从架构redis主从复制原理redis如何保证高可用性redis哨兵模式哨兵参数哨兵核心机制redis哨兵主备切换造成的数据丢失问题redis持久化机制RDB和AOF的区别缓存雪崩和缓存穿透解决redis并发竞争key缓存+数据库读写模式怎么保持缓存和数据库双写时数据一致性redis集群数据分布算法redis cluster维护集群协议red

2021-12-18 11:48:03 558

原创 Mysql知识

mysqlmysql存储引擎存储引擎MyISAM和InnoDB的区别:InnoDB支持主外键;事务;行锁-操作时只锁定一行,不对其他行有影响,适合高并发操作;缓存索引和数据,对内存要求较高,内存大小会影响性能;MyISAM不支持主外键,事务;表锁,即使操作一条数据也会锁整个表,不适合高并发操作;只缓存索引。查询缓存开启查询缓存后,会在同样的查询条件和数据的情况下,会直接在缓存中返回结果。缓存虽然提高查询效率,但会带来额外开销,每次查询后都会做一次缓存操作,失效后还要销毁。什么是事务事务:逻辑

2021-12-18 11:41:23 668

原创 JVM知识

文章目录JVMjava内存区域堆的基本结构虚拟机如何判断对象死亡垃圾收集算法java对象的创建过程常见的垃圾收集器双亲委派模型常用jvm启动参数JVMjava内存区域线程共享区域:堆、方法区(包含常量池)-1.7之后常量池放入堆中线程私有区域:虚拟机栈,本地方法栈、程序计数器直接内存:1.8 将方法区移到直接内存中虚拟机栈:主要存放了线程中方法调用的参数数据,包括基本数据类型,对象的引用等局部变量。本地方法栈:和虚拟机栈类似,但存放的是native修饰的本地方法。堆:虚拟机内存中占比最大的一

2021-12-18 11:40:08 1477

原创 Java基础

java基础面向对象语言优势:易维护,易复用,易扩展。特点:封装,继承,多态。缺点:比面向过程语言性能低。原因:java是半编译语言,最终执行的代码不是直接被cpu执行的二进制机械码,大多数面向过程语言可以直接编译成二进制码执行。java和C++的区别都是面向对象的语言,支持封装,继承,多态。java不支持指针访问内存,内存更安全。java类是单继承,c++是多继承;java接口可以多继承。java有自动内存管理机制。计算机存储单位bit B KB MB GB TB等1Byte(

2021-12-18 11:27:28 1141

原创 《代码大全》笔记

代码大全软件构建软件开发过程中的不同活动定义问题、需求分析、规划构建、软件架构、详细设计、编码与调试、单元测试、集成测试、集成、系统测试、保障维护待更

2021-11-08 20:53:23 85

原创 《Spring实战》阅读笔记

spring实战核心特性:DI依赖注入、AOP面向切面编程简化java开发为了降低java开发的复杂性,Spring采取了以下四种关键策略:1、基于POJO的轻量级和最小侵入性编程2、通过依赖注入和面向接口实现松耦合3、基于切面和惯例进行声明式编程4、通过切面和模板减少样板式代码POJO–简单实体类耦合–一般指软件组件之间的依赖程度最小侵入性java类中没有任何痕迹表明使用了Spring。DI依赖注入创建应用组件之间协作的行为通常称为–装配。Spring可使用xml或注解方式来自

2021-11-08 20:51:01 278

原创 Java多线程

文章目录并发并行线程并发级别可见性有序性指令重排创建线程obj.notify()obj.wait()Thread.join()Thread.yield()voiatile关键字线程优先级关键字Synchronizedi++重入锁ReentrantLock线程池jdk中对线程池的支持——Executor框架ThreadLocalCAS乐观锁并发常用的设计模式sleep和wait方法的区别为什么调用start()方法时会执行run()方法,而不能直接调用run()方法runnable接口和callable接口的

2021-03-17 15:58:27 82

原创 《深入理解Java虚拟机》阅读笔记

深入理解java虚拟机什么是java虚拟机jvm通俗来说是一个程序,操作系统角度来看,当它运行起来就是一个进程。是执行字节码文件(.class)的虚拟进程。自动内存管理机制运行时数据区域线程共享:堆:内存大,存放对象实例。垃圾收集器管理的主要区域,也称gc堆。方法区:存储已经被虚拟机加载的类信息、常量(运行时常量池)、静态变量、即时编译器编译后的代码等数据。线程私有:虚拟机栈:方法执行的内存模型,存储方法中的局部变量、方法出口等信息。本地方法栈:本地native方法执行的内存模型。程序

2021-03-05 10:59:22 417 1

原创 投资学习总结

技术面量价关系同时上涨,后势看好同时下跌,底部出现价跌量增,崩盘信号价升量缩,反转信号换手率底部换手率高,主力吸筹,后续看涨高位换手率高,主力获利,后续看跌行情底部特征地量见地价:成交量低,股价低金针探底:下跌中出现长下影线底部突破放量买入法关键条件:1.底部连续调整一段时间,并且缩量2.突然放出巨量,突破盘整平台行情顶部特征天量见天价:成交量巨大,价格高金针探顶:上涨中出现长上影线大阴吞阳:顶部出现大阴线比前一日阳线长1.规则成长的量能量能/成交额:增增减2.不规

2021-02-24 16:44:19 463

原创 Jdk8特性

jdk8特性函数式接口接口中有且只有一个抽象方法@FunctionalInterface注解 – 表示此接口为函数式接口,约束接口中只能有一个抽象方法使用一般可以作为方法的参数和返回值类型当一个方法的参数是函数式接口时,调用此方法时可以传入接口的实现类,也可以用lambda表达式来实例化函数式接口。(实际上是对匿名内部类写法的简化,但lambda表达式创建的匿名内部类,编译后不会有class文件,原理上与匿名内部类不太相同,性能会有所提高)lambda表达式-延迟执行有些代码执行之后,结果不

2021-02-24 16:37:41 64

原创 SpringBoot学习总结

springBoot1.pom文件通过父项目管理依赖版本,所以我们导入依赖一般不需要写版本,除了springBoot没有管理的依赖。springboot将所有功能场景都抽取出来,做成一个个starters,例如spring-boot-stater-web。只需要在项目中引入这些stater,相关场景的依赖都会导入进来。2.主配置类@SpringBootApplication标注的类,称为主配置类。项目启动时会运行主配置类的main方法,并且将所有主配置类所在包下的所有子包里面的组件扫描到sprin

2021-02-24 16:33:29 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除