自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 无法加载文件Microsoft.PowerShell_profile.ps1...因为在此系统上禁止运行脚本

我知道只要不是Undefined和RemoteSigned 的是不行的,我的当时 CurrentUser项对应的执行策略为Restricted ,需要改为 RemoteSigned。​ 按 wind (四个小方块)键盘,搜索PowerShell,点击左侧的Windows PowerShell,点击以管理员身份运行。输入A即可,此时我们再查看执行策略列表,可查看到CurrentUser对应的策略已被修改为RemoteSigned。此问题是在工作时虚拟桌面上遇见的,一般自己的电脑时很少遇见的。

2024-01-11 09:11:13 745

原创 linux环境安装mysql8数据库

在linux,环境下安装mysql8

2023-12-28 10:11:31 1196

原创 oracle排序问题

在工作中遇到一个排序的问题,很简单的用了排序函数,但是在功能上线了几天,发现排序不对,发现一个数字字符串的排序会引发这么多的问题,欢迎一起探讨。

2023-07-12 10:44:50 1047

原创 String.format用法

String.format使用方法,字符占位挺好用,值得看

2023-06-29 18:35:28 692

原创 浮点数格式化数字

常用格式化浮点数字的方式

2023-06-25 13:36:22 316

原创 Java 项目中文乱码

在Java项目中经常会遇见中文乱码的情况,这边文章告诉我们中文为什么乱码,以及怎么在IDEA中解决乱码。

2023-06-25 13:08:55 867

原创 字符串12.0以点分隔split(“\\.“)

Java 中参数是正则参数时,用到正则表达式中有特殊含义的字符时需要用上\\双反斜杠

2023-06-21 15:26:54 1079

原创 linux常见符号、操作和命令解释

linux 常用命令、操作解释,让我们更好的操作linux系统,这篇文章可以满足日常java开发对服务的操作。

2023-05-26 15:50:07 8456

原创 0为什么使用命令行

命令行操作,不只是linux才有的,windows系统下也有好的终端操作工具。

2023-05-16 11:12:31 66

原创 1、Kafka基本概念及专业术语介绍

Kafka也是一种消息队列,主要用于金融行业和大数据场景,这篇文章给大家介绍下kafka的由来和kafka的专业术语,让大家对kafka有一个整体的认识。

2022-12-09 10:15:50 519

原创 5.RabbitMQ高级特性

这篇文章主要针对RabbitMQ高级特性进行讲解,在使用中怎么确保消息可靠性投递,消费端限流,TTL,什么是死信队列,死信队列怎么当做延迟队列使用,消费消息需要遵守的幂等性及消息加压的情况及简单的处理方式。

2022-12-01 10:30:34 679

原创 4.RabbitMQ 消息确认机制

- RabbitMQ在传递消息的过程中充当了代理人(Broker)的角色,那生产者(Producer)怎样知道消息被正确投递到 Broker了呢?- RabbitMQ提供了监听器(Listener)来接收消息投递的状态。 消息确认涉及两种状态:Confirm与Return。

2022-11-29 22:09:07 813

原创 3.RabbitMQ工作模式介绍

Rab5bitMQ的5种工作模式介绍;1. 简单模式 HelloWorld;2. 工作队列模式 Work Queue; 3. 发布订阅模式 Publish/subscribe;4. 路由模式 Routing;5.通配符模式 Topic

2022-11-29 18:15:58 588

原创 2.RabbitMQ安装

2.RabbitMQ在linux环境下简单的安装

2022-11-28 13:03:52 658

原创 1.1MQ的基本概念,优劣势介绍及 RabbitMQ简介

MQ概念介绍,MQ的应用解耦,异步提速,削峰填谷优势介绍及劣势介绍。MQ主流产品对比,RabbitMQ产品简介。

2022-11-27 15:45:03 906

原创 1.2 Zookeeper 的 ACL 权限控制、内存数据和持久化介绍

1.2 Zookeeper 的 的 ACL 权限控制、内存数据和持久化介绍,对这些概念有基本的认识,为后面学号Zookeeper 打好基础

2022-11-27 10:56:17 435

原创 1.1Zookeeper的安装和节点下的命令操作及事件监听

Zookeeper 安装和命令下操作节点及节点的事件监听操作

2022-11-26 15:44:06 414

原创 1.Zookeeper是什么和Zookeeper的核心概念

