自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

转载 别去没有核心自研产品的公司

最近也有不少读者来问我:我拿到了两个offer,一个小企业研发职位,一个某大厂的外包岗位,怎么选择啊?我一般都是建议不要去外包,不是我对外包有多大仇恨,也不是有意甩锅外包公司,人家也是企业,也是靠实力看市场来赚钱。曾经也有读者和我聊过,他在外包公司,三年一点成长没有(没精力,天天加班,也没空间提升,因为大家都是干着流水线式码农的工作),不是忙项目就是忙出差,真的废了的一踏糊涂。眼下正值很多毕业生找工作的季节,对于初入社会的职场人来讲,第一份工作特别重要,它一定程度上决定了后面几年的路是怎么样的,是完美入

2022-02-25 09:41:13 330

原创 List 根据对象的属性去重

注意 优先在类中对象的equals()方法和hashCode()方法:

2022-06-10 15:57:36 2582 1

原创 Redis分布式锁 根据 redisTemplate创建

Redis 分布式锁

2022-06-09 14:30:17 546

原创 Redis持久化的两种方式

Redis持久化的两种方式redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采

2022-05-23 11:13:15 792

原创 Java 定时任务框架

定时任务框架https://zhuanlan.zhihu.com/p/414296662

2022-05-17 11:18:05 216

原创 事务四大特征:原子性,一致性,隔离性和持久性。

事务四大特征:原子性,一致性,隔离性和持久性。1、原子性(Atomicity)一个原子事务要么完整执行,要么干脆不执行。这意味着,工作单元中的每项任务都必须正确执行。如果有任一任务执行失败,则整个工作单元或事务就会被终止。即此前对数据所作的任何修改都将被撤销。如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的。一致性(Consistency)一致性代表了底层数据存储的完整性。它必须由事务系统和应用开发人员共同来保证。事务系统通过保证事务的原子性,隔离性和持久性来满足这一要

2022-05-17 09:41:47 311

原创 Redis 分布式锁

分布式锁在分布式环境下,多个程序/线程都需要对某一份(或有限制)的数据进行修改时,针对程序进行控制,保证同一时间节点下,只有一个程序/线程对数据进行操作的技术。简单来讲 就是在分布式项目 保证 多个线程 对某一份数据 同一个时间 节点下 ,只有一个线程进行操作一些有名气的博客三种实现分布式锁的方式https://blog.csdn.net/wuzhiwei549/article/details/80692278?ops_request_misc=%257B%2522request%255Fid%

2022-05-16 15:33:28 364

原创 java break和 contine加上标识符的效果

