自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解Java虚拟机(JVM)

首先通过编译器把 Java 代码转换成字节码,类加载器(ClassLoader)再把字节码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内,而字节码文件只是 JVM 的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。二、JVM的内存模型。

2024-05-07 22:13:14 1115

原创 RocketMQ:高性能、可靠的消息中间件

RocketMQ是由阿里巴巴开源的一款分布式消息中间件,由阿里巴巴集团开发并于2012年首次发布,它最初作为阿里内部消息中间件服务的核心组件,后来于2016年底开源。它支持多种消息模型,包括发布/订阅模型、点对点模型等。RocketMQ具有高可用、高可靠、高并发和低延迟等特点,广泛应用于金融、电商、物流等多个领域。RocketMQ作为一款高性能、可靠、易扩展的消息中间件,在分布式系统中发挥着至关重要的作用。通过对RocketMQ的深入了解,我们可以更好地应用它来解决各种实际问题。

2024-05-06 18:03:59 863

原创 JAVA设计模式

Java设计模式是指在Java编程中,经过长期实践总结出的、用于解决特定设计问题的可复用解决方案。这些设计模式可以帮助开发者更加优雅、高效地进行软件设计,提高代码的可维护性和可重用性。Java设计模式大致可以分为三大类:创建型模式、结构型模式和行为型模式。

2024-05-06 16:33:28 914

原创 Redis技术解析

Redis支持多种数据类型,常见的5种包括String(字符串)、Hash(哈希)、List(列表)、Set(集合)和 Zset(Sorted Set,有序集合),这些数据类型为开发者提供了丰富的操作接口。同时,Redis提供了丰富的命令,支持数据的增删改查、过期设置、持久化等功能。以下是 Redis 的一些数据类型,以及其使用场景:Redis 支持五种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)及 Zset(Sorted Set,有序集合)。

2024-05-05 17:18:48 988

原创 MySQL EXPLAIN

工作中时,我们在数据库创建了索引,那我们如何知道我们利用上了索引没有?语句提供了MySQL如何执行语句的信息,从而知道MySQL是如何处理你的SQL语句的,可以帮助选择更好的索引和写出更优化的查询语句。EXPLAIN适用于SELECT、DELETE、INSERT、REPLACE和UPDATE语句。

2023-03-02 10:24:59 254

原创 Mysql底层原理与性能调优

碰到过一些慢SQL查询,那我相信大多时候第一时间想到的优化策略,我相信肯定就是索引。

2023-01-11 16:28:03 487

原创 JAVA集合

ArrayList与Vector除了推出时间不同以外,实际上他们内部的实现机制也有所不同,通过源代码的分析可以发现Vector类的操作方法采用的都是synchronize同步处理,而ArrayList并没有进行同步处理,所有Vector类中方法在多线程访问的时候属于线程安全的,但是性能不如ArrayList高,所以在考虑到线程并发访问的情况下才会去使用Vector子类。否则,进行扩容操作。在HashMap底层使用数组加(链表或红黑树)的结构完美的解决了数组和链表的问题,使得查询和插入,删除的效率都很高。

2022-11-01 22:44:36 223

原创 Spring

Bean作用域有哪些scope配置作用域:如@Scope(“prototype”) 注解是告诉Spring该bean的作用域是prototype。singleton 单例所有Bean实例都用同一个,无论实例化多少次(默认)如果bean的作用域的属性被声明为singleton,那么Spring Ioc容器只会创建一个共享的bean实例。对于所有的bean请求,只要id与该bean定义的相匹配,那么Spring在每次需要时都返回同一个bean实例。Singleton是单例类型,就是在创建起容器时就同时

2021-03-13 17:08:11 461

转载 MySQL 函数

MySQL 有很多内置的函数,经常使用时找不到相应方法,甚至都不知道还有函数能完成自己需要的奇葩需求,以下列出了这些函数的说明,整理备忘。MySQL 字符串函数函数描述实例ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。返回 CustomerName 字段第一个字母的 ASCII 码:SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers;CHAR_LENGTH(s)返回字符串 s

2020-09-07 15:15:28 189

原创 springboot多数据源的事务统一

开发中,发现数据始终只回滚一部分,一部分数据始终不回滚,查看了很久才发现该service方法的方法里面存在两个不同的数据源,想在对原项目不做大的改动下,实现事务的统一回滚。在网上查找资料,找到了比较简单的变通方法。注:分布式事务在java的解决方案就是JTA(即Java Transaction API);springboot官方提供了 Atomikos or Bitronix的解决思路。对于单源数据库,只要在需要进行事务控制的方法上添加@Transactional注解就可以,但是对于多源数据库,@Tra

2020-08-28 11:15:08 2269

原创 Docker

什么是 DockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux

2020-08-10 17:59:01 408

原创 shiro验证注解

