自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苏暮沉觞的博客

菜鸟成长记录

  • 博客(69)
  • 资源 (3)
  • 收藏
  • 关注

原创 设计模式----------总目录

本专栏主要是用来总结自己学过的常用的设计模式,加强自己的记忆以及可以给其他人学习设计模式提供帮助

2020-05-18 16:58:34 172

原创 Java并发学习记录总目录

在《极客时间》买了一门关于高并发的课程《Java并发编程实战》,学习下来感觉还不错,所以想把课程中的内容记到博客里,一是加强记忆,二是方便自己后期回顾。博客的大部分内容是来自课程中的知识,可能经过我自己加工,解释跟归纳,对于一些不好解释的,我可能会将课程中的内容引用过来。因为是归纳,所以可能会比较枯燥,没有课程中的让人更好理解。如果造成侵权,请联系我,我会立马修改或删除。并发编程的基本理解 ...

2019-10-24 09:01:15 183

原创 Java JDK1.8 核心特性详解----(总目录篇)

之前断断续续的学习JDK 1.8,抽空总结一下JDK 1.8的新特性以及使用方法,在加强自己记忆的同时,希望可以帮助其他人了解并使用JDK 1.8。Java8是Java1.5以后最重要的一个版本,在Java1.5的基础上做了很多有趣的改变,这些改变让我们编程更加容易。其中包括:支持行为参数化、默认方法,添加Lambda表达式(匿名函数)、Stream(流)API,Optional API以及新...

2019-01-28 00:03:34 883 1

原创 Spring Boot 读取配置内容的三种方式

在实际工作中我们无法避免如何区分多环境的问题,开发环境连接的是开发环境的数据库,测试环境连接的是测试环境的数据库,等等,不同环境下的配置信息是不一样的。在使用SpringBoot时,我们可以为每个环境定义一个配置文件,将对应配置写在yaml或者properties中,最后通过 spring.profiles.active 来激活对应的配置文件。我们往往会读取配置文件中的配置信息,除了Java提供的Properties类,还可以通过另外的三种方式在 Spring Boot 中读取配置内容:Environm

2020-11-06 10:31:32 523 2

原创 查看并修改MySQL是否开启binlog日志

演示环境:MySQL 5.7,docker环境部署,参数只设置了编码。1、查看是否开启binlog日志运行show variables like 'log_bin';(如果显示OFF则代表未开启。在MySQL8以前,这个功能是默认关闭的,需要手动开启。)...

2020-10-14 15:16:38 7511

原创 记录一次mysql因为配置文件错误导致在docker中无法启动的解决方式

背景一个已经运行并且没有将配置文件等信息挂载到本地的mysql容器。在一次修改my.con配置文件之后,重新启动mysql容器刷新配置,但是容器一直启动失败,处于restarting的状态。排查方式最直接的方式是通过docker logs containerName 查看容器的日志信息,在日志中发现是因为配置文件一个参数拼错了,导致容器在重启之后一直启动失败。解决方式方法一(直接修改容器内文件):使用docker inspect containerId(或者容器名称)指令,在获取

2020-10-14 10:59:10 1877 1

原创 形象理解二维码登录原理

二维码是我们日常生活中随处可见,支付扫码,登录扫码,添加好友扫码,或者查看某些内容也需要扫码。今天分享一下二维码背后的技术和逻辑,并且通过二维码登录的例子,了解二维码在某些场景中的使用方法。

2020-07-28 23:52:19 1022

原创 不要轻易使用LinkList------ArrayList与LinkList速度测试

在Java中,ArrayList的数据结构为数组,LinkList数据结构为链表。数据结构告诉我们,数组适合查询多的场景,链表适合增删多的场景。那么,LinkList在增删多的情况下真的比ArrayList性能更好吗?

2020-07-05 22:22:17 413 1

原创 记录一次阿里云短信排坑-com.aliyuncs.exceptions.ClientException: InvalidTimeStamp.Expired : Specified time stamp

事情的起因是这样的:我们的一个客户服务器重启以后,反应有一个接口报500,我们查看了日志发现是因为阿里云短信发送报错。具体错误为:com.aliyuncs.exceptions.ClientException: InvalidTimeStamp.Expired : Specified time stamp or date value is expired.查看了阿里云的错误码原因:翻译一下就是服务器时间跟阿里云时间对不上,但是看了一下服务器时间是正确的北京时间,最后发现是因为时区不对,所以出现这

2020-06-17 16:04:24 8372

原创 Java分割字符串-split()注意事项

Java在使用String.split()分割字符串时,如果是针对特殊符号进行分割,那么要对特殊符号进行转义。Java中常见的特殊符号有点(.),竖线(|),星号(*),斜线(\),括号([])。一般有两种处理方法,一个是把分割符号包裹在 [] 中,一个是使用 \\ 对分割符号进行转义: //对点(.)进行分割 String[] split1 = test.split("[.]"); String[] split2 = test.split("\\.").

