自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千言万语ROOM

倾尽一生,半世浮华!

  • 博客(438)
  • 问答 (13)
  • 收藏
  • 关注

原创 Spring Boot项目多数据源事务不生效的问题

1.问题场景描述在方法中操作数据库,向表中插入一条数据;然后抛出RuntimeException,发现事务没有回滚,插入的数据依然提交到了数据库中。2.问题查找及分析过程2.1 首先查看项目中是否配置了事务项目中确实做了事务相关的配置:spring.transaction.expression=execution(* xxxxxxx*Impl.*(..))那么这个配置是否生效呢?我们在执行insert后面手动抛出一个RuntimeException,看到如下的报错信息,说明异常确实抛

2021-10-15 20:00:00 4898

原创 问题求解释:volatile修饰数组,能保证数组元素的可见性吗?

好多文章说,volatile修饰数组,能保证引用的可见性,不能保证数组元素的可见性,我做了个实验:public class T03_VolatileArray { static volatile int[] arr=new int[]{1,2,3,4}; public static void main(String[] args) { Thread t1=new Thread(()->{ System.out.println("t1 st

2021-02-23 09:57:43 514 1

原创 3台虚拟机搭建kafka集群

系统:centOS7kafka安装包版本:kafka_2.11-0.11.0.0.tgz1.在opt目录下创建module目录,2.将kafka解压到module目录下:tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module3.在解压后的kafka根目录下创建logs目录4.vim编辑模式下修改config目录下的server.properties配置文件修改配置文件的broker.id,第一台取值为0,第二台取值为1,第三台取值

2020-11-09 20:12:35 718

原创 3台虚拟机搭建zookeeper集群

系统:centOS7zookeeper安装包版本:zookeeper-3.4.14.tar.gz1.解压下载好的zookeeper安装包:tar -zxvf zookeeper-3.4.142.进入zookeeper配置目录conf,复制zoo_sample.cfg配置文件cp zoo_sample.cfg zoo.cfg3.修改zoo.cfg配置文件:首先再zookeeper根目录下创建data文件夹在新建的data目录下创建myid文件,touch myi

2020-11-06 22:41:10 413

原创 二叉排序树(二叉链表实现)

二叉排序树(二叉查找树)的定义:二叉排序树或者是一棵空树,或者是一棵具有以下性质的二叉树:(1)若它的左子树不为空,则左子树上所有结点的值均小于根结点的值;(2)若它的又子树 不为空,则右子树上所有结点的值均大于根结点的值;(3)它的左、右子树都是二叉排序树。二叉排序树的定义是递归的。由此可得到二叉排序树的一个重要性质:中序遍历一棵二叉排序树可得到有序递增序列。二叉排序树结点数据结构的定义(包括关键字项和其他数据项)://每个结点数据域的数据类型 typedef struct

2020-06-06 22:05:00 4490 1

原创 折半查找-C语言实现

折半查找要求表中数据是有序的。折半查找的循环条件是low<=high而不是low<high,为low=high时,查找区间还有最后 一 个结点, 还要进 一 步比较。//折半查找 int SearchBin(SqList &L, int key){ int low=1; int high=L.length; while(low<=high){ int mid=(low+high)/2; if(key==L.elem[mid]){ return mid

2020-06-06 16:40:22 2375

原创 连通图的广度优先搜索实现-邻接表表示图

广度优先搜索过程:(1)从图中的某和顶点v出发,访问v。(2)依次访问v的各个未曾访问过的邻接点。(3)从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问。重复步骤(3),直到图中所有已被访问的顶点的邻接点都被访问到。算法步骤:(1)从图中某个顶点v出发,访问v;置visited[v]为true,v入队;(2)只要队列非空,重复下述操作:第一:队头顶点u出队;第二:一次检查u的所有邻接点w,如果visited[w]=fal

2020-06-01 22:32:11 746

原创 连通图的广度优先搜索实现-邻接矩阵表示图

广度优先搜索过程:(1)从图中的某和顶点v出发,访问v。(2)依次访问v的各个未曾访问过的邻接点。(3)从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问。重复步骤(3),直到图中所有已被访问的顶点的邻接点都被访问到。算法步骤:(1)从图中某个顶点v出发,访问v;置visited[v]为true,v入队;(2)只要队列非空,重复下述操作:第一:队头顶点u出队;第二:一次检查u的所有邻接点w,如果visited[w]=fal

2020-06-01 20:45:46 1187

原创 图的深度优先搜索-递归

图的深度优先搜索的过程:(1)从图的某个顶点V出发,访问V.(2)找出刚访问过的顶点的第一个未被访问的邻接点,访问该顶点。以该顶点为新顶点,重复此步骤,直到刚顶点没有未bedi被访问的邻接点为止。(3)返回前一个访问过的且仍有未被访问的邻接点的顶点,找出该din顶点的下一个未被访问的邻接点,访问该顶点。(4)重复步骤(2)和(3),直到图中所有的顶点都被访问过,搜索结束。例如,上图的深度遍历过程如下:(1)从a顶点出发,访问a。(2)从a出发,访问第一个未被访问的邻接

2020-05-31 17:34:59 2033

原创 使用邻接表创建无向图和有向图

图的邻接表表示法:邻接表(Adjacency List) 是图的 一 种链式存储结构。在邻接表中,对图中每个顶点V建立一个单链表,把与 V相邻接的顶点放在这个链表中。邻接表中每个单链表的第一个结点存放有关顶点的信息, 把这 一 结点看成链表的表头, 其余结点存放有关边的信息, 这样邻接表便由两部分组成:表头结点表和边表。(1) 表头结点表:由所有表头结点以顺序结构的形式存储, 以便可以随机访问任 一 顶点的边链表。表头结点包括数据域 (data) 和链域 (firstarc) 两部分。其中, 数据域

2020-05-24 19:58:36 13351 3

原创 采用邻接矩阵法创建无向图和有向图

#include<stdio.h>#include<stack> #include <iostream>#define MAXSIZE 100#define MaxInt 32767 //表示最大值,即正无穷大 #define MVNum 100 //定义最大顶点数 using namespace std;typedef char VerTexType;//假设顶点数据类型为字符型typedef int ArcType;//假设边的权值为整型type.

2020-05-24 12:06:33 9474

原创 哈弗曼树(顺序表实现)

带权路径最小的二叉树称为哈弗曼树。哈弗曼树是一棵二叉树。由于哈弗曼树中没有度为1的结点,所以有n个叶子结点的哈弗曼树有2n-1个结点,可以存储在大小为2n-1的一维数组中。每个结点要包含结点的权重、双亲结点的信息、孩子结点的信息。wight parent lchild rchild 哈弗曼树的结点形...

2020-05-23 11:21:09 691

原创 使用二叉链表实现二叉树的基本操作

#include<stdio.h>#include<stack> #define MAXSIZE 100using namespace std;int count1=0;int count2=0;typedef struct BiNode{ char data;//数据域 struct BiNode *lchild, *rchild;//左右子树指针 }BiTNode, *BiTree;//先序遍历创建二叉链,输入:ABC##DE#G##F### (#表.

2020-05-17 17:31:35 7396

原创 二叉树的二叉链表示

#include<stdio.h>#include<stack> #define MAXSIZE 100using namespace std;//---------二叉树的二叉链存储表示---------- typedef struct BiTNode{ char data;//节点数据域 struct BiTNode *lchild, *rchild;//左右孩子指针 }BiTNode, *BiTree;//----------------------.

2020-05-17 10:56:59 1841

原创 带头结点的单链表的递归遍历

思想:定义一个指针p,使其指向链表的首原结点,在递归过程中p不断指向后继结点,指导p为空结束递归。算法步骤:1.如果p为null,递归结束返回;2.否则输出p->data,p指向后继jied结点继续递归。#include<stdio.h>typedef struct LNode{ int data; struct LNode *next;}L...

2020-05-03 15:31:18 2437 2

原创 Oracle中使用start with...connect by prior实现递归查询

Oracle中使用start with...connect by prior实现递归查询:今天碰到一个问题,需要插叙某个机构的各级上级机构号,例如:假设数据是这样的:机构号br_id 上级机构号par_br_id1067 10051005 10021002 9909问题就是,如何使用sql查询机构1067的各级上级机构,即将1005,...

2019-09-16 20:47:57 250

原创 9.Redis配置文件

参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Redis监听端口,默...

2019-09-16 09:51:03 120

原创 8.Redis有序集合zset

1.Zset是在set的基础上加上一个sorce值,set的结构是k1 v1 v2 v3,Zset的结构是k1 sorce1 v1 sorce2 v2。Zset是有序set集合,其排序那就是按照sorce值进行排序的。2.Zset常用命令:zadd:向Zset中添加元素zadd key-name sorce value --向Zset中添加一个元素zadd key-name sorce...

2019-09-05 21:13:40 382

原创 7.Redis Hash(哈希)

概要:Redis的hash数据类型是key-value模式,其中value是一个键值对。常用命令:hset key field value:向key中添加元素,元素的键为field值为value;若field存在,将覆盖原有值示例:hset myHash name zhangsan:向myHash中添加元素,键为name值为zhangsanhget key field:取出key中键f...

2019-09-01 17:33:16 139

原创 6.Redis集合(Set)

特点:单key多value,value不允许重复。常用命令:1.sadd/smembers/scardsadd key member [member ...]:向set和中添加元素,自动去掉重复的元素smembers key:获取key中的所有元素sismember key member:判断key中是否存在member,存在返回1,不存在返回0scard key:获取ke...

2019-09-01 17:15:51 135

原创 5.Redis列表(List)

特点:单值多value常用命令:1.lpush/rpush/lrange2.lpop/rpop3.ltrim key 开始index 结束index,截取指定范围内的之后再赋值给key。4.lset key index value将list中index位置的key值改为value5.linsert key before/after 值1 值2:在值1的前...

2019-09-01 16:37:42 93

原创 4.Redis字符串(String)

1.set/get/del/append/strlendel key的名字:删除keyappend key的名字 字符串:key后面拼上指定的字符串strlen:获取字符串长度2.当字符串是纯数字时,使用incr/decr/incrby/decrby进行加减操作,一定要是数字才能加减。incr key名字 :使key的值增加1decr key的名字:使key的值减1...

2019-09-01 14:26:54 98

原创 解决Redis报错之:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist o

现象:使用redis的append命令的时候报这个错;原因:redis快照被强制关闭,导致数据不能持久化;解决:将stop-writes-on-bgsave-error设置为no命令:config set stop-writes-on-bgsave-error no...

2019-08-31 16:23:04 161

原创 3.Redis键(key)

1.keys * :查询当前库里所有的key。2.exists key的名字:判断当前库里key是否存在。3.move key db:将key从当前库中移动到指定的库中,移动后key在当前库中将不存在。例如move k3 2 将k3移动到2号库。4.ttl key:查看key还有多长时间过期,-1表示永不过期,-2表示已过期。5.expire key 秒钟:给指定的key设置过...

2019-08-31 15:38:31 130

原创 2.Redis启动后的杂项基础知识

本篇讲述Redis启动之后,除了基本操作命令和数据类型等之外的其他基础知识。1.redis默认有16个数据库,默认使用0号库,类似数组,库号的下标从0开始。2.redis使用select命令切换数据库,例如select 1 切换到1号库下。select 15 切换到16号库下,select 17 则会超出下标界限,因为redis默认只有16个库。3.dbsize查看当前库key的数...

2019-08-31 11:19:05 100

原创 1.Redis的启动和关闭

第一:启动redis首先创建myredis目录,赋值原生的redis配置文件redis.conf到该目录下,修改配置文件,将图中标的地方改为yes找到redis安装目录,进入src目录下:/redis/redis-3.0.0/src执行命令,启动redis:./redis-server /myredis/redis.conf,我们使用复制并修改后的配置文件启动redis。执...

2019-08-28 21:04:42 217

原创 Ubuntu16.04启动nginx

我在Ubuntu16.04版本的Linux系统上安装nginx后,启动报错:解决方法如下:1.首先在 /var/run/目录下查看没有发现名为nginx的目录:2.在 /var/run/目录下新建文件夹 命名为nginx3.然后执行以下命令:4.然后修改配置文件然后  :wq 保存退出。5.在/usr/local/nginx/目录下建立logs文件夹6.把/var/run/nginx/nginx....

2018-06-10 16:04:36 14249

原创 引用Dubbo时报错Multiple annotations found at this line: - cvc-complex-type.2.4.c:

Multiple annotations found at this line: - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element   'dubbo:application'. - schema_reference.4: Failed t...

2018-05-27 13:06:13 2373

原创 SSM后台代码获取页面表单字段值的一个注意点

SSM框架的自动绑定机制利用前台标签的name属性和POJO中的成员名一致进行绑定。例如:POJOpublic class User{private String tlrNo;private String password;........}页面表单:&lt;form action="${path }/user/login" method="POST" id="myform"&gt; &lt;i...

2018-04-15 15:57:23 1980

原创 Java中Integer类的自动装箱和自动拆箱

所谓自动装箱,就是把基本数据类型用他们对应的引用类型包装起来,使他们可以具有对象的特质。例如我们可以把int类型包装成Integer类型的,把double类型的包装成Double类型的。所谓拆箱,就是进行与自动装箱相反的操作。自动装箱的过程:当需要一种类型的对象时,这种基本数据类型就自动封装到与它对应的包装类中。自动拆箱的过程:当需要一种

2017-07-13 16:42:39 4230 2

原创 JSP页面中实现网页访问量的统计

要想实现保存访问量数据,不能使用session,因为session是属于同一个会话的,关闭浏览器后,数据就没有了。因此可以使用application对象实现,因为application是属于同一个浏览器下的,只要是使用同一个浏览器访问,就可以保存数据。但是要想永久保存访问量数据,可以将数据保存在文件中,例如txt文件。因此使用session对象+application对象+txt文件下面是

2017-04-17 13:41:58 11753 4

原创 Pointcut is malformed: Pointcut is not well-formed: expecting 'name pattern' at character position 5

注意:空格

2017-03-31 19:10:34 1370

原创 org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/atguigu/hi

原因是由两个  .hbm.xml文件名字相同,但是在不同的包里,也会无法解析.删除其中一个就行了.

2017-03-25 15:42:09 1182

原创 第一次使用hibernate写的helloworld

今天第一次使用hibernate谢了个小程序:使用hibernate创建数据表,并插入数据,但是报了个异常:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.atguigu.hibernate.hellow

2017-03-23 22:11:43 375

原创 Property 'items' not found on type com.bookstore.domain.ShoppingCart 一个错误

这段代码报了上面的异常:Property 'items' not found on type com.bookstore.domain.ShoppingCart 但是同样的EL表达式操作同一个类的字段就没问题:${sessionScope.ShoppingCart.bookNumber }${item.book.title }${item.book.price }$

2017-03-16 16:08:53 1686 1

原创 java.sql.SQLException: Cannot create com.bookstore.domain.TradeItem 异常

java.sql.SQLException: Cannot create com.bookstore.domain.TradeItem:报这个异常原因是没有给  TradeItem  类提供无参的构造器,事实上要提供无参和有参的两个构造器。

2017-03-15 13:03:16 1541 1

原创 普通for循环和增强for循环处理数组元素的一个差别

@Test public void test3(){ String[] str =new String[]{"AA","BB","MM"}; for(int i=0;i<str.length;i++){ str[i]=i+"";//此处将新的值赋值给str[i] } for(int i=0;i<str.length;i++){ System.out.print

2017-01-22 21:27:05 1909

原创 输出1-10000之间的质数

package com.atguigu.java1;public class TestPimeNumber { public static void main(String args[]){ l:for(int i=2;i<=10000;i++){ for(int j=2;j<=Math.sqrt(i);j++){ if(i%j==0){ continue l;

2017-01-02 20:46:36 3358

原创 输入年月日,判断改天是今年的第几天

从键盘分别输入年、月、日,判断这一天是当年的第几天。public class Test { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入year:"); int year = scanner.nextInt();

2017-01-02 12:04:24 3682 1

原创 《数据结构》创建二叉树

输入节点值得时候要注意!!!要按照abc##de#g##f###的格式输入。/*二叉树 */#include//使用二叉链表存储二叉树 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//先序遍历的顺序简历二叉链表 void CreateBiTree

2016-06-21 23:17:47 3238

空空如也

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

TA关注的人

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