自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库事务隔离级别

数据库的事务隔离级别是事务特性ACID中的隔离性的解读,主要作用是提高数据库的并发性。一、事务的特性(ACID)分为4种...,分别解决了脏读、幻读、.......,mysql是默认可重复度。oracle是读已提交,一般不会改变,那俩个不使用。...

2022-03-21 22:04:00 4307 2

原创 JVM知识梳理

一、JVM内存模型JVM内存模型按照是否为线程共享分为俩部分:线程共享区、线程独占区。1、线程共享区 线程共享区包括俩部分:堆和方法区。线程共享区中存储的所有数据都不是线程安全的,当堆内存或者方法区内存不足时会产生OutOfMemoryError。1.1 堆堆是在JVM启动时进行创建的,堆中主要存储时java中的各种对象实例。1.2 方法区(元数据区)方法区中存储的是被JVM加载的一些类信息、常量信息、静态变量等信息,...

2022-03-03 23:31:26 978

原创 ES节点类型、选举过程及容灾机制

一、节点类型ES拥有非常完善的容灾机制,在了解容灾之前,我们要先知道ES中各个节点的类型。节点类型的设置可以在配置文件elasticsearch.yml中添加如下属性,只是写了常用的,还有很多类型可以设置,如:冷、暖、热、冻结、摄取节点等。# 是否为候选节点node.master: true# 是否为数据节点node.data: true# 是否为投票节点Node.voting_only = false按照参数的组装,可以将节点分为如下类型:1、...

2022-02-14 22:48:43 5696

原创 简单工厂、工厂和抽象工厂模式

工厂模式定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。平时的service接口编程就是使用的工厂模式,工厂模式在日常生活中还是比较常见的。工厂模式分为三类:简单工厂模式、工厂模式和抽象工厂模式。一、简单工厂模式实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。...

2022-02-09 23:20:02 178

原创 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInput

解决方式:查看配置文件中的注释是否乱码,删除注释或修改编码格式重试。 删除配置文件重试。 主要原因不是很清楚,有时间问一下大佬。或者有大佬可以帮忙留言一下。

2022-01-26 22:46:49 412

原创 ES kibala指令操作及JAVA API对比