@RequiresAuthentication验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时。@RequiresUser验证用户是否被记忆,user有两种含义:一种是成功登录的(subject.isAuthenticated() 结果为true);另外一种是被记忆的(subject.isRemembered()结果为true)。@RequiresGuest验证是否是一个guest的请求,与@RequiresUser完全相反。换言之,Requi

2020-06-28 10:34:40 511

原创 SQL多字段拼接和同一个字段多条记录的拼接

多字段拼接为一个字段:函数==> CONCAT(column1,column2)同一个字段多条记录的拼接:函数==>GROUP_CONCAT(column)

2020-04-02 17:25:32 1869

原创 SpringBoot 测试类无法自动注入

原来的测试类的注解:@RunWith(SpringRunner.class)@SpringBootTest然后就运行测试成功但是前不久再用此方法运行,结果失败,提示@SpringBootTest(classes = XX.XX),尝试填入了测试类自身,@Autowired注入失败,填入需要注入的类,还是注入失败后来在填入启动类Application后终于注入成功,成功运行测试@Run...

2020-04-02 12:06:56 1487 1

原创 音视频处理工具ffmpeg的安装

ffmpeg是一个很强大的音视频处理工具,官网是:http://ffmpeg.org/ 官网介绍ffmpeg是:一个完整的、跨平台的解决方案,可以记录、转换和传输音频和视频。ffmpeg既可以播放视频,也提供命令行工具来处理视频,另外还有强大的视频处理库用于开发,下面是以Linux为例介绍ffmpeg的安装流程的简单的命令行对视频进行转码操作,是ffmpeg中最最简单的入门内容.一、linux源...

2020-01-15 11:01:42 406 1

原创 微服务网关——Spring Cloud Gateway

实现微服务网关的技术有很多,nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务zuul ,Zuul 是 Netflix 出品的一个基于 JVM 路由和服务端的负载均衡器。spring-cloud-gateway, 是spring 出品的 基于spring 的网关项目,集成断路器,路径重写,性能比Zuul好...

2019-11-27 18:00:37 310

原创 Java多线程之原子操作类

在并发编程中很容易出现并发安全问题,最简单的例子就是多线程更新变量i=1,多个线程执行i++操作,就有可能获取不到正确的值,而这个问题,最常用的方法是通过Synchronized进行控制来达到线程安全的目的。但是由于synchronized是采用的是悲观锁策略,并不是特别高效的一种解决方案。实际上,在J.U.C下的Atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新多种类型。...

2019-11-15 18:01:21 202

原创 Fork/Join框架

一、引言Fork/Join框架是Java并发工具包中的一种可以将一个大任务拆分为很多小任务来异步执行的工具,自JDK1.7引入。总体的设计参考了为 Cilk 设计的 work-stealing 框架。Fork/Join 并行方式是获取良好的并行计算性能的一种最简单同时也是最有效的设计技术,是 分治算法(Divide-and-Conquer) 的并行版本。fork/join框架是Executor...

2019-11-14 16:09:52 182

原创 Executor框架

我们之前创建一个线程的时候,就是直到new一个Thread创建一个线程,但是在jdk1.5之后,Java为我们提供了一个Java.util.concurrent包,这个包下有Executor接口,这就为我们提供了线程池的方法去开启多个线程,那么说到这里我们是不是会问:为什么要用Executor呢?或者new的方式有什么缺点呢?1)每次我们new Thread都会创建一个对象,不能被重用,而且对象...

2019-11-13 17:05:56 218

转载 git命令

一,新建代码库1,在当前目录下新建一个git代码库$ git init 2,新建一个目录将其初始化为git代码库$ git init [project-name]3,git clone 远程代码库$ git clone [url]二,配置1,Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目,录(项目配置)。2, 显示当前的Git配置...

2019-11-04 10:22:23 114

原创 linux下安装配置go

在linux 系统下,如ubuntu debian ,安装golang 最方便的方式是用apt-get install。但是不推荐这种方式安装,建议使用源码安装,如果你使用了apt-get 等方式安装了,就先把它卸载:apt-get purge golang-go首先肯定是下载资源包了 https://golang.org/dl/下载完成后,解压tar -C /usr/local -x...

2019-10-22 17:32:49 127

原创 Linux上Java的安装与配置

1.下载 JDK进入 Oracle 官方网站 下载合适的 JDK 版本,准备安装。注意:这里需要下载 Linux 版本。这里以jdk-8u221-linux-x64.tar.gz为例。2. 创建目录在/usr/local/目录下创建java目录,mkdir /usr/local/javacd /usr/local/java把下载的文件 jdk-8u221-linux-x64.tar...

2019-09-04 14:47:08 201

原创 Linux下view命令的使用

Linux下的view命令,也就是vi命令,可以实现文本的编辑,是编辑文本时的一个非常便捷的工具。Vi编辑器强调的是全文本编辑,可以大大提高编辑效率。下面就详细介绍下vi命令的使用。一、vi的基本概念基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:1. Com...

2019-08-28 09:34:04 13714

