自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (7)
  • 收藏
  • 关注

原创 Zookeeper是什么&怎么用

1.Zookeeper概述Zookeeper 是一个开源的分布式协调服务框架 ,主要用来解决分布式集群中应用系统的一致性问题和数据管理问题2:Zookeeper的特点Zookeeper 本质上是一个分布式文件系统, 适合存放小文件,也可以理解为一个数据库在上图左侧, Zookeeper 中存储的其实是一个又一个 Znode, Znode 是 Zookeeper 中的节点Znode 是有路径的, 例如 /data/host1 , /data/host2 , 这个路径也可以理解为是Zn

2020-07-11 09:38:05 651

原创 Redis超详细总结

NoSQL概述一.数据存储的演化史1.单机MySQL的美好年代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么?1.数据量的总大小 一个机器放不下时2.数据的索引(B+ Tree)一个机器的内存放不下时3.访问量(读写混合)一个实例不能承受如果满足了上述1 or...

2020-05-07 10:38:12 3372 2

原创 你的见识决定你的人生

这周用了两天的时间读完了吴军老师的《见识》,里面有很多对于人生非常好的建议,拿出来与大家一同分享一.幸福是目的,成功是手段1.人生是一条河人生就像是一条河,决定这条河能存放多少水不仅仅取决于河流的长度,还有河流的穿度和深度。人生的长度虽不固定,但每个人也都相差无几,那么想要人生活的更加精彩就需要拓宽我们的宽度,挖掘我们的深度。2.给三本学生的建议我去过中国的很多大学,985、211,...

2020-04-30 09:58:35 504

原创 万字长文读透 Redis

Redis 详解,一篇文章带你读懂 Redis 管道,发布订阅,事务,持久化,分布式锁,集群,主从复制,哨兵机制,缓存面试题

2022-10-26 10:59:56 804 1

原创 一条 SQL 语句是如何执行的

sql 语句执行流程

2022-10-14 14:10:36 5665 1

原创 一文读懂 MySQL 锁

锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是在服务器层或者存储引擎层实现的。

2022-10-12 13:54:50 8245 4

原创 一文读懂 MySQL 索引

官方定义:索引是帮助 MySQL 高效获取数据的数据结构从上面定义中我们可以分析出索引本质是一个数据结构,他的作用是帮助我们高效获取数据,在正式介绍索引前,我们先来了解一下基本的数据结构慢查询日志是 MySQL 提供的日志记录,用来记录所有的慢 SQL 语句,我们可以通过设置慢查询的时间阈值 long_query_time,来定义什么样的 SQL 是慢 SQL。通过慢查询日志我们可以找出需要优化的 SQL,下一步就是进行 SQL 优化。

2022-10-11 10:40:33 840

原创 数据库基础

所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。上面这张表就不符合第一范式,有重复的列,应该将 name-age 拆分成 name 和 age 两个列。

2022-10-08 10:23:17 415

原创 could not write json or through reference chain

could not write json: (was java.lang.illegalstateexception)

2022-09-13 15:53:24 532

原创 Comparison method violates its general contract 问题

今天下午正在摸鱼,这时候突然客户在群里反馈,说今天数据没有了,催我赶紧去看,于是我连上客户服务器,打开今天的项目日志,看到了下面的错误。强制 JVM 使用老旧的 MergeSort,而非新的 TimSort。先看下之前的代码,功能就是获取指定目录下最近修改的文件名称,里面用到了。这段代码乍一看功能可以实现,测试也没有问题,为什么报错?满足新算法自反性、传递性、对称性的要求,建议使用方法二。(2) 也可以在 JVM 的启动参数中声明。要满足自反性,传递性,对称性,不然。compareTo 源码。...

2022-08-04 15:17:28 217

转载 缓存一致性协议MESI详解

这样如果2个核心对应的线程都需要修改这个值的时候,那么就会出问题,当处理完成后,我们还是要将数据写回到缓存中去的,但是因为这2个互相独立的核心,他们都写回的话,肯定会有一个被另外一个给覆盖了(还有相关的一系列的并发读写引发的问题)。我们知道CPU的运算速度是很快的,因为从磁盘获取的数据的速度严重影响着效率,所以此有了DRAM(内存),但是即便是这样,内存的性能也远远跟不上CPU的运行速度,所以CPU的设计者开始在内部加入SRAM。状态是M(修改)此时只有CA内部有X,并且X和RAM的X值是不一致的。....

2022-07-25 16:20:33 3522 2

原创 volatile 详解

综上,其实volatile保持内存可见性和防止指令重排序的原理,本质上是同一个问题,也都依靠内存屏障得到解决。更多内容请参见JVM相关书籍。

2022-07-22 16:04:29 240