break标识符放在外循环public class Tetst { public static void main(String[] args) { ouer: for (int i = 0; i < 5 ; i++) { System.out.println("i=" + i); for (int j = 0; j <3 ; j++) { System.ou

2022-05-14 12:16:46 297

原创 Redis 缓存穿透 缓存击穿 缓存雪崩

缓存穿透大量请求进来 应用服务器压力变大 访问Redis 中不存在数据,导致一直去数据库查询不存在数据,无法同步到Redis上,最终导致数据库崩溃解决方案

2022-05-13 16:42:27 371

转载 Redis的架构模式

地址 添加链接描述

2022-05-10 17:09:30 129

原创 Redis 主从复制 哨兵模式 集群 原理和流程

1复制原理 Slave启动成功连接到master后会发送一个sync命令 Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后, master将传送整个数据文件到slave,以完成一次完全同步全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行.....

2022-05-09 14:36:45 314

转载 MinIO与FastDFS对比

该思维导图地址 https://mm.edrawsoft.cn/template/199330MinIO中文文档MinIO中文官网目前可用于文件存储的网络服务选择有很多,比如阿里云OSS、七牛云、腾讯云等等,但是收费都有点小贵。为了帮公司节约成本,之前一直是使用fastDFS作为文件服务器,准确的说是图片服务器。直到我发现了MinIO,我决定放弃FastDFS。关于MinIO的使用方法,我就不说了。大家去看MinIO官网地址:https://docs.min.io/docs/ ,非常详细。我就从..

2022-04-27 16:46:28 24810 5

原创 java中的各种锁-自旋锁/偏向锁/轻量级锁/重量级锁/乐观锁/悲观锁/分段锁/分布式锁等等

https://zhuanlan.zhihu.com/p/426929941CAS与自旋锁CAS自旋锁cas引出的ABA问题

2022-04-26 17:00:37 573

原创 Redis的事务

Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。三个操作 Multi、Exec、discard从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。组队的过程中可以通过discard来放弃组队。组队成功,提交成功组队阶段报错,提交失败组队成功,提交有成功有失

2022-04-26 16:56:25 139

转载 事务四大特征:原子性,一致性,隔离性和持久性。

事务四大特征:原子性,一致性,隔离性和持久性。1、原子性(Atomicity)一个原子事务要么完整执行,要么干脆不执行。这意味着,工作单元中的每项任务都必须正确执行。如果有任一任务执行失败,则整个工作单元或事务就会被终止。即此前对数据所作的任何修改都将被撤销。如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的。`2. 一致性(Consistency)一致性代表了底层数据存储的完整性。它必须由事务系统和应用开发人员共同来保证。事务系统通过保证事务的原子性,隔离性和持..

2022-04-26 11:46:49 11214

原创 关于子类和父类属性名和方法名相同时调用

public class T1 { String abc ="父亲"; static String we="我是父类静态属性"; public static void q(){ System.out.println("我是父类静态方法"); } public void qwe(){ System.out.println("我是父类"); }}public class T2 extends T1{

2022-04-05 15:38:03 866 1

原创 Docker安装

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。Docker CE 分为 stable test 和 nightly 三个更新频道。官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。1.CentOS安装DockerDocker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在C

2022-03-14 11:26:30 107

原创 Docker

认识DockerDocker与虚拟机Docker与虚拟机区别Docker 会将应用及其所需要的的依赖函数库 甚至操作系统的函数库 当应用运行起来会调用本地的函数库 然后 与Linux 系统 内涵进行交互 最后 调用 技术级硬件 于是就可以实现跨系统的运行情况Docker它的应用在执行时会直接调用 操作系统的内核,这种方式的性能要比虚拟机的方式要好很多虚拟机 会用到 Hypervisor的技术可以模拟出计算机的各种各样的硬件 然后在这个模拟的计算机上安装各种任意想要的操作系统 然

2022-03-08 09:47:26 7439

原创 java多线程

线程创建博客地址 添加链接描述博客地址添加链接描述添加链接描述线程状态package 多线程停止;/** * 1 线程建议 正常停止 利用次数 不建议死循环 * <p> * 2 建议设置标志位 * <p> * 3 不要使用stop destroy 等过时方法 */public class TestStop implements Runnable { // 定制一个标志位 private boolean falg = tr

2022-02-27 13:35:15 170

原创 spring cloud geteWay 网关

编辑 网关配置文件注册到nacos实现服务注册和服务发现

2022-02-25 17:18:47 569

原创 网关 nginx ribbon 三个 负载均衡的关系

地址请求进入网关 进行负载均衡 选择 nginx服务器 然后 Nginx也会进行负载均衡 选择注册中心, 然后注册中心 会使用ribbon进行负载均衡 选择调用一个接口Nginx服务器端负载均衡:nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。既请求有nginx服务器端进行转发。Ribbon客户端负载均衡:Ribbon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,让后在本地实现轮训负载均衡策略。既在客户端.

2022-02-25 17:12:26 2825

转载 Spring Cloud Alibaba 新一代微服务解决方案

1、Spring Cloud Alibaba 是什么Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。先说说 Spring Cloud提起微服务,不得不提 Spring Cloud 全家桶系列,SpringCloud 是若干个框架的集合,包括 spring-cloud-config、spring-cloud-bus 等近 20 个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式

2022-02-25 15:56:43 275

原创 springcloud feign

RestTemplate 调用出现的问题feignj介绍feign使用对应好 调用服务 的controller地址如那么在feign 调用这个接口 时写成userservice 指配置文件的

2022-02-25 09:51:58 197

原创 nacos集群搭建

Nacos集群搭建1.集群结构图官方给出的Nacos集群图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VCChcmwA-1645512411230)(assets/image-20210409210621117.png)]其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们计划的集群结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2QpFXKpL-1645512411232

2022-02-25 09:51:48 121

转载 策略模式替代 if else

1. 什么是策略模式?策略模式其实也是在解耦,把策略的定义、创建、使用这三个部分解耦开来,因为本身策略模式也是基于接口编程,这样其实可以简单的理解客户端调用使用接口进行编程,可以通过工厂方法创建对应的策略模式,进而完成对应的程序功能。这么说起来有点拗口,我们直接看程序吧。public interface Strategy { void alg();}public class ConcreteStrategyA implements Strategy { @Override public

2022-02-24 16:24:54 12937 9

原创 APP本机号码一键登录

网站点击一下就知道点击一下就知道点击一下就知道

2022-02-17 14:28:11 162

原创 spring cloud alibaba nacos

<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.5.RELEASE</version> ...

2022-02-16 16:30:16 686

原创 spring cloud eureka

搭建注册中服务注册

2022-02-14 14:17:19 126

原创 sleep()方法和wait()方法的区别?安全

sleep()方法和wait()方法的区别?安全sleep方法是Thread的静态方法,wait方法是Object类的普通方法sleep方法不释放同步锁,wait方法释放同步锁(执行notify方法唤醒wait的线程时是不释放同步锁的)wait方法用于线程间通讯,而sleep方法用于短暂的暂停线程sleep针对当前线程,而wait针对被同步代码块加锁的对象sleep方法是当前线程暂停指定时间,将执行机会让给其它线程,时间结束后进入就绪状态等待调用wait方法会暂停线程,当前线程释放对象的同步锁,

2022-02-14 11:20:24 95

原创 java Quartz定时器任务与Spring task定时的几种实现

基于java 的定时任务实现,Quartz 时间详细配置 请查阅 点击一下你就知道Quartz 时间简单介绍 请查阅最底部spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。使用Quartz,这是一个功能比较强大

2022-02-11 16:37:28 118

原创 Java中List集合去除重复数据的六种方法

方法1循环list中的所有元素然后删除重复public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get

2022-02-08 10:39:20 14996

原创 获取list集合中重复的元素

方法1 List<String> words = Arrays.asList("a", "b", "c", "d", "a", "d"); List<String> results = HashMultiset.create(words).entrySet().stream() .filter(w -> w.getCount() > 1) .map(Multiset.Entry::get

2022-02-08 10:21:36 9874

原创 mongo根据时间字段进行时间格式化并进行统计

public List countLogByUserIdAndDate(Long userId) { Criteria criteria = Criteria.where("userId").is(userId); Aggregation agg = Aggregation.newAggregation( Aggregation.match(criteria), Aggregation.project("createAt").and(DateOperators.DateToStri.

2022-02-07 09:32:51 1084

原创 数组及其内存管理三问

1 在java中 声明并创建数组的过程中,内存是如何分配的Java 语言是典型的静态语言,因此 Java 数组是静态的,即当数组被初始化之后,该数组 所占的内存空间、数组长度都是不可变的。Java 程序中的数组必须经过初始化才可使用。所谓初始化,即创建实际的数组对象,也就是在内存中为数组对象分配内存空间,并为每个数组 元素指定初始值。2 java数组的初始化有几种方式你能说说吗静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。动态初始化:初始化时程序员只指定数组长度,由

2022-01-26 09:50:07 125

原创 疯狂java数据结构、算法与技术素养笔记

文章目录数组与内存管理1.1数组初始化、注意数组与内存管理1.1数组初始化、数组的初始化有以下两种方式。静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。代码如下public class ArrayTest{ public static void main(String[] args) { // 采用静态初始化方式初始化第一个数组 String[] books = new S

2021-09-16 18:02:23 133 1

原创 栈“后进先出”和队列中“先进先出”的含义

从定义来说,栈限定仅在表尾进行插入或删除操作的线性表。也就是说它有两个操作,且操作数都在线性表尾部队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。这也就是说它的插入和删除操作的对象是不同的这些两种基本操作的操作数(参数)的不同就构成了先进先出与后进先出的效果.例如同样是在线性表中 “按顺序” 插入1,2,3,4对于栈,只允许在尾部删除,所以先出栈的将会是4,即后进先出形象点说,栈只有一个开口,先进去的就倒最底下,后进来的就

2021-09-15 14:20:10 3585

原创 疯狂springboot笔记及常用注解精简版

文章目录1 SpringBoot 入门@Controller@GetMapping@springBootAppliction注解相当于以下3个注解的组合版@Configuration@EnableAutoConfiguration@ComponentScan2 应用配置与自动配置1 SpringBoot 入门@Controller用于修饰类 指定该类的实例作为控制组件@GetMapping用于修饰方法和类,指定该方法所能处理Get请求的地址@ResponseBody用于修饰方法和类, 支

2021-09-14 14:39:59 605

原创 疯狂springboot终极讲义笔记(二)

springboot的web应用支持Restful服务支持访问sql数据库

2021-09-13 13:53:36 1423

原创 疯狂springboot终极讲义笔记(一)

文章目录springboot 入门springboot 入门

2021-09-01 10:14:49 2158

原创 框架常用注解解释

Select 映射查询的SQL语句SelectProvider Select语句的动态SOL映射。允许指定一个类名和一个方法在执行时返回运行的查询语句。有两个属性:type和 method,type属性是类的完全限定名,method是该类中的那个方法名。Insert 映射插入的SQL语句InsertProvider Insert语句的动态SQL映射。允许指定一个类名和一个方法在执行时返回运行的查询语句。有两个属性:type和 method,type属性是类的完全限定名,method是该类中的那个方法名

2021-05-16 11:13:56 117 1

java技术学习以及面试所使用的的资料

java技术学习以及面试所使用的的资料

2022-03-31

空空如也

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

TA关注的人

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