原创 Linux下安装Mysql5.7.x数据库

1、下载tar包,这里使用wget从官网下载wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz或者官网 http://dev.mysql.com/downloads/mysql/#downloads直接执行wget命令较为快速简洁,推荐2.检查库文件是否存...

2019-08-20 13:12:16 221

转载 Log4j.properties配置详解

一、 Log4j简介Log4j有三个主要的组件:Loggers(记录器):日志类别和级别;Appenders (输出源):日志要输出的地方;Layouts(布局):日志以何种形式输出1.1 LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ...

2019-04-17 16:21:21 196

原创 Linux终端复用神器-Tmux使用梳理

tmux是什么我们在linux服务器上的工作一般都是通过一个远程的终端连接软件连接到远端系统进行操作,例如使用xshell或者SecureCRT工具通过ssh进行远程连接。在使用过程中,如果要做比较耗时的操作,例如有时候进行编译,或者下载大文件需要比较长的时间,一般情况下是下班之后直接运行希望第二天早上过来运行完成,这样就不用耽误工作时间。但是网络有时候不稳定,可能在半夜会出现连接断掉的情况,一...

2019-03-21 15:35:28 494

转载 消息队列常见问题

前言本文大概围绕如下几点进行阐述:为什么使用消息队列?使用消息队列有什么缺点?消息队列如何选型?如何保证消息队列是高可用的?如何保证消息不被重复消费?如何保证消费的可靠性传输?如何保证消息的顺序性?我们围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种课程,因此只是提供一个复习思路,而不是去教你们怎么调用消息队列的API。建议对消息队列不了解的人,去找点消息...

2019-03-21 11:40:59 322

原创 Spring data jpa sort多属性排序问题

在spring data for jpa 中,存在一个pageable接口,是对查询分页的一个利器。pageable实现类的构造方法中有个Sort参数,可以按照列属性进行排序。通过查看Sort类的构造方法,我们对Sort这个类进行一下分析,Sort类中存在一下几个构造方法:1.public Sort(Order… orders);2.public Sort(List orders);3.p...

2019-03-21 11:04:13 7991 5

转载 SpringBoot @Scheduled注解使用: 同步/异步同一任务及多任务并发执行

转载备忘,原文:https://blog.youkuaiyun.com/Demo_Liu/article/details/85335414本文将介绍@Scheduled注解使用过程中:1.1 同一任务的同步执行(下次任务执行将在本次任务执行完毕后的下一次配置时间开始)1.2 同一任务的异步执行(下次任务将在下一个配置时间开始,不等待当前任务执行完毕)2.1 多任务并发执行首先,要想使用@Schedu...

2019-03-21 10:37:54 3805 1

转载 SpringBoot整合消息服务(SpringBoot 整合 ActiveMQ、SpringBoot 整合 RabbitMQ、SpringBoot 整合 Kafka)

声明:本文来源于https://www.cnblogs.com/leeSmall/p/8721556.html,写在这里只是为了方便查阅。1、概念:SpringBoot 整合消息服务2、具体内容对于异步消息组件在实际的应用之中会有两类:· JMS:代表作就是 ActiveMQ,但是其性能不高,因为其是用 java 程序实现的;· AMQP:直接利用协议实现的消息组件,其大众代表作:Rab...

2019-03-21 10:02:34 172

转载 js常用返回网页顶部几种方法

返回顶部的广告有很多种,如有锚标记、JS scrollTo函数、scrollBy慢速滚动返回顶部及现在常用的jquery返回顶部代码网页编程中时常会用到返回网页顶部代码,返回顶部方法只有两种:一种是直接跳转到顶部,二是采用JS添加滚动效果,关于代码方面,天缘一贯的理念,少写点废话,尽量在代码量和体验方面寻求平衡,与其花大力气写个二三十行代码去返回顶部,不如把精力放在改善网站内容方面。一、使用锚...

2019-03-21 09:49:58 3324

转载 登录成功后跳回到原来页面

1.判断document.referrer是否为空,若为空本页面就不是从其它页面跳转过来的,就将页面跳转至网站首页2.若document.referrer不为空,则需要判断前一个页面是否是本站点的页面,以免跳到其它站点去了,如果是其它站点则跳转至首页;3.若document.referrer不为空且为本站点页面,则需要跳转至该页面因此在登录成功的回调函数里执行下列操作就可以实现登录跳回刷新页...

2019-03-21 09:25:53 3140 2

转载 解决MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .....

1.前言今天在用SpringBoot2.0+MySQL搭建项目开发环境的时候启动项目发现报了一个很奇怪的错,报错内容如下:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one timezone. You must configur...

2019-03-21 09:16:55 250

转载 Java并发编程:Lock

转载备忘,原文链接:http://www.cnblogs.com/dolphin0520/p/3923167.html从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchro...

2019-03-20 16:50:11 83

空空如也

空空如也

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

TA关注的人

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