自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringEvent和Async搭配

​项目中使用 Spring Event 和 Async 实现了个功能,因为怕数据丢失,还有个比较久才会触发的保底捞数据的定时器。然后某天 event 和定时器同时跑了同一批数据,数量有点多触发了告警,虽然最后被唯一索引拦了,没造成啥影响,不过想研究下为啥Spring Event 中发事件的方法 @Override public void multicastEvent(final ApplicationEvent event, ResolvableType eventType) { Res

2021-06-23 23:02:28 605

原创 项目内嵌h2数据库报错用户名密码错误

今天跟着一个 demo 使用 h2 数据库,一通操作下来结果运行的时候报错了。报错如下,就是用户名和密码错了:检查了一下,是在IDEA创建链接的时候,没有设置账号密码导致的,然后一直在找 h2 数据库是否有默认账号,没找到。经过各种找,终于发现了下面两种解决方法: 1. 给这个数据库创建一个用户通过 IDEA 连接数据库后,执行下面的语句创建一个用户CREATE USER ...

2020-02-14 00:00:24 2400

转载 SpringMVC访问 html 文件404

在 SpringMVC 的控制器中,我们一般是如下配置: <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-clas...

2019-11-19 20:17:36 420

转载 使用 MyBatis 逆向工程

新建一个工程我们要新建一个java工程,这个工程专门用来使用逆向工程生成代码的。因为在原来的工程中生成,但是有风险,因为mybatis是根据配置文件来生成的,如果生成的路径中有相同的文件,那么就会覆盖原来的文件,这样会有风险。所以开发中一般都会新建一个 java 工程来生成,然后将生成的文件拷贝到自己的工程中,这也不麻烦,而且很安全。项目结构如下:导入所需的 jar 包我这里用的 m...

2019-11-06 18:04:41 133 1

转载 访问腾讯云服务器上的MySQL服务报错

本文转载自无法连接云服务器上的MySQL服务把 MySQL 安装到腾讯云的服务器上以后,就想用可视化连接玩一下,然后报了这个错:查了半天才查找这个博客,主要问题就是腾讯云有个安全组,需要自己设置开放端口,具体可按照腾讯云那里的教程操作,示例如下:开启端口后就能连上了,但对于新的数据库还会报一个错:1130:Host ’ ’ is not allowed to connect ...

2019-11-05 20:14:53 609

原创 Centos7安装MySQL

搞了个服务器想安装 MySQL 来着,然后去网上看了各种教程,搞来搞去总有问题,最后还是看官方文档搞定了。在这贴个官方文档的连接:MySQL安装官方文档,英语不好的话网页翻译一下就好了,基本能搞定。5.6,5.7,8.0版本都可以安装。安装步骤:  先去官网下载 rpm 文件:https://dev.mysql.com/downloads/repo/yum/,根据自己的...

2019-11-05 19:56:47 483

转载 远程SSH连接服务器报错IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY

本来用 SCP 指令从 Win10 传文件给云服务器来着,然后发生了点问题给云服务器重装系统了,再用 SCP 传的时候就报了下面的错:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@...

2019-11-04 21:14:51 1021

原创 动态规划

动态规划动态规划方法通常用来求解最优化问题。这类问题可以有很多可行解,每个解都有一个值,我们希望寻找具有最优值的解。我们称这样的解位问题的一个最优解,而不是最优解,因为可能有多个解都达到最优值。需要注意的是,动态规划是求解某类问题的一种方法,是考察问题的一种途径,而不是一种特殊的算法。动态规划的求解步骤如下:刻画一个最优解的结构特征递归地定义最优解的值计算最优解的值,通常采用自底向上...

2019-11-01 10:13:08 159

原创 MySQL索引

本文参考自聚集索引与非聚集索引的总结 以及 姜承尧的《MySQL技术内幕–InnoDB存存储引擎》MySQL 索引详解在开始介绍前,我们先整理一下 MySQL 的索引:聚集索引、非聚集索引(普通索引,组合索引,唯一索引)、倒排索引(用于全文检索,也称全文索引)、哈希索引其中,聚集索引和非聚集索引的存储结构都是 B+ 树结构,全文检索的倒排索引则主要是一张辅助表。需要注意的是:B+ 树...

2019-10-30 15:57:01 109

原创 JVM垃圾回收介绍

本文总结自周志明的第 2 版《深入理解 Java 虚拟机——JVM 高级特性与最佳实践》文章目录JVM 垃圾回收一、对象死亡1. 引用计数算法2. 可达性分析算法3. Java 中的引用4. 宣告对象死亡5. 方法区回收二、 垃圾回收算法1. 标记—清除算法2. 复制算法3. 标记—整理算法4. 分代收集算法三、 垃圾收集器1. Serial 收集器2. ParNew 收集器3. Paral...

2019-10-23 17:22:35 102

原创 Java内部类用法

前两天携程笔试,考到了内部类的一些知识点,已经有些模糊了,现在来通过《Java 编程思想》回顾一下文章目录1. 普通内部类:内部类的创建内部类获取外部类对象2. 局部内部类3. 匿名内部类4. 嵌套类(静态内部类)1. 普通内部类:必须使用外部类的对象来创建该内部类对象。内部类自动拥有对其外部类所有成员的访问权。内部类的创建在外部类的内部,可以直接的创建内部类对象,但如果是在外部类...

2019-10-16 17:59:28 111

原创 Java内部循环中断外部循环

这两天看《Java编程思想》,看到一个比较少见的但感觉有用的点,在这里记录一下:Java 中没有 goto 语句进行任意跳转,但是 Java 有一种跟 goto 相似的跳转,也是通过标签,但只能针对循环使用。使用方式:label1:outer-iteration { inner-iteration { //... break; //(1) //... ...

2019-10-14 16:28:48 1045 3

原创 [笔记] Java线程通信

文章目录线程通信1. synchronized2. Lock3. 阻塞队列 BlockingQueue本文主要来自李刚的《疯狂Java讲义》第三版线程通信当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但 Java 也提供了一些机制来保证线程协调运行。我们假设有一个存取款系统,存款跟取款是不同的线程,现在有一个比较特殊的要求,存款与取款的操作一直在进行...

2019-10-10 17:00:57 123

原创 [笔记] Java中的线程安全与锁

Java 线程安全与锁本文来自周志明的《深入理解 Java 虚拟机——JVM高级特性与最佳实践》文章目录Java 线程安全与锁一、 线程安全定义二、 共享数据的分类1. 不可变2. 绝对线程安全3. 相对线程安全4. 线程兼容5. 线程对立三、 线程安全的实现1. 互斥同步synchronizedReentrantLock二者对比:2. 非阻塞同步CAS3. 无同步方案可重入代码线程本地存储四...

2019-10-09 17:29:10 155

原创 Java线程池简单介绍

Java 线程池介绍一、线程池线程池,从字面含义来看,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中保存了所有等待执行的任务。工作者线程的任务很简单:从工作队列中获取一个任务,执行任务,然后返回线程池并等待下一个任务。跟数据库连接池相似,如果每一次操作,都要新建一个线程(连接)然后销毁,会对系统资源产生巨大开销,通过线程池(连接池)对线程(连接)进行管理,让...

2019-10-03 16:36:48 191

转载 Java中的代理模式

文章目录Java 的三种代理模式1. 什么是代理模式代理模式的定义:代理模式的优点:代理模式的缺点:2. 静态代理3. JDK 动态代理4. Cglib 代理Java 的三种代理模式本文参考自Java的三种代理模式1. 什么是代理模式代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之...

2019-09-29 16:41:10 94

转载 Linux常用命令

文章目录1. 登录服务器 SSH 命令2. 传输文件 scp 命令3. 查看系统状态 top、free、df、du4. 压缩/解压 tar 命令5. 修改文件属性 chmod6. 查找文件 find 命令7. 查询字符 grep 命令8. 查看端口占用 netstat 命令9. 查看文件内容 tail 命令10. 停止应用 kill 命令11. 路径命令 cd、pwd12. 创建文件夹 mkdir...

2019-09-27 16:31:47 134

原创 Java深拷贝和浅拷贝

深拷贝和浅拷贝拷贝,也是克隆,其功能是,创建一个与被克隆对象一样的对象,而并不是克隆一份引用。浅拷贝:拷贝所有的基本类型,对于引用类型,则直接拷贝引用。深拷贝:拷贝所有的基本类型,对于引用类型,重新创建一个该引用类型的对象,并拷贝这个引用类型对象。在 Java 中,实现拷贝的方法有以下 2 种:1、Object 的 clone()方法调用 Object 的 clone()方法,默认...

2019-09-24 21:43:59 164

原创 IDEA重复运行同一程序

打开运行配置:勾选允许并行启动选项

2019-09-23 11:17:19 5005 3

原创 Java消息中间件简单应用

本篇博客主要来自慕课网的课程:Java消息中间件文章目录中间件介绍一、什么是中间件二、什么是消息中间件三、什么是JMS四、什么是AMQP五、常见消息中间件对比JMS规范一、消息模式1. 队列模式2. 主题模式二、JMS编码接口代码DEMO启动ActiveMQ代码DEMO1. 队列模式生产者消费者2. 主题模式发布者订阅者消息查看中间件介绍一、什么是中间件非底层操作系统软件,非业务应用软件,...

2019-09-22 16:19:55 458

原创 JVM内存模型

JVM内存模型:1. 程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转等都依赖于程序计数器。在任意确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的指令,为了保证每个线程在调度过程中能正确恢复执行,每条线程都需要有一个独立的程序计数器。...

2019-09-19 15:12:20 81

原创 Java线程控制

文章目录线程的生命周期线程控制1. 线程加入2. 后台线程3. 线程睡眠4. 线程让步5. 线程优先级8. 线程中断线程的生命周期我们先来看下生命周期的图,该图来自《疯狂 Java 讲义》新建:当一个线程被 new 出来后,他就处于新建状态就绪:当一个线程调用 start()方法后,他就处于就绪状态运行:当一个线程获得 CPU,就开始执行线程执行体即 run()方法,此时就进入了运行...

2019-09-18 16:19:05 76

原创 IDEA 使用 hibernate

1. 添加 hibernate 依赖打开项目结构选择模块选项卡添加 hibernate 依赖添加配置文件,如果已经有配置文件可以直接选择该文件,没有也可以直接新建一个:新建完后默认配置文件如下:2. 完成配置文件配置文件的一个例子,hibernate 还有很多参数配置,可以去官网查看:<?xml version='1.0' encoding='UTF-8'?&gt...

2019-09-17 16:09:29 2250

原创 Java创建线程方法

一、继承Thread类定义 Thread 类的子类,并重写该类的 run() 方法,该 run() 方法的方法体就代表了线程需要完成的任务。因此把 run() 方法称为线程执行体。创建 Thread 子类的实例,即创建了线程对象。调用线程对象的 start() 方法来启动该线程。示例代码如下:public class ThreadTest extends Thread{ pr...

2019-09-16 22:20:30 88

原创 虚拟机centos7启动网络服务失败

今天打开虚拟机想测试redis的时候,可视化工具一直连不上,然后发现虚拟机没网了。可视化桌面手动连接网络也连不上:ping 也 ping 不通,按百度来的修改网络配置 /etc/sysconfig/network-scripts/ifcfg-ens** (我这是33)然后重启,也会报这个错然后还检查了一遍虚拟机的配置,也没问题:然后各种百度找资料,还是没找到,甚至重装系统还是没找到...

2019-09-14 23:51:16 517 1

原创 Java IO流笔记

一、IO流分类:根据数据流向的不同可分为输入流和输出流;根据处理的数据类型不同可分为字节流和字符流;根据流的角色来分,可以分为节点流和处理流;1. 输入流输出流:一个流的流向是相对于当前这个程序的,从这个程序的内存中传输数据出去,就是输出流;将数据从外部写入程序内存中,就是输入流。在 Java 中,输入流主要由 InputStream 和 Reader 作为基类,输出流主要由 Outp...

2019-09-13 16:02:23 155

转载 Java序列化反序列化详解

本文参考自java 序列化,看这篇就够了 一、序列化的定义序列化:将对象写入到 IO 流中反序列化:从 IO 流中恢复对象使用场景:将对象存入数据库或文件时,在网络通信时传输序列化后的对象时 二、实现序列化的方式如果一个类想要实现序列化,那它就要实现Serializable或者Externalizable两个接口中的一个。这里放个 User 类 用来序列化:...

2019-09-07 15:54:50 243

原创 redis存储对象

package com.grh;import com.alibaba.fastjson.JSON;import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;import java.io.*;import java.util.Map;public class redisJedis ...

2019-09-05 18:59:29 206

原创 Java字符串详解

一、字符串常量池字符串常量池就跟包装类的常量池一样,不过是在 jdk1.7 版本中才加入,实现在堆内存中。与基本类型的包装类不一样,字符串常量池没有装箱拆箱等操作,也不会像包装类一样一开始就有数据,而是在程序运行的过程中,将一些字符串存入常量池中,以此来提高效率。下面通过一个例子来说明一下 public static void main(String[] args) { ...

2019-09-04 17:17:46 196

原创 远程访问redis报错原因

一、检查配置文件注销bind 127.0.0.1,或者绑定允许连接的ip地址redis3.2版本以上的,需要将保护模式修改成no二、检查防火墙我用的centos7,它的防火墙是firewall,此处列举一些相关指令:1.查看已开放的端口(默认不开放任何端口)firewall-cmd --list-ports2.开启6379端口firewall-cmd --zone=public...

2019-09-01 16:37:49 295

原创 centos7安装Redis5.0

一、下载安装包Linux系统直接输入下列命令$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz$ tar xzf redis-5.0.5.tar.gz$ cd redis-5.0.5$ make或者百度网盘下载,放到Linux上后从第二个命令开始往下执行即可链接:https://pan.baidu.com/s/1...

2019-09-01 14:54:27 161

原创 (基于Centos7)Linux文件目录结构笔记

Linux 文件目录笔记本来参考自菜鸟教程的Linux系统目录结构以及Linux文件目录结构详解Linux通用树状目录结构:目录应放置的内容/binbin 是 Binary 的缩写, 这个目录存放着最经常使用的命令。,但/bin 比较特殊。因为/bin 放置的是在单人维护模式下还能够被操作的指令。在/bin 底下的指令可以被 root 与一般帐号所使用,主要有:c...

2019-08-29 14:01:17 206

原创 Java反射知识点笔记

1. Class对象类是程序的一部分,每个类都有一个Class对象,而反射所依赖的就是这个Class对象。在JVM中,类都是动态加载的,当程序创建第一个对类的静态成员的引用时,就会加载这个类,这个可以证明构造函数也是类的静态方法,即使构造方法没有使用static关键字。类加载器首先检查在这个类的Class对象是否已经加载,如果尚未加载,默认的类加载器就会根据类名查找 .class 文件,这个...

2019-08-18 13:30:48 115

原创 class.newInstance()方法被弃用

在java1.9版本中,newInstance()已经被弃用,取而代之的是class.getDeclaredConstructor().newInstance()class.newInstance()会直接调用该类的无参构造函数进行实例化class.getDeclaredConstructor().newInstance()getDeclaredConstructor()方法会根据他的...

2019-08-13 20:27:33 27678 3

原创 mysql日期时间设置默认0000-00-00 00:00:00出错

在解决问题之前,我们要先了解一下mysql的严格模式和非严格模式,有兴趣可以自己查看一下官方文档严格模式顾名思义,就是比非严格模式更为严格,主要就是对数据的要求更为严格,比如数据的类型,长度,格式等。比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,当写入或更新的数据超过了定义的长度也不会报错。还有一些关于null...

2019-08-11 18:19:52 18758 1

原创 mysql8.0JDBC驱动问题

mysq 8.0以上版本的驱动连接与5.0版本有所不同,下面是链接配置jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sys_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=A...

2019-08-11 16:20:27 7061 1

原创 JAVA包装类型缓存池详解

前言:我们知道,缓存一些常用的数据能提高程序的运行效率,而在Java中,Java给一些基本类型提供了一个缓存池,缓存池中已经提前存进去了一些元素,提高数据的读取速度。各个类型的缓存池内容如下boolean values true and false //布尔类型中的两个取值 true和falseall byte values ...

2019-08-09 20:15:40 1636

原创 JQuery选择器总结

1. 基本选择器选择方法与CSS选择器相似,如下所示: //id选择器 $("#id") //类选择器 $(".class") //标签选择器 $("div") // 综合选择器 $("#id,.class,div") //通配符选择器 $("*")2. 层次选择器 ...

2019-08-07 19:54:54 108

原创 消息中间件、分布式、集群、负载均衡简要分析

之间上过云计算和大数据相关的课程,那时候就集群、分布式傻傻分不清,最近在慕课网学习消息中间件,就想好好整理一下他们之间的关系,以及使用的情景。本篇文章主要参考自分布式、中间件和消息队列、集群一、集群集群:同一个业务,部署在多台服务器上,这个就叫做集群。...

2019-08-05 13:36:47 941

原创 JavaScript基础复习

JavaScript基础复习JS代码最好放在body标签后JS 代码可以放在html标签内部的任何位置,但最好放在 body 标签之后或者 body 标签内部的最后,因为HTML文件加载是从上往下加载,如果 JS 代码有获取 HTML 页面标签的语句,在这个标签被加载出来前就加载了 JS 代码,就会导致获取的HTML节点为空。JS中声明变量都用varJS 有四种原始类型,分别是Stri...

2019-08-03 20:52:10 130

空空如也

空空如也

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

TA关注的人

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