2020-06-02 13:41:23 809 1

原创 设计模式系列-------工厂模式和抽象工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂方法原理很简单,通过把创建对象的逻辑抽离出来,并对外提供一个工厂类的方式,让类的职责更加单一,代码更加清晰。使用者不需要关心具体对象初始化细节,只需要知道传入工厂类的参数。工厂方式一般可以分为三种:简单工厂模式,工厂模式,抽象工厂模式。一般文章或者书会把简单工厂模式和工厂模式当作一种设计模式,把抽象工厂模式当作另一种设计模式。本文通过一个解析配置文件的例子来演

2020-05-19 17:47:54 189

原创 设计模式系列-------单例设计

单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。我会通过不同的版本,演示单例代码。内容总结:为什么要使用单例1、 处理资源访问冲突2、表示全局唯一类3、避免资源重复创建和销毁如何实现一个单例饿汉式:懒汉式:双重检测:静态内部类

2020-05-18 17:42:53 217 2

原创 如何通过docker运行容器

本文以mysql为例,记录如何在docker hub上查找对应的镜像,并运行。查找镜像在docker hub中找到mysql的官方镜像(https://hub.docker.com/_/mysql),其实可以直接在控制台使用docker search mysql 查找mysql镜像,直接run,但是很多配置信息没办法找到。所以建议先看一下官网里的配置教程,里面讲述了很多如何配置mysql的docker命令。基本启动命令通过命令启动对应的容器,其中,docker run说明要启动某一个镜.

2020-05-09 11:44:27 3763

原创 解决SpringBoot内嵌tomcat处理有特殊字符转义问题

前段时间在发生了前端调后台接口失败,原因是url中存在特殊字符,SpringBoot自带的tomcat无法正常解析,返回400 bad Request。网上搜了一下,发现是因为tomcat高版本中,更加严格按照RFC 3986规范进行访问解析,而 RFC 3986规范规定Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字...

2020-04-07 09:24:57 9185 1

原创 linux学习记录--mysql保存中文乱码

今天在写demo时,SpringBoot项目启动后会向mysql中插入几条初始化数据,但是查看数据库的时候发现中文字符显示?????。mysql 保存数据中文乱码"???"问题一般是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,要将数据库的编码设置为中文编码。修改mysql实例的字符集1、使用mysql -u root -p 登陆...

2020-03-23 14:57:41 225

原创 linux安装docker并配置

当自己需要安装和运行一些软件时,如果按照传统的方式下载,安装,配置,感觉太麻烦了。就去学习了一下docker的使用方式。因为自己一般都是在linux上运行,所以记录一下安装过程。1、环境准备Centos 7.7 64位2、使用(uname -r)查看自己的linux服务器内核版本,要求在3.10以上3、更新yum,执行以下语句yum update4、安装docker...

2020-03-18 09:59:18 1681 2

原创 Linux上设置开机启动jar程序

在linux服务器上部署jar项目时,经常要求jar随着服务器启动就自动运行。这里记录一下从网上搜集并测试可用的方法。 1、在控制台输入vim /etc/init.d/jar.sh,编写开机自启动脚本,并输入以下内容:#java environmentexport JAVA_HOME=/usr/local/jdk1.8.0_201export JRE_HOME=${JAV...

2020-03-12 15:16:03 2426 1

原创 Spring事务的传播特性和隔离特性

在Spring中,一共有7种传播特性(文档里只写了三种,但是代码中有7种),其中0级别的事务是默认的。在文档中, 出现的是0,3,6这三种。:在Spring的事务隔离性主要跟数据库相关,默认情况下值为-1。代表事务隔离性完全取决于数据库。...

2020-03-08 22:58:52 168

原创 SpringBoot配置多个数据源

1、排除SpringBoot启动时对相关类的自动配置(也可以不排除,但是用不到的最好手动排除,保持良好的编程习惯),其中包括:DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, JdbcTemplateAutoConfiguration....

2020-03-08 21:36:36 2047 9

原创 解决/actuator/路径404问题

在Spring Boot中配置了actuator以后,我们可以正常访问/actuator跟/actuator/health,但是查看其它的路径时,会出现404错误。原因是 /actuator/health 和 /actuator/info 是默认开放的,其他的需要自己去配置。在SpringBoot配置文件中加入如下代码即可。management.endpoints.web.e...

2020-03-07 14:25:20 12876 1

原创 如何在SpringBoot的pom文件中指定自己的parenet

我们在使用SpringBoot的时候,一般都是使用SpringBoot自带的 spring-boot-starter-parent 作为parent。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...

2020-03-07 11:36:07 626

原创 Git学习笔记

git官方文档:https://git-scm.com/book/zh/v21、git安装:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git2、git最小配置:配置user.name和user.email## 添加配置git config [--local | --global | --s...

2019-12-16 14:16:19 329

原创 Java JDK1.8 核心特性详解------默认方法

在前面的章节中,我对流的使用进行了基本的介绍。在本章中,我将会介绍JDK1.8 提供的默认方法。默认方法概述在JDK1.8之前,要给一个旧的接口添加方法是很麻烦的事,因为其他实现该接口必须实现新增的接口。如果是发布给其他人用的接口,那这对有些用户来说就是个灾难。而且接口中只能添加方法签名,不能想抽象类一样提供部分方法的实现。但是,在Java8中的接口支持在声明方法的同时提供实现,接口可以实...

2019-12-08 00:18:08 451

原创 postgresql 使用tochar将时间转为年-月-日,时:分:秒注意事项

在Java以及一些数据库中,如果我们要把时间戳转为年-月-日,时:分:秒,转化格式一般为 yyyy-MM-dd HH:mm:ss,但是在postgresql中,格式这样写会出现问题,例如我们有以下几条数据,这时的create_time是pg自动帮我们转换的,是正确的:但是如果我们使用 以下sql查询的时候,却出现问题,时间格式无法正确转换。SELECT id,TO_CHAR(max(...

2019-11-07 09:42:00 14741

原创 Java解决可见性和有序性问题---Java内存模型

本文来自《Java并发编程实战》的第二篇《Java内存模型:看Java如何解决可见性和有序性问题》,主要介绍了Java如何通过内存模型解决上篇文章中提到的可见性和有序性问题。更多文章查看:Java并发学习记录总目录Java主要依靠Java内存模型来解决并发编程中的并发问题(可见性,有序性)。Java内存模型(JMM,Java Memory Model),跟JVM是不一样的。具体不同可参考:JV...

2019-11-01 16:15:12 439

原创 MySQL学习记录----总目录

MySQL是目前很流行的开源数据库,最近一段时间在学习MySQL。为了加强学习效果和帮助别人学习了解MySQL,决定把学到的东西总结写成博客。由于不同版本的MySQL不同版本的内部的运行原理可能不一样,本文是基于MySQL5.7的,所以,以下知识点适用5.7。本系列包括基础篇和实践篇。基础篇详细的介绍了MySQL的核心知识,包括MySQL基础架构,日志系统、事务隔离、锁等内容。实践篇从一个个数...

2019-10-26 13:25:42 160

原创 并发编程Bug的源头

本文来自《Java并发编程实战》的第一篇《可见性、原子性和有序性问题:并发编程Bug的源头》,主要介绍了并发问题出现的原因。更多文章查看:Java并发学习记录总目录由于为CPU,内存,I/O设备之间的速度差异很大,CPU速度很快,I/O速度很慢。有时候CPU很快处理完某些任务,却因为要等待I/O的完成,CPU就空闲在那,浪费了CPU资源。影响系统的性能,CPU和内存,内存和I/O设备都可能发生...

2019-10-24 19:40:18 262 1

原创 并发编程的基本理解

本文来自《Java并发编程实战》的引言,主要介绍了应该如何学习并发编程,以及并发编程的总结归纳。更多文章查看:Java并发学习记录总目录并发出现的主要目的是为了提高整个系统的性能。并发编程不是一门独立的学科,我们在学习的时候要做到两点,一个是“跳出来,看全景”,另一个是“钻进去,看本质”。跳出来,看全景由于并发编程相关的知识和技术很多,我们在学习的时候要建立一张全景图,总的来说,并发编...

2019-10-23 22:45:58 224

原创 nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: Para

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='type', mode=IN, javaType=class jav...

2019-09-26 10:34:14 13648

原创 Java JDK1.8 核心特性详解------Stream进阶

在前面的章节(Java JDK1.8 核心特性详解------Stream(流)的使用),我对Stream流中的中间操作筛选、映射、查找、匹配、归约等基本功能进行了介绍,在下面这篇文章里,我们会介绍流的终端操作,包括归约,汇总,分组,分区,以及如何自己定义Collector接口用流收集数据在前面的例子中,我们把数据通过流进行过滤,匹配,和映射,最后使用终端操作得到值,体验到流对我们处理数...

2019-08-25 17:57:48 455

原创 linux安装Nginx并开机自启

记录一次在阿里云服务器上安装Nginx的过程,以及遇到的一些坑。这里使用的是源码安装,建议不要使用yun install命令,这样就没办法定制化安装Nginx。安装环境系统版本 :CentOS 6.9 x64位需求库:pcre,zlib安装流程1、先到nginx开源官网(http://nginx.org/en/download.html)下载nginx的安装包,并上传到服务中...

2019-08-18 22:43:57 1259 1

原创 linux安装并配置初始化PostgreSQL

记录一次在阿里云服务器上安装PostgreSQL的过程,以及遇到的一些坑。安装环境系统版本 :CentOS 6.9 x64位 ,阿里云安全组开放5432端口安装流程1、使用的是yum的安装方式,到PostgreSQL下载官网(https://www.postgresql.org/download/linux/redhat/),根据自己的系统版本获取对应的yum地址。2、使用...

2019-08-16 11:45:00 2843

原创 SpringBoot学习记录----利用Springfox和Swagger-ui生成API文档

记录一下公司用来生成初步API接口文档的swagger使用方法,以及自己配置时遇到的坑,下面直接进入正文。1、导入jar依赖包目前导入的是springfox-swagger2和springfox-swagger-ui的最新版。springfox-swagger2依然是依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件,我们会用到的另...

2019-07-27 23:11:40 733

原创 Java JDK1.8 核心特性详解------Stream(流)的使用

在前面的章节(Java JDK1.8 核心特性详解------Stream(流)的基本介绍),我讲述了流的基本介绍,包括流的一些特性以及简单的用法。在下面这篇文章里,我们会更加具体的学习如何使用Stream对数据进行筛选、映射、查找、匹配、归约等基本功能,以及如何用新的方式创建流。目录流的基本使用筛选映射查找和匹配数值流构建流流的基本使用下面这个List是后面...

2019-07-14 22:39:11 1549 4

原创 将jar包添加到本地maven仓库

在看《算法第四版》的时候,为了能更轻松的实现书上的案例,从提供的网站下了一个官方提供的标准库(jar包)。开始是在简单的Java项目中用IDEA导入,但发现项目包路径下的类无法使用导入的jar包。于是想用maven的方式导入这个jar包,在这过程中踩了一些坑,在这里记录一下要注意的地方。1、要想用maven的方式导入jar包,必须要求这个jar包是一个maven项目打包而成的(要包含group...

2019-07-11 20:39:15 257

原创 Java JDK1.8 核心特性详解------Stream(流)的基本介绍

在前面的章节(Java JDK1.8 核心特性详解------Lambda表达式与方法引用),我们讲述了行为参数化以及Lambda表达式,在下面几篇文章里,我们会学习Stream的使用。流是什么?Stream流是 Java API的心成员,它允许你使用声明的方式处理数据集合。我们可以把流当作一种更加高级的迭代器。通过流我们可以更加方便的顺序或者并行的处理集合。下面将用例子让你先感受一下St...

2019-07-07 22:56:58 531

原创 SpringBoot学习记录----发送各种类型的邮件

前段时间要做一个通过邮件重置找回用户密码的的功能,现在抽空把之前网上找到的资料总结一下。我们可以通过SpringBoot发送普通邮件,带附件邮件,或者是图文邮件。实现的方法大同小异。该教程包括发送普通邮件,带HTML邮件,图文邮件,以及附件邮件。直接上教程:1、准备工作我们发送邮件基本是通过各邮箱的POP3/SMTP/IMAP服务,因此我们在发送邮件前需要开启邮件发送账号的POP3/SMT...

2019-06-22 13:56:05 500

原创 linux学习记录------开放指定网络端口

我们访问其他服务器的一些应用,例如mysql,redis时,需要通过特定的端口访问,但有时候服务器对应端口为打开,本文将讲解如何打开端口:运行(vi /etc/sysconfig/iptables),按照下面红框新增你要打开的端口;保存后重新启动防火墙(service iptables restart)...

2019-05-23 11:10:11 331

原创 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderExce

今天在用springBoot+ssm往数据库里插入的时候报错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis.mapper.provider...

2019-05-20 15:27:00 3213

原创 RocketMQ学习记录-----安装和启动RocketMQ以及可视化控制台

这篇文章仅用来记录如何在Linux环境下安装RocketMQ,方便下次要再次安装可以快速找到教程。同时记录了在安装过程中可能出现的问题。本文下载的是4.4.0版本的RocketMQ。需要环境:CentOS6系统,JDK1.8+(配置好$JAVA_HOME),Maven 3.2+。1、下载安装包,从官网下载对应的压缩包(https://www.apache.org/dyn/closer.cgi?...

2019-05-17 11:11:39 5325 3

jdk_api_1.8中文版

jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。jdk api 1.8 中文版,用于平时查阅java自带的类或者命令。

2018-08-28

think in java java编程思想第四版中文版pdf 附 练习源码

think in java java编程思想中文版第四版pdf格式,附带每章后面的练习源码,供大家下载学习

2018-08-01

算法图解pdf清晰中文版

算法图解的PDF格式,中文格式,页面质量很好,不是那种书扫描上来的那种

2018-08-01

空空如也

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

TA关注的人

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