原创 Spring 核心概念

本文主要介绍 Spring 源码中使用到的一些核心类

2022-07-10 11:31:47 166

原创 Java 自定义注解

Java 自定义注解根据此处可以知道 @Autowired 注解的作用范围:@Retention元注解:注解的生命周期有三个阶段:再详细描述下这三个阶段:①、如果被定义为 RetentionPolicy.SOURCE,则它将被限定在Java源文件中,那么这个注解即不会参与编译也不会在运行期起任何作用,这个注解就和一个注释是一样的效果,只能被阅读Java文件的人看到;②、如果被定义为 RetentionPolicy.CLASS,则它将被编译到Class文件中,那么编译器可以在编译时根据注解做一.

2022-07-09 08:56:06 5911

原创 Spring 如何解决循环依赖

Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的是为了让你在之后的所有面试中能多一个必杀技,专门用来绝杀面试官!本文的核心思想就是,当面试官问:“请讲一讲Spring中的循环依赖。”的时候,我们到底该怎么回答?主要分下面几点同时本文希望纠正几个目前业界内

2022-07-03 14:49:32 206

原创 spring IOC 为什么能降低耦合

Spring 依赖注入如何降低代码耦合度

2022-06-26 15:41:42 420

原创 Spring详解—— IOC 和 DI 区别

我们只要提到Spring这个词,有简单了解过Spring的人基本上都会脱口而出IoC、DI和AOP这几个概念。但是对于初学者来说,一下子搞懂IoC和DI的概念还是挺麻烦的。比如之前我自己刚刚学习Spring的时候,只知道IoC能够帮我们创建对象,不再需要我们自己去创建了,并且那时IoC和DI傻傻分不清,对AOP的概念就更加不用说了。所以这次一定要好好理解。IoC(Inversion of Control)的意思是“控制反转”,它是Spring最核心的点,并且贯穿始终。IoC并不是一门技术,而是一种设计思想。

2022-06-25 10:50:42 1632

原创 Java 面试题

一、搜索1、什么是SolrSolr是一个Java开发的基于Lucene的 企业级 开源 全文搜索 平台。 它采用的是反向索引,即从关键字到文档的映射过程。 Solr的资源以Document为对象进行存储,每个文档由一系列的 Field 构成,每个Field 表示资源的一个属性。 文档的Field可以被索引, 以提工高性能的搜索效率。 一般情况下文档都包含一个能唯一表示该文档的id字段。2、什么是LuceneLucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,Lucene是根

2022-03-20 14:56:41 2268

原创 String、StringBuilder和StringBuffer的区别

StringString是一个不可变类,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。有关String更详细的介绍,请看这篇文章每天都在用String,你真的了解吗?StringBufferStringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringB

2022-03-19 08:12:14 277

转载 深入浅出索引

阅读目录一 介绍二 索引的原理三 索引的数据结构四 聚集索引与辅助索引五 MySQL索引管理六 测试索引七 正确使用索引八 联合索引与覆盖索引九 查询优化神器-explain十 慢查询优化的基本步骤十一 慢日志管理*1*|***0***一 介绍为何要有索引?一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到

2021-07-20 12:16:27 224

原创 开发中遇到的问题 No primary or default constructor found for interface java.util.List

今天在开发中遇到的问题 No primary or default constructor found for interface java.util.List报错: No primary or default constructor found for interface java.util.List原因是list是接口,没有构造函数换成ArrayList 就可以,或者将List转为Json字符串(JSON.toJSONString(list)),然后再调用方法...

2021-02-02 00:26:05 7629

原创 Java泛型详解

1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型

2021-01-30 15:53:02 210

原创 Mysql修改、新增、删除字段

1.添加字段1.在末尾添加字段(1)语法ALTER TABLE <表名> ADD <字段名> <数据类型> [约束条件];语法格式的说明:<表名> 为数据表的名字;<字段名> 为所要添加的字段的名字;<数据类型> 为所要添加的字段能存储数据的数据类型;[约束条件] 是可选的,用来对添加的字段进行约束。这种语法格式默认在表的最后位置(最后一列的后面)添加新字段。(2)示例在user表末尾添加字段phone:A

2021-01-28 18:05:08 320

原创 此流非彼流——Stream详解

Stream是什么?Java从8开始,不但引入了Lambda表达式,还引入了一个全新的流式API:Stream API。它位于java.util.stream包中。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道

2021-01-27 17:17:40 404

原创 深入理解enum(枚举类)

