自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孤独的灵魂的博客

何以解忧?唯有暴富

  • 博客(77)
  • 收藏
  • 关注

原创 postman测试上传文件、导出excel的方法

打开postman,将上传方式改为POST,再点击下【Body】然后,我们点击里面的【form-data】选项(如图所示)。最后,就会出现一个按钮,点击下即可选择文件了(如图所示)。在弹出的选项列表里,点击【file】选项栏(如图所示)。然后,在key的输入框里,点击一下(如图所示)。是有两个选项的,下拉选项。

2024-02-20 15:22:47 2811 1

原创 MyBatis在Mapper中传递多个参数的四种方法详解

例如,在上述例子中,当我们使用#{id}、#{name}和#{age}时,MyBatis会使用OGNL表达式从Map中获取key分别为"id"、"name"和"age"的value,也就是user对象中的id、name和age属性值。4、如果Dao层函数传递的是一个对象,该对象包含多个参数,MyBatis会将该对象看做是一个参数,并且会自动地将对象中的属性值映射到Mapper中的SQL语句中。1、若Dao层函数有多个参数,那么其对应的xml中,代表接收的是Dao层中的第一个参数,

2024-02-20 09:17:11 985

转载 linux下查看mysql的配置文件

如果以上文件都不存在,则说明在对mysql编译完成之后你没有对mysql进行配置,需要你自己复制一份mysql提供的默认配置文件到上面提到的目录中,然后改名为my.cnf,修改文件的所有者和所属组并赋予执行权限。服务器首先读取的是 /etc/my.cnf 文件,如果前一个文件不存在则继续读 /etc/mysql/my.cnf 文件,依此类推,如若还不存在便会去读~/.my.cnf文件。接下来就可以针对这个目录通过一些命令查看配置文件在哪了,如下。首先先看看你的mysql在哪,通过which命令。

2023-12-15 22:59:23 655

原创 IDEA新建项目启动报错:程序包Org.Springframework.Boot不存在

解决办法:maven 设置中勾选delegate IDE build/run actions to Maven,重试之后可以解决。问题:启动新建项目时报如下错误,确认引入的依赖没问题。

2023-12-03 17:44:18 265

原创 常用的位运算

位运算

2023-03-11 10:18:22 101

转载 进制转换(二进制、八进制、十进制、十六进制)