Zookeeper是一个分布式协调框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。Zookeeper 是一个用于存储少量数据的基于内存的数据库,主要有两个核心概念:文件系统数据结构+监听通知机制。

2022-11-26 14:52:59 158

原创 10.0 SpringMVC源码分析之MVC 模型由来

SpringMVC 前世今生,MVC模型的由来

2022-11-22 17:07:15 354

原创 5.1 Spring源码-读取不完整Bean的解决原理

循环依赖中,二级缓存解决循环依赖的问题,但是并发的时候会存在不完整对象,Spring是怎么解决的呢?可以看下此篇文章,里面有答案。

2022-11-14 15:46:18 633

原创 5.SpringIOC源码-Bean循环依赖讲解

**getBean的整个过程:**1)getgetSingleton 从缓存中获取对象; - 从一级缓存中获取完整对象; - 若一级对象中没有并且是循环依赖,从二级缓存获取; - 若二级缓存没有并且是循环依赖,从三级缓存获取; - 若三级缓存不为空,从三级缓存中的函数接口中获取对象,并放入二级缓存,删除三级缓存。2)对象实例化;3)对象放入三级缓存4)对象属性赋值5)对象初始化后放入一级缓存,并删除二级缓存。

2022-11-13 12:45:50 403

原创 3.Spring源码编译

为了更好的掌握Spring的核心功能,最好是下载源码编译后查看代码,这样可更方便的学习代码,理解Spring的核心功能。

2022-11-07 11:29:29 329

原创 6.2Redis键值设计&bigkey的产生和危害和优化&连接池的优化建议&过期清理策略详解

Redis的键值设计规范,bigkey产生原因及危害和优化方案,redis命令使用推荐,redis连接池参数配置详解及推荐,redis的键的清理策略详解。

2022-11-07 10:15:20 202

原创 6.1多级缓存架构详解&Redis缓存穿透&Redis缓存失败&Redis缓存雪崩&Redis缓存与数据库不一致问题解决

多级缓存架构详解&Redis缓存穿透&Redis缓存失败&Redis缓存雪崩&Redis缓存与数据库不一致问题产生原因及解决方案。

2022-11-07 10:05:24 272

原创 2.Spring源码IOC脉络

Spring,提起它我们就会想到IOC 控制反转,AOP切面和声明式事务等,这三个是最常见也是我们最常用的。IOC 控制反转是一种设计理念,用来解决类和类之间的耦合问题,使用DI实现,将对象的创建交给Spring容器,通过类,xm配置文件,注解 注入到IOC 容器中。

2022-11-01 20:48:09 445

原创 1.0 Spring体系架构介绍(基于4.x)

架构体系图如下:​ 该模块主要包含Core、Beans,Context和SpEL模块。其中Core和Beans是整个框架最基础的部分,提供IOC和依赖注入特性。这里最重要的概念就是BeanFactory,提供了以Factor模式来消除Bean之间的依赖问题。​ 提供符合AOP Alliance标准的而向切面编程的实现,可以让你定义如方法拦截器和切点,从而降低程序之间的据合性。该模块且有来自Spring Intearation项目的关键抽象,如Message,MessageChannel,MessaceH

2022-10-31 15:05:11 320

原创 12.并发之ForkJoin框架详解

FoekJoinPool 与内部类 WorkQueue 共享的一些常量FoekJoinPool 中相关常量和实例字段AC: 正在运行工作线程数减去目标并行度,高16位TC:总工作线程数减去目标并行度,中高16位SS: 栈顶等待线程的版本计数和状态,中低16位ID:栈顶WorkQueue在池中的索引(poollndex),低16位。

2022-10-29 13:30:33 1472

原创 11.定时任务&定时线程池详解

当我们不用任务框架时,我们想自己写一个定时任务时,我们能想起那个工具类呢?Timer ?还有吗?不知道了,下面我们要讲下ScheduledThreadPoolExecutor,定时任务线程池,可以执行一次任务,还可以执行周期性任务。

2022-10-27 13:07:11 6556

原创 10.并发编程之Executor线程池原理

线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此 Java 中提供线程池对线程进行统一分配、调优和监控 。这里大致介绍线程池的大致执行过程及参数的讲解。

2022-10-25 16:40:03 304

原创 9.2 ArrayList&CopyOnWriteArrayList详解

ArrayList是Java集合框架中的一个重要的类,它继承于AbstractList,实现了List接口,是一个长度可变的集合,提供了增删改查的功能,允许null的存在。ArrayList类还是实现了RandomAccess接口,可以对元素进行快速访问。实现了Serializable接口,说明ArrayList可以被序列化 。ArrayList线程不安全,线程安全的版本是CopyOnWriteArrayList。