为什么要引入枚举类一个小案例你写了一个小程序,不过好久不用了,突然有一天,你想使用一下它。程序要想正确运行,需要将今天星期几存到数据库里。这个时候,你开始犯难了。当初的你还很年轻,不懂程序界的险恶,设计这个程序的时候,傻不拉几把这个字段设计为int类型的,用0代表周日,1代表周一。。。6代表周六,添加的时候就setWeekday(0)。但是这么长时间没用了,你忘记自己是从周一开始计算还是周日开始计算了,换句话说,你想不起来0代表的是周一还是周日了!于是你各种翻代码,看数据库的字段,数据库保存的信息,

2021-01-22 08:36:47 626

原创 Java枚举获取下一个元素

今天工作中遇到需要获取上一个和下一个枚举值的需求,记录一下package com.wugongzi.day0121;/** * add by wugongzi 2021/1/21 */public enum FamilyLevel { LEVEL_1(1, 3000L, "入门"), LEVEL_2(2, 27000L, "入门"), LEVEL_3(3, 108000L, "入门"), LEVEL_4(4, 300000L, "入门"), LEVEL_5

2021-01-21 18:35:08 720 2

转载 这才是IO流?之前都白学了

Java IO流前言io流用到的地方很多,就比如上传下载,传输,设计模式等…基础打扎实了,才能玩更高端的。在博主认为真正懂IO流的优秀程序员每次在使用IO流之前都会明确分析如下四点:(1)明确要操作的数据是数据源还是数据目的(也就是要读还是要写)(2)明确要操作的设备上的数据是字节还是文本(3)明确数据所在的具体设备(4)明确是否需要额外功能(比如是否需要转换流、高效流等)以上四点将会在文章告白IO流的四点明确里面小结一下,如果各位真能熟练以上四点,我觉得这篇文章你就没必要看了,因为你已

2021-01-21 08:50:20 261

原创 Lambda表达式你会用吗?

函数式编程在正式学习Lambda之前,我们先来了解一下什么是函数式编程我们先看看什么是函数。函数是一种最基本的任务,一个大型程序就是一个顶层函数调用若干底层函数,这些被调用的函数又可以调用其他函数,即大任务被一层层拆解并执行。所以函数就是面向过程的程序设计的基本单元。Java不支持单独定义函数,但可以把静态方法视为独立的函数,把实例方法视为自带this参数的函数。而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数

2021-01-20 09:19:27 190

转载 两万字长文总结,梳理 Java 入门进阶那些事

两万字长文总结,梳理 Java 入门进阶那些事先给大家看下完整的思维导图,也是这篇文章的主要脉络。Java从入门到进阶学习路线主导三个项目,让我独当一面能力提升你要怎么学全篇总结Java 现在主要是作为后端应用在发展,尤其是他的微服务领域。根据编程语言排行来看,Java 常年占据榜单的 Top 3,学习和使用 Java 的伙伴实在是太多了。甚至有大V认为,在微服务领域 Java 目前是王者。全球有 1200 万以上 Java 程序员以及海量的设备,还有无所不能的 Java 生态圈。诸如

2021-01-19 09:18:57 644

转载 Switch对String的支持

Switch对String的支持Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型:byte short int char String 。但是,作为一个程序员我们不仅要知道他有多么好用,还要知道它是如何实现的,switch对整型的支持是怎么实现的呢?对字符型是怎么实现的呢?String类型呢?有一点Java开发经验的人这个时候都会猜测switch对String的支持是使用equals()方法和hashcode()方法。那

2020-12-19 22:20:28 1316 3

原创 Mysql Lock wait timeout exceeded 处理方法

Mysql Lock wait timeout exceeded 处理方法1、一个问题今天在做项目的时候突然遇到了下面的问题怎么回事,之前这个接口一直都正常的啊。从报错结果来看,应该是数据库出问题了。执行一下这条更新语句,发现数据库的锁连接超时2、解决方案-- 当前运行的所有事务SELECT * FROM information_schema.INNODB_TRX;执行一下上面的语句,结果如下(超时的事务已经被我kill了,所以没有数据)看事务表INNODB_TRX里面是否有正在锁

2020-12-16 18:02:04 455 2

原创 SpringBoot面试题

1、什么是SpringBoot:SpringBoot是Spring旗下开源子项目,提供了一站式解决方案,简化了使用Spring的难度,免去了繁杂的配置文件2、SpringBoot优点:快速构建项目,远离Spring的复杂配置项目可独立运行,无需依赖外部容器提供运行时的应用监控3、Spring Boot 的核心注解是哪个:@SpringBootApplicationSpringBootApplication包含了三个注解,SpringBootConfiguration(实现配置文件的功能

2020-11-29 16:51:58 218

原创 字符编码批量转化

今天在做项目中,需要用到一些CSS和JS文件,于是将之前项目中的文件拷贝过来,项目运行时发现出现乱码,于是便开始修改,结果改的时候发现四五十个文件,这不得改半天!索性自己写了个工具类,批量修改字符编码,几秒钟完事,分享给大家,以后再也不用单独修改编码了。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.i

2020-08-21 18:06:35 187

原创 Linux用户管理

1.用户添加用户$useradd -m username该命令为用户创建相应的帐号和用户目录/home/username;用户添加之后,设置密码:密码以交互方式创建:$passwd username删除用户$userdel -r username不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。要完全的删除用户信息,使用-r选项;帐号切换 登录帐号为userA用户状态下,切换到userB用户帐号工作:$su userB进入交互模型,输入密码授权

2020-08-21 16:01:16 183

原创 Linux进程管理与性能监控

1. 进程管理工具这一节我们介绍进程管理工具;使用进程管理工具,我们可以查询程序当前的运行状态,或终止一个进程;任何进程都与文件关联;我们会用到lsof工具(list opened files),作用是列举系统中已经被打开的文件。在linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。用好lsof命令,对日常的linux管理非常有帮助。1.1. 查询进程查询正在运行的进程信息$ps -efeg:查询归属于用户colin115的进程$ps -ef | gre

2020-08-21 09:08:03 173

原创 Linux磁盘管理

日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩;1.查看磁盘空间查看磁盘空间利用大小:df -h-h: human缩写,以易读的方式显示结果(即带单位:比如M/G,如果不加这个参数,显示的数字以B为单位)$df -h/opt/app/todeav/config#df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol002

2020-08-19 17:05:58 100

原创 每天都在用String,你真的了解吗?

1.String概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。2.String源码分析2.1.String成员变量// String的属性值,String的内容本质上是使用不可变的char类型的数组来存储的。private final char value[];/*

2020-08-19 17:02:10 208

原创 写给迷茫的年轻人

作为一个在职场打拼了两年的人,我遇到过很多问题,也踩过许多坑,对于如何选择职业、工作也有自己的一份理解,今天分享出来,希望给迷茫中的年轻人一些帮助。1.考研是就业的缓兵之计?要不要考研,这几乎是每一个大学生都曾面临的问题,包括我在内。考研当然有很多好处了,比如说可以去更好的大学学习,拥有更高的学位,可以认识更多厉害的校友等等。但是你是否真的想好了你为什么考研?考研对于你有多大的帮助?以及研究生毕业了以后你要做什么?还是说你只是随大流或者是为了暂时逃避就业的压力?考研并不是目标,目标是3年你毕后你与曾经没

2020-08-17 10:15:52 220

原创 CSS固定表头

CSS固定表头<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <ti

2020-08-08 15:06:41 265

原创 Linux文本处理详解

1. 文本处理本节将介绍Linux下使用Shell处理文本时最常用的工具: find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk; 提供的例子和参数都是常用的; 我对shell脚本使用的原则是命令单行书写,尽量不要超过2行; 如果有更为复杂的任务需求,还是考虑python吧;1.1. find 文件查找查找txt和pdf文件:find . \( -name "*.txt" -o -name "*.pdf" \) -print正则方式查找.txt和pd

2020-08-07 15:24:22 387

ExplorerCanvas-master.zip

ExplorerCanvas-master用于解决canvas在IE上的不兼容问题,我们在使用canvas绘制炫酷的图形时,会出现在IE上显示不了的问题,这时候就需要用到ExplorerCanvas来解决IE的兼容问题了

2020-08-08

canvasforIE,解决IE对canvas的兼容问题

canvas是css3的新特性,但是IE不支持canvas,所以我们需要用到excanvas.js来解决IE的兼容问题

2020-08-07

Sublime_Text3

该sublime是我平常用的软件,已经集成了日常开发中所用到的插件,包含程序员们最喜爱的黑色主题都以集成好,分享给大家

2020-08-07

飞秋局域网通信软件,快速传输文件

局域网通信软件飞秋,飞秋是一款局域网通信软件,可以很方便的和你的同事进行沟通交流,传输文件,飞秋传输文件的速度非常快,可以达到10M/S,提供给有需要的人

2020-08-07

apache-tomcat-8.5.50.rar

apache-tomcat-8.5.50 tomcat8.5版本,tomcat服务器是大家在学习和工作中经常用到的服务器,这里提供tomcat给大家学习工作使用

2020-07-11

eclipse-jee-2018-09-win32-x86_64.rar

eclipse-jee-2018-09 Java开发软件,已经集成SVN插件,方便使用SVN的同学进行项目开发

2020-07-11

dbeaver.rar

数据库连接软件dbeaver绿色解压版,解压后直接可以使用,可以连接Mysql、DB2、Oracle等常见数据库

2020-07-10

空空如也

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

TA关注的人

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