将796除8取得第一个余数为4,将除8得到的整数部分99作为第二次的被除数,重复上述步骤,直至最终整数部分为0就结束。总结:以上二进制、八进制、十六进制转换为十进制当中的整数部分从右往左指数从0开始递增,小数部分从左往右从-1开始递减,原理都是一样的。(1)原理:整数部分按上述进行操作即可,小数部分从小数点后一位指数为-1开始算起,以后依次为-2、-3……(1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。总结:小数部分转换原理都是乘进制数取整数部分,再将整数部分顺序输出。

2023-03-11 09:54:17 1252

转载 Hibernate

HibernateHibernate 简介:Hibernate 是一个开源框架,它是对象关联关系映射的框架,它对 JDBC 做了轻量级的封装,使 java 程序员可以使用面向对象的思想来操纵数据库。Hibernate 核心接口session:负责被持久化对象 CRUD 操作 sessionFactory:负责初始化 hibernate,创建 session 对象 configuration:负责配置并启动 hibernate,创建 SessionFactory Transacti.

2021-03-22 15:07:28 214

转载 MySQL的事务实现原理

值得一生典藏:MySQL的事务实现原理原文地址:https://www.toutiao.com/a6777338939360412171/1 开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题:事务想要做到什么效果?按我理解,无非是要做到可靠性以及并发处理。可靠性:数据库要保证..

2021-03-17 00:11:55 132

转载 Redis是单线程的,但Redis为什么这么快?

Redis是单线程的,但Redis为什么这么快?近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说Redis是单线程的以及Redis为什么这么快!》,那么你看到这.

2021-03-02 13:38:49 148

原创 redis服务启动报错

在windows系统中,双击启动redis-server.exe出现cmd窗口一闪而过的现象,这种情况以前见过多次,倒是知道解决办法。一般在其路径上打开cmd,输入redis-server.exe redis.windows.conf就可以解决。但是这次出乎意料,报了个错:07 Jan 14:51:53.681 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error 这个没见过,百度查到了一个解决方法,而且行..

2021-01-07 15:16:05 425

转载 vue.js 三种方式安装(vue-cli)

vue.js 三种方式安装(vue-cli)来源:https://blog.csdn.net/muzidigbig/article/details/80490884 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 下面介绍三种 Vue.js 的安装方法: 1.独立版本...

2021-01-04 00:53:47 254

转载 Node.js安装及环境配置之Windows篇

Node.js安装及环境配置之Windows篇来源:https://www.cnblogs.com/zhouyu2017/p/6485265.html一、安装环境1、本机系统:Windows 10 Pro(64位)2、Node.js:v6.9.2LTS(64位)二、安装Node.js步骤1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/2、选安装目录进行安装3、环境配置4、测试三、前期准备1、Node.js简介简单的说

2021-01-04 00:24:17 109

转载 Nexus私服安装以及使用教程

【Nexus的安装和配置】JDK的下载与安装解压配置环境变量即可使用export JAVA_HOME=/opt/jdk1.8.0_131export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$PATH#自JDK1.7之后 CLASSPATH 可以不配置Nexus的下载与安装下载地址:http://www.sonatype.org/nexus/go/

2020-12-25 15:25:48 1628

转载 redis怎么将rdb文件和aof文件还原数据库

redis怎么将rdb文件和aof文件还原数据库1 AOF -----> appendonly yes 2 cp appendonly.aof 到redis的数据库目录也就是配置文件里面的dir关键字 3appendfilename重启服务2 RDB -----> appendonly no 2 cp dump.rdb到redis数据库目录也就是配置文件里面的dir关键字 3 重启服务另外可以参考以下这篇文...

2020-12-21 22:18:04 249

原创 public、private、protected区别

1、public:public表明该bai数据成员、成员函数是对所du有用户开放的zhi,所有用户都可dao以直接进行调用2、private:zhuanprivate表示私有,私有的意思就shu是除了class自己之外,任何人都不可以直接使用。3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。扩展资料:三种类型的继承,父类的成员均被子类继承(之前的百科关于这点的描述是

2020-12-20 13:10:40 438

原创 java后端解决跨域问题

java后端解决跨域问题##首先我门要知道什么是跨域:跨域是指 不同域名之间相互访问。跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。也就是如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。##什么是同一个域?同一协议,同一ip,同一端口,三同中有一不同就产生了跨域。#前端解决跨域:前边也说了,跨域是浏览器不能执行其他网站的脚本。它是由浏览器的

2020-12-18 23:15:10 501 1

原创 数据库性能优化之sql优化查询

sql优化查询:1、复合索引,遵循最左前缀原则。例如idx_a_b_c(a,b,c)查询顺序应该按照索引建立时的顺序排,比如a、b、c,a、b,a 索引才有效,(和B+树的数据结构有关)无效索引举例:如a、c a有效,c失效,b、c 两者都无效(就像abc分属桥的头中尾三部,没桥头就没法开始走)2、不要对索引字段做如下处理a、以下处理会导致索引失效:1>计算,如:+、—、*、/、!=、<>、is null、is not null、or2>函数,如:sum..

2020-12-17 23:57:18 112

转载 Spring Bean的生命周期(非常详细)

Spring Bean的生命周期(非常详细)Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。转载请注明地址 http://www.cnblogs.com/zrtqsk/p/3735273.html.

2020-12-13 22:00:29 294

原创 本地锁和分布式锁的理解

1|0本地所和分布式锁的理解1|11. 本地锁和分布式锁的区别。1.1. 本地锁的意义​ 在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行,以防止并发修改变量带来数据不一致或者数据污染的现象。​ 而为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结...

2020-12-13 02:41:44 1393

转载 20 张图彻底弄懂 HTTPS 的原理!

原文链接:https://mp.weixin.qq.com/s/64HsU44O83XVgC7iVJ1WLw前言近年来各大公司对信息安全传输越来越重视,也逐步把网站升级到 HTTPS 了,那么大家知道 HTTPS 的原理是怎样的吗,到底是它是如何确保信息安全传输的?网上挺多介绍 HTTPS,但我发现总是或多或少有些点有些遗漏,没有讲全,今天试图由浅入深地把 HTTPS 讲明白,相信大家看完一定能掌握 HTTPS 的原理,本文大纲如下: HTTP 为什么不安全 安全通信的四大原则

2020-12-12 23:04:31 248

原创 springboot和spring cloud版本兼容问题

自己搭建的一个项目中从spring boot到spring boot的时候出现启动报错:Correct the classpath of your application so that it contains a single, compatible version of org.springframework.boot.builder.SpringApplicationBuilder意思是:纠正应用程序的类路径,使其包含org.springframework.boot.build . sprin

2020-12-11 19:02:55 1423

转载 IDEA连接mysql报错

IDEA连接mysql又报错!Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' prope目录错误界面解决方案第一,设置mysql时区。第二,同步mysql驱动。前进的道路充满荆棘。错误界面IDEA连接mysql,地址,用户名,密码,数据库名,全都配置好了,点测试连接,咔!不成功!界面是这样的,翻译过来就是:服务器返回无效时区。进入“高级”选项卡,手动.

2020-12-09 19:36:52 639 1

转载 spring cloud 和 dubbo 各自的优缺点是什么?

核心部件微服务的核心要素在于服务的发现、注册、路由、熔断、降级、分布式配置,基于上述几种必要条件对 Dubbo 和 Spring Cloud 做出对比。总体架构Dubbo 核心部件(如下图):Provider:暴露服务的提供方,可以通过 jar 或者容器的方式启动服务。 Consumer:调用远程服务的服务消费方。 Registry:服务注册中心和发现中心。 Monitor:统计服务和调用次数,调用时间监控中心。(Dubbo 的控制台页面中可以显示,目前只有一个简单版本。) Cont

2020-11-28 10:38:20 212

转载 为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

面试题为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。 没有对自己的架构问过为什么的人,一定是平时没有思考的人,面试官对这类候选人

2020-11-25 20:42:22 123

转载 3种Redis分布式锁的对比

3种Redis分布式锁的对比  我们通常使用的synchronized或者Lock都是线程锁,对同一个JVM进程内的多个线程有效。因为锁的本质 是内存中存放一个标记,记录获取锁的线程是谁,这个标记对每个线程都可见。然而我们启动的多个订单服务,就是多个JVM,内存中的锁显然是不共享的,每个JVM进程都有自己的 锁,自然无法保证线程的互斥了,这个时候我们就需要使用到分布式锁了。常用的有三种解决方案:1.基于数据库实现 2.基于zookeeper的临时序列化节点实现 3.redis实现。本文我们介绍的就是re

2020-11-21 22:48:06 306 1

转载 使用navicate11连接mysql8报错的解决方法

使用navicate11连接mysql8,报错1251的错误1251- Client does not support authentication protocol requested by server consider upgrading MySQL client网上查找原因发现是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把m

2020-11-19 16:45:53 388

原创 Freemarker 比较大小

第一次写freeamark问题:<#if db.s >1>出现异常 java.lang.RuntimeException: {"msg":"解析freemarker失败Can't compare values of these types. Allowed comparisons are between two numbers, two strings, two dates, or two booleans.\nLeft hand operand is a str...

2020-09-24 18:51:25 1559

转载 Linux常用命令大全

Linux常用命令大全(非常全!!!)最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hd...

2020-09-24 18:35:38 158

转载 为什么需要线程池

为什么需要线程池java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定的时间内由系统统一管理,而不是在执行时创建,执行后就销毁,从而避免了频繁创建、销毁线程带来的系统开销。线程池如何使用,以及实现原理,处理步骤,有什么使用注意事项等,今天主要从这几个方面详细介绍Java线程池。线程池的处理流程就以ThreadPoolExecutor..

2020-08-18 17:08:59 341

转载 分布式锁使用场景和可实现方式

我司使用了六年的分布式锁导读:不管是在单体应用时代还是分布式应用时代,一些保障我们数据安全的手段从来都未过时,只是底层实现发生了一些变化,今天我就来分享一下我司使用了六年的分布式锁方案,希望对一些同学有一些帮助。关键词:分布式,并发,原子性前言提到数据一致性、操作原子性,诸如此类的一些与并发有关的词汇时不知道你第一时间会联想到什么呢?我相信大多数人可能会想到“锁”,为什么是锁呢,这个我不多说,大家心里应该都明白。在单体应用时代,我们使用jvm提供的锁就可以很好的工作,但是到了分布式应用时代,

2020-08-12 11:11:46 314

转载 分布式事务解决方案

根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。分布式事务的讨论主要聚焦于强一致性和最终一致性的解决方案。

2020-07-08 17:10:38 183

转载 面试必备之乐观锁与悲观锁

面试必备之乐观锁与悲观锁推荐阅读后端程序员必备的Linux基础知识后端必备——数据通信知识(RPC、消息队列)一站式总结何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用

2020-07-07 10:21:15 114

转载 Java多线程:彻底搞懂线程池

Java多线程:彻底搞懂线程池熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了。目录1 线程池的优势2 线程池的使用3 线程池的工作原理4 线程池的参数4.1 任务队列(workQueue)4.2 线程工厂(threadFactory)4.3 拒绝策略(handler)5 功能线程池5.1 定长线程池(FixedThreadPool)5.2 定时线程池(ScheduledThreadPool )

2020-07-01 08:26:46 190

转载 jvm 性能调优工具之 jcmd

jvm 性能调优工具之 jcmd概述在JDK1.7以后,新增了一个命令行工具 jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。命令格式 jcmd <pid | main class> <command ... | PerfCounter.print | -f file> jcmd -l jcmd -h描述 pid:接收诊断命令请求的进程ID。 .

2020-05-22 08:15:56 277

转载 jvm 性能调优工具之 jmap

jvm 性能调优工具之 jmap概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。jmap 用法参数:option:选项参数。 pid:需要打印配置信息的进程ID。 executable:产生核心dump的Java可执行文件。 core:需要打印配置信息的核心文件。 server-id可选的唯一id,如果相同的远程主机上...

2020-05-22 08:15:43 134

转载 jvm 性能调优工具之 jinfo

jvm 性能调优工具之 jinfo概述jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息jinfo 用法参数说明pid 对应jvm的进程id executable core 产生core dump文件 [server-id@]remote server ..

2020-05-22 08:15:31 147

转载 jvm 性能调优工具之 jstat

jvm 性能调优工具之 jstat概述Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法option:参数选项 -t:可以在打印的列加上Timestamp列,用于显示系统运行的时间 -h:可以在周期性数据数据...

2020-05-22 08:15:19 152

转载 jvm 性能调优工具之 jstack

jvm 性能调优工具之 jstack概述jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出 Java 应用程序中线程堆栈信息。Jstack 用法image参数说明: -l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent 的 ownable synchronizers列表. -F 当’jstack [-l] pid’没有相应的时候强制打印栈信息 -m 打印java和native c/c++框架的所有栈信.

2020-05-22 08:15:02 445

转载 jvm 性能调优工具之 jps

jvm 性能调优工具之 jps概述jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。jps 用法参数说明-q:只输出进程 ID-m:输出.

2020-05-22 08:14:49 118

转载 Java 对象占用内存大小

Java 对象占用内存大小Java 对象如果想要了解java对象在内存中的大小,必须先要了解java对象的结构。HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)java 对象头 Mark Word HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希值(HashCode)、GC分代年龄、锁状态标志、线程持有.

2020-05-22 08:14:33 200

空空如也

空空如也

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

TA关注的人

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