2022-10-23 11:33:43 652

原创 9.1 Hashtable与ConcurrentHashMap详解

Hashtable 和HashMap用法是和底层的结构都是数组+链表+红黑树,都是key-value键值对数据的存储,最大的区别就是HashMap线程不安全,Hashtable 线程安全。HashMap当什么时候会发生线程不安全呢?当两个线程同时新增在数组上同一位置的数据时(同一链表数据),两线程同时操作数据可能被冲掉。

2022-10-22 21:32:51 556

原创 9.0 HashMap底层原理及部分源码分析

HashMap 在JDK1.7版本时底层数据结构是数组+链表,但是1.7时HashMap的并发扩容会导致死循环;JDK1.8时底层的数据结构变成数组+链表+红黑树,修改了并发扩容逻辑,并且提升了HashMap的性能。

2022-10-20 19:14:49 345

原创 8.并发编程之Automic&Unsafe魔法类详解

并发编程的三大 特性:可见性、有序性、原子性,可见性和有序性用volatile、synchronized、Lock可以保证,但是原子性只有synchronized、Lock可以保证,并且在同一时刻只能有一个线程访问来保证原子性的性能低,有更高效的办法来保证原子性吗?当然了,那就是Automic包下有很多可以保证原子性的原子操作。在java中可以通过**锁**和**循环CAS**的方式来实现原子操作。在Atomic包里一共有12个类,四种原子更新方式,分别是原子更新基本类型,原子更新数组,原子更新引用和原子

2022-10-19 19:18:26 393

原创 7.CountDownLatch&Semaphore的应用

BlockingQueue、Semaphore 和CountDownLatch 线程之间通信的桥梁和工具 。Semaphore可以应用到服务调用之间的限流;CountDownLatch和CyclicBarrier区别如下:CountDownLatch是以减数的方式而CyclicBarrier是以加数的方式;CountDownLatch强调的是一个等待其他多个线程而CyclicBarrier是一组线程相互等待;CountDownLatch不可重复利用而CyclicBarrier可重复利用。

2022-10-18 21:22:58 460

原创 IDEA怎么查看类继承关系及子类图

如何查看以类的继承关系图和查看一个类的继承类由那些。

2022-10-18 16:45:48 11047

原创 5.1同步器AQS

​ AQS是AbstractQueuedSynchronizer抽象类的简写;AQS定义了一套多线程访问共享资源的同步器框架,是一个依赖状态的同步器。AQS的核心是自旋(循环)、CAS算法加锁、LocksSouport(阻塞和唤醒) 和队列(公平锁和非公平锁)。

2022-10-18 08:24:53 212

原创 5.0抽象队列同步器AQS引用Lock详解

​ Java并发编程核心在于iava.util.concurrent包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer简称AQS,AQS定义了一套多线程访问共享资源的同步器框架,是一个依赖状态(state)的同步器。

2022-10-17 20:47:59 378

原创 4.并发编程值synchronized详解

synchronized内置锁是一种对象锁(锁的是对象而非引用),作用粒度是对象,可以用来实现对临界资源的同步互斥访问,是可重入的。**加锁的方式:1、同步实例方法:锁是当前实例对象2、同步类方法:锁是当前类对象,this对象上,new出来的对象上。3、同步代码块:锁是括号里面的对象4、在静态(static)方法上:锁的是类的class对象

2022-10-14 17:59:38 104

原创 怎样避免多线程重复更新操作

并发更新操作时,业务更容易出错,我们需要在代码层将并发访问临界资源处加锁,或在数据库层添加只能让一个更新SQL执行成功的条件;一个是将压力留在代码层一个是将压力流程数据库层。

2022-10-14 15:10:08 1625

原创 3.MESI缓存一致协议分析

MESI协议只能保证并发编程中的可见性,并未解决原子性和有序性的问题。MESI协议只对会变指令中执行加锁操作的变量有效,表现到Java中为使用volatile关键字定义的变量或使用加锁操作。MESI协议在下面两种情况会失效:1)CPU不支持缓存协议;2)该变量超过一个缓存行的大小,缓存一致性协议,只针对单个缓存行加锁,此时会变成总线锁。

2022-10-12 16:29:20 448

空空如也

空空如也

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

TA关注的人

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