我们使用 Kibana 进行ES的指令操作和使用 JAVA API 进行操作时主要的结构是相同的,对比演示方便理解和记忆。ES的学习还是推荐自己查看官网进行学习(全英文)。一、连接 ESJAVA 连接ES 我使用的是Java High Level REST Client。public class ESClient { private String host = "127.0.0.1:9200"; private static volatil...

2022-01-18 23:12:12 1750

原创 kibana出现Client request timeout

一、异常信息kibana执行某条ES操作时返回错误信息:{"statusCode":504,"error":"Gateway Time-out","message":"Client request timeout"}此时查看kibana启动台,查看异常信息,发现ES节点变为红色了。二、问题分析 出现超时,大体问题分为三种:网络问题引发超时,出现网络波动导致超时,错误是本地测试时发生,排除网络波动导致的超时。 内存不足,...

2022-01-17 21:14:56 7176

原创 Access denied for user ‘root‘@‘localhost‘ (using password: YES)

出现的情况很多,分开总结。一、linux连接数据库报错我使用的是docker,直接重启mysql,发现问题解决。

2022-01-04 21:46:39 792

原创 引用类型导致的线程安全问题

一、问题 多线程操作共享变量,共享变量为引用类型,出现引用类型值出现改变的问题。二、基本数据类型和引用数据类型在内存中的对比 对比 基本数据类型 引用数据类型 存储地址 在栈中进行分配 在堆中进行分配,堆的读写速度远不及栈 指针指向 变量名指向具体的数值 变量名指向存数据对象的内存地址,即变量名指向hash值 初始化 变量在声明之后java就会立刻分配给他内存空间 它以特殊的方式(类似C指针)指向对...

2021-12-25 22:36:17 2450

原创 SpringBoot运行出现Failed to load ApplicationContext

一、异常信息:java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) ~[spring-test-5.1.6.RELEASE.jar:5.1.

2021-12-18 14:49:56 602

原创 springboot启动发现PasswordEncoder无法加载问题

异常信息:Action:Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.2021-12-18 14:40:43.298 ERROR 15452 --- [ main] o.s.test.context.TestContextManager : Caught exc...

2021-12-18 14:41:34 3653

原创 ES基础总结

一、简介 ES官方简介:Elasticsearch 是一个基于Lucene的分布式搜索、存储和分析引擎。所以不要只是将ES认为是一个搜索引擎。但是我们主要学习和使用的都是搜索和分析功能。ES实现搜索主要使用的是倒排索引。1、Lucene与倒排索引 Lucene其实就是一个jar包,为我们提供了复杂的API,帮我们创建倒排索引。但是Lucene在做集群搜索时存在一些缺点,下图为Lucene实现集群搜索的展示以及缺点总结。 那什么是倒排索...

2021-12-14 22:11:10 2307

原创 Lock wait timeout exceeded; try restarting transaction问题解析

目录一、异常发现二、异常定位1、锁表语句确认2、实际场景排查三、解决思路1、本次解决方式2、其他场景解决思路扩展 1、【治标方法】innodb_lock_wait_timeout锁定等待时间改大2、【治标方法】事务信息查询3、【治标方法】如果杀掉线程依然不能解决,可以查找执行线程耗时比较久的任务,kill掉4、【根本解决方法!】找到锁表的事务,分析锁表原因,进行优化一、...

2021-12-01 21:33:13 119293 1

原创 工作问题总结

一、异步线程影响了主线程的执行 1、背景 在主线程执行的业务逻辑之外需要通过异步线程执行一些其他业务,异步线程通过线程池进行执行,异步线程的执行不能影响主线程的运行。在压测过程中是发现服务报错。 2、问题定位 1、查看日志:查看日志发现所有的异常,都是异步线程执行的异常,判断是异步线程影响了主线程的执行。 2、查看对应的代码,发现整体代码逻辑没有问题,所以可能是线程池的问题。 ...

2021-11-22 17:26:55 1325

原创 java安全性容器

一、容器· 在进行安全性容器的认识之前,先了解一下java中常见的几种容器。java中的容器在物理上可以分为俩种:Collection和Map。区别就是在存储时按对存储还是单值存储。以下是画的简略图:...

2021-11-01 23:19:38 268

原创 Java四种引用类型:强引用、软引用、弱引用、虚引用

Java中的四种引用Java中有四种引用类型:强引用、软引用、弱引用、虚引用。Java为什么要设计这四种引用Java的内存分配和内存回收,都不需要程序员负责,都是由伟大的JVM去负责,一个对象是否可以被回收,主要看是否有引用指向此对象,说的专业点,叫可达性分析。Java设计这四种引用的主要目的有两个: 可以让程序员通过代码的方式来决定某个对象的生命周期; 有利用垃圾回收。 强引用强引用是最普遍的一种引用,我们写的代码,99.9999%都是强引用:Objecto.

2021-10-24 21:44:45 753

原创 AQS解析

Java并发包下很多API都是基于AQS来实现的加锁和释放锁等功能的,AQS是java并发包的基础类。比如:ReentrantLock、ReentrantReadWriteLock底层都是基于AQS来实现的。一、简介AQS全名:AbstractQueuedSynchronizer,顾名思义就是抽象的队列式同步器,是除了java自带的synchronized关键字之外的锁机制,是并发容器下locks包内的一个类。它实现了一个FIFO(FirstIn、FisrtOut先进...

2021-10-18 23:12:11 359

原创 Linux目录及常用命令:分类总结

在日常工作中最常见的操作就是查看各种日志以及配置文件,随之而来的就是大量linux命令的使用。这里主要讲命令按照对象分为三类:文件夹、文件和用户。一、文件夹 功能 命令 解析 查 pwd 用于显示当前所在的完整路径 mkdir 用于创建一个目录。 -p 该选项用于创建多级目...

2021-10-09 23:30:21 246

原创 多线程的简单练习

通过简单的练习题复习之前学习的关于多线程的知识。后期一直补充。一、线程监控1、实现一个容器,提供两个方法,add,size方法。写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束/** * 先来一个比较麻烦的,通过双重的wait来实现线程之间的通信。 * * 给lists添加volatile之后,t2能够接到通知,但是volatile只会保证list的指向,不会保证内容的可见性。 * * 这里使用wait和n...

2021-09-30 16:12:12 284

原创 Java 并发工具包(concurrent)详解

一、concurrent并发包 在JDK1.5之前,Java中要进行业务并发时,不管什么情况下,都需要由程序员独立完成代码实现,此时在进行一些并发设计时需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等,往往会采用一些较为复杂的安全策略,加重了程序员的开发负担。.在JDK1.5出现之后,java.util.concurrent工具包作为简化并发出现。concurrent提供了多种并发模型使我们在相应的情况下大大减少了开发的负担。下面对其中常见实现类进行讲解。...

2021-09-15 23:06:41 9999 1

原创 CAS机制以及AtomicXXX和Unsafe的实现

概述 在多线程开发中保证线程安全至关重要,在JDK 5之前Java语言是靠synchronized(调整到具体解析)关键字保证同步的,通过上锁来实现安全必然会影响整体的性能(加锁、释放锁会导致比较多的上下文切换和调度延时,同时一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险)。 volatile也是不错的保护机制,但是volatile不能保证原子性,对一些复合操作来说还是存在问题。因此对于同步最终还是要回到锁机制上来。syn...

2021-09-08 23:30:23 1188

原创 数据结构与算法基础总结------4.链表结构

一、链表(linked-list)链表其实就是线性表的链式存储方式,而线性表(list)也叫作顺序表,它是最基础、最简单、最常用的一种基本数据结构,线性表总存储的每个数据称为一个元素,各个元素及其索引是一一对应的关系。线性表有两种存储方式:顺序存储方式和链式存储方式。虽然链表是一种有序的,但是要明白在实际的物理存储结构上是非连续、非顺序的存储结构。链表的内存是不连续的,前一个元素存储地址的下一个地址中存储的不一定是下一个元素。链表通过指向下一个元素地址的引用将链表中的元素串起来。 ...

2021-09-07 22:23:21 530

原创 volatile(信号量)原理与应用解析

volatile是Java提供的一种轻量级的同步机制(可以理解为轻量级锁)。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized,volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 变量的同步性较差,无法保证操作的原子性。一、volatile原理volatile可以保证线程可见性且提供了一定的有序性,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的。...

2021-08-31 23:54:09 445

原创 synchronized从入门到精通

一、synchronized的作用线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点,一是存在共享数据(也称临界资源),二是存在多条线程共同操作共享数据。因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访问目的的锁,也就是说当一个共享数据被当前正在访问的线程加上互斥锁后,在同一个时刻,其他线程只能处于等待的状态

2021-08-24 22:30:03 1686

原创 数据结构与算法基础总结------3.异或运算

一、认识异或运算 异或运算是算法中非常简单的一种运算,原理其实就是进行位运算,是一种无进位相加,基本所有对异或运算的应用都可以总结为异或运算的俩个性质,异或运算的性质:1.0^N = N ;N^N = 0。2.异或运算满足交换律和结合率二、实例解析1.如何不用额外变量交换两个数 public static void test03(int num1, int num2){ //必须保证指向的内存是相同的 num...

2021-08-18 21:30:00 896 1

原创 多线程的基本概念

目录一、进程、线程和纤程二、多线程的实现方法三、start和run方法的区别四、线程的状态五、sleep、wait、yield、join 六、多线程的三大特性一、进程、线程和纤程进程:比如我们下载QQ之后电脑上会有一个QQ.exe程序,双击打开它登录进去,这个时候就是一个进程。即操作系统分配内存资源的最小单位。线程:一个程序里面不同的执行路径叫做一个线行。即CPU最小执行单元(内核空间)。其中线程与线程之间是不可见的。...

2021-08-17 23:37:52 541

原创 数据结构与算法基础总结------2.对数器二分法

一.对数器 当我们在网上找到了某个公司的面试题,你想了好久,感觉自己会做,但是你找不到在线测试。或者你在网上做笔试,但是前几个测试用例都过了,突然一个巨大无比数据量来了,结果你的代码报错了,如此大的数据量根本看不出哪错了。当你遇到这种情况时,肯定很头疼。此时就需要对数器进行校验。 对数器的基本原理,可以分为以下几点:1,你想要测的方法a2,实现复杂度不好但是容易实现的方法b3,实现一个随机样本产生器4,把方法a和方法b跑相同的随机样本,看看得到的结果是否一...

2021-08-16 22:51:25 641

原创 数据结构与算法基础课------1.认识复杂度

作为一个21世纪的开发工作者,对算法和数据结构的学习现在已经越来越重要了,所以我想将自己对算法和数据结构的一些理解和认识总结出来,让各位读者进行指正。 这个总结我准备分为三部分:基础课、进阶课和练习课。从简单到困难将自己关于这方面的知识展现出来。一.认识复杂度 我们学习算法就是为了提升代码的执行效率,但是实现同一功能的算法有那么多,如何区分区分各种算法的优劣呢?主要指标有: 1.时间复杂度(流程决定) 既然我们知道时间复杂度是...

2021-08-04 15:15:45 635 1

原创 防京东淘宝商城网站------2.项目配置以及自生成代码

昨天将项目的基本框架进行了搭建,今天使用代码生成器生成最基本的代码,并进行测试,在书写代码之前还需要下载以及配置数据库。一.数据库 在实际工作中其实我们很少对数据库进行一些设置,一般了解sql语句的编写就行,数据库对应的设置会有专业的运维人员,我们只要拿到账号密码就可以。为了模拟实际的操作,我们可以安装虚拟机或者买一个小点的服务器,之后安装docker,将数据库放在docker容器中,直接使用docker进行启动,十分方便。 1.docker的安装 ...

2021-08-03 21:55:48 787 2

原创 防京东淘宝商城网站------1.基本框架搭建及讲解

一.项目规划 近期有一些学弟问我马上毕业了,有什么简单的项目可以作为工作前的热身吗?我想既简单同时对各种技术都有涉及的项目非商城莫属了,但像这种商场项目在一些教育机构的推动下,已经烂大街了。没有什么新意。但这些机构的项目,普遍没有讲一些工作中可能遇到的问题。所以我就想将我的工作经验融入这个商场项目,来给一些即将步入社会的大学生或者一些零基础开发人员做一个参考。 很巧的是我近期在听马老师的一些课程,里边也有针对小白的一个项目,我就想结合自己的经验以及马老师这个课程中的知识总...

2021-08-02 22:22:24 551

空空如也

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

TA关注的人

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