- 博客(57)
- 收藏
- 关注
原创 JVM——内存模型
目录线程私有程序计数器栈本地方法栈线程共享线程私有线程私有的内存区域为程序计数器、栈、本地方法栈。程序计数器程序计数器存储当前程序执行的字节码行号,目的是程序切换回来的时候能回到正确位置栈(虚拟机栈)栈的生命周期和线程相同,一个栈里包含一个或多个帧栈,每个方法执行时都会创建一个帧栈、帧栈里存储的是局部变量表,操作数栈,方法出口和动态链接等。本地方...
2020-05-06 18:39:58
192
原创 shell——初识
本文由https://www.runoob.com/linux/linux-shell.html学习整理得来关于分类Linux的Shell有很多种,常见的如下Bourne Shell (/usr/bin/sh 或 /bin/sh)Bourne Again Shell ( /bin/bash)C Shell (/usr/bin/csh)K Shell (/usr/bin/ks...
2019-07-04 18:38:11
137
原创 学习git(廖雪峰老师)——git简介
git简介git是一个开源的分布式版本控制系统,拥有强大的分支管理。分布式版本控制系统VS集中式版本控制系统集中式版本控制系统SVN,CVS都是集中式版本控制器。所谓的集中式版本控制系统就是版本库直接存放在中央服务器上,当我们要修改代码的时候,我们需要从中央服务器上下载代码到自己的电脑里,然后修改,再把修改好的代码推送到中央服务器上。缺点:必须连网,中央服务器挂了,其他人就...
2018-11-02 11:56:39
204
原创 浅谈数据结构种的树(二叉树,完全二叉树,满二叉树)
在说数之前我们先了解一下什么是度度:就是结点拥有的子树数。深度:数的层数,根节点为第一层,依次类推。叶子节点:度为0的节点,即没有子节点的节点。如下图所示,树1的度为1,树2的度为2.二叉树定义二叉树就是每个节点最多有两个子节点的树结构。性质性质1:二叉树第i层上的结点数目最多为 2^(i-1) (i≥1)。性质2:深度为k的二叉树至多有2{k}-1个结点(...
2018-08-19 15:05:43
442
原创 死锁必要条件,产生原因,避免,预防,解决
什么是死锁?死锁是多个线程之间因为抢夺不可剥夺资源而造成相互等待的现象。举个栗子现有两个字符串obj1,obj2,还有两个锁线程Lock1和Lock2。Lock1先锁住obj1,再锁住obj2,Lock2先锁住obj2,再锁住obj1。启动两个线程Lock1和Lock2,当某一时刻,Lock1锁住了obj1,请求obj2的资源,而同一时刻Lock2锁住了obj2,请求obj1,此时线程...
2018-08-13 19:43:08
216
原创 最小的k个数
题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路一:利用快排的思想,随机从数组中取一个数X(我就取数组的第一个数了),如果定义一个游标 i=0 和 j=arr.length-1 ,先从j开始,向前走,如果下标为j的数字<x,那么下标为 j 的数换成X,X的位置换成下表为 j 的数,接着在从前往后走,如果碰...
2018-08-11 15:57:44
140
原创 数组中出现超过一半的次数
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0.思路一:把数组排好序,出现次数超过一半的数一定是排好序数组的中位数。然后取中位数,计算它出现的次数是否超过数组长度的一半。代码: public int MoreThanH...
2018-08-11 12:01:05
119
原创 字符串的排列
前言:可能写的思路有些混乱,如果有不懂的或我说错的,还请指教批评 ,本人还是很希望有批评的,因为写了这么多篇博客,没有评论,所以不知道自己的不足,希望能有评论来指正我的不足,来让我改正。题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。注意,这里还需要按字典序排...
2018-08-10 17:39:48
188
原创 解决AOP中代理获取不到Annotation的问题
今天想使用aop写一个缓存同步的注解遇到了一个问题我用MethodSignature.getMethod();方法得不到目标对象的注解@After("@annotation(com.art.annotation.DeleteRedisCache)") public void deleteCacheById(JoinPoint joinPoint) { MethodSignatur...
2018-08-08 23:24:23
4236
1
原创 solrJ的使用(简单使用+整合spring)
solrJ是java的客户端,使用它可以对solr的索引库进行增删改查等操作下面我们就来看看它的用法Solr简单使用在使用之前我们需要把solrJ的jar包导到工程里去一、我们先说向索引库中添加一个文档1.使用一个HttpSolrServer创建一个solrServer对象2.创建一个SolrInputDocument3.向文档中添加域,注意:必须有id域,并且域名在s...
2018-08-07 00:50:55
908
原创 nginx安装(linux版)
工具:nginx-1.8.0由于linux的版本不同,所以为了在不同版本上都能安装,nginx的linux版本是源码。第一步:需要安装gcc环境 命令:yum install gcc-c++第二步:第三方开发包 注意:需要联网 (1)pcre pcre是n...
2018-08-05 17:18:35
14485
1
原创 ActiveMq安装
因为他是java开发的所以,我们只需要安装jdk,然后解压缩,就好使了工具:ActiveMq步骤一:安装jdk和windows下一样,此处省略步骤二:把activemq的压缩包放在centos里我使用xftp5把它 的放到了centos的/root/art/ActiveMq下步骤三:解压缩命令:tar zxf apache-activemq-5.12.0-bin.t...
2018-08-04 21:04:07
155
原创 solr安装(集群版)
工具:zookeeper solr什么时候搭建集群?当我们搜索系统访问量过大的时候,solr索引量过大的时候我们就需要搭建solr集群。怎么搭建集群?在搭建集群之前,我们需要明白几个名词Collection:Collection在solr集群中是一个逻辑上完整的索引结构,它常常被划分为一个或多个分片(Shard),他们使用相同的配置信息。例如对商品信息搜...
2018-08-04 19:49:09
2832
原创 solr安装(单机版)
工具:solr-3.4.10步骤一:安装JDK此步省略步骤二:使用xftp5把solr-3.4.10传到虚拟机里步骤三:解压solr-3.4.10命令:tar zxf solr-4.10.3.tgz.tgz步骤四:solr和tomcat整合solr是个java工程,所以我们需要把他放在tomcat的webapps下(1).解压tomcat命令:tar z...
2018-08-04 14:25:41
633
原创 二叉树中和为某一值的路径
题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:思路很简单,实现很困难,嗯,对实现很困难。 下面我来说一下思路, 有几个定义提前说一下,输入的整数定义为int target,节点定义...
2018-08-02 23:38:54
117
原创 Jedis整合spring的使用
Jedis有两个对象用来连接redisJedisPool和JedisClusterJedisPool是用来连接单机版的jedisJedisCluster是用来连接集群的下面我们就来讲讲这两个对象的用法前提准备在使用这两个类的时候,我们需要先导入jedis包,我这个是maven工程,所以我在pom文件中配置、<!-- Redis客户端 --> <...
2018-08-02 17:18:17
3268
2
原创 redis安装(集群版)
工具:redis-3.0.0.gem集群架构再安装集群之前我们先简单了解一下redis的居群原理我们先看一下redis集群架构图我们从上边可以看出,redis集群是由多个redis主节点和redis从节点组成,客户端与redis节点直接相连。redis集群中内置16384个hash槽,集群根据节点的多少把槽平均分配到每一个节点上,当我们往redis集群中存放一个key-valu...
2018-08-02 14:10:12
302
原创 redis安装(单机版)
linux有不同的发行版本,所以很难开发出一个软件适合所有的linux,因此redis也是同样不能使用所有的linux,所以我们需要只要编译redis的源文件就可以了,redis是c写的,所以编译redis需要gcc编译环境,他是c语言的编译环境。工具:redis-3.0.0第一步:判断是否有gcc编译环境,出现command not found代表没有命令:gcc第二步:安装...
2018-08-01 18:43:28
179
原创 400错误(Bad request)
最近把之前做过的项目整理了一下,发现之前犯的错现在又犯了一遍。所以打算记录下来这些错误,以便之后不再犯。400错误是请求错误原因:前台传的参数类型和后台接收的不一致 ...
2018-08-01 17:14:32
15156
1
原创 MyBatis新增记录时返回id的配置
当我们把主键设置成主键自增的时候,插入时就不用手动生成主键了,但是当我们要查询新增记录的主键的时候就比较麻烦了。那么我们怎么解决这个问题呢?答案是:我们可以SELECT LAST_INSERT_ID()来查询最后插入的id你可能会问,当插入多条数据的收,ID值岂不是最后一条数据的ID,然而事实并不是这样,当你一次插入了多条记录,这个函数返回的是第一个记录的ID值。因为LAST_...
2018-07-31 22:11:40
1075
原创 二叉树的后续遍历序列
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:首先我们应该直到二叉搜索树的特点是根节点左边的所有元素都小于它,右边的所有元素都大于它, 这样我们只要使用递归的方法判断根节点的左边是否都小于它和右边是否都大于它就可以。 具体算法: ...
2018-07-31 14:27:11
1522
原创 git提交五部曲
1.查看当前状态 git status2.提交修改到git的缓冲区中 git add . 3.推送修改到本地的git库 git commit -m "修复XXbug" 4.拉取远程分支的更新到本地合并(git pull <远程主机名> <远程分支名> 取回远程主机某个分支的更新,再与本地的指定分支合并) pull origin m...
2018-07-30 23:17:31
386
原创 从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:这就是一个二叉树的层序遍历,借用一个队列来实现。将二叉树的根节点放在队列里,然后从队列里取节点作为当前节点,如果当前节点的左节点不为null,则将左节点入队,然后判断右节点,如果当前节点的右节点不为null则入队。举个栗子 首先,我们把1入队,然后从队列中拿1,把1放入集合中,1的左子树是...
2018-07-30 14:06:53
154
原创 栈的压入和弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:借助一个辅助栈,和一个弹出序列的索引index,将整数序列依次压入,每压入一个就将...
2018-07-30 12:29:23
178
原创 解决maven项目中junit报class not found错误
原因:报这个错误是因为项目的target目录下没有生成测试类,因为在maven项目里要运行Junit,必须在target/test-classes找到对应的编译类解决:右键pom文件,runAs--->mavenTest...
2018-07-28 13:43:36
10694
3
原创 包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:首先可能到这道题你首先想到的是,循环求最小的输出就好了,但是,千万别忘记审题。 题目要求的是O(1),所以这个想法就不对了 那么有什么办法才能让它时间复杂度为O(1)呢? 我们使用一个辅助栈 思路是这样的...
2018-07-27 18:29:55
80
原创 顺时针打印矩阵
该题是参考剑指offer写的,如有错误,欢迎指正本文可能写的有些混乱了,需要结合代码看。另外本问有两个变量在此先声明一下columns :该二维数组的列数rows :该二维数组的行数
2018-07-27 16:41:35
84
原创 二叉树镜像
题目:操作给定的二叉树,将其变换为源二叉树的镜像二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路:从根节点开始,...
2018-07-27 00:03:13
148
原创 解决org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'itemContro
错误图片第一行的右边(太长了)错误原因由于ItemController里引用了ItemService,而ItemService创建bean失败导致解决办法1.查看ItemService类是否写了@Service注解2.查看ItemService所在的包是否被扫描3.查看含有扫描ItemService所在的包的配置文件是否被加载(我的就是这个问题,忘记在w...
2018-07-26 15:06:20
500
原创 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.art.mapper.It
错误图片原因:mapper映射文件没有发布虽然我们的工程中由mapper.xml文件,但是我们的工作空间中,映射文件并没有发布因为我的xml配置文件放到了src/main/java中而默认是解析的是src/main/resource解决办法一:把xml文件放到src/main/resource中解决办法二:在pom.xml中配置注意:如果只配置src/mai...
2018-07-26 14:42:43
124
原创 dubbo-admin的安装(安在centos中)
工具:dubbo-admin-2.5.4 apache-tomcat-7.0.47 xftp5和xshell 可有可无,是本人习惯使用的传输工具,和终端工具。本人是使用zookeeper作为dubbo的注册中心,所以需要先安装zookeeperzookeeper安装见https://blog.csdn.net/weixin_38497513/a...
2018-07-25 22:51:42
275
原创 zookeeper安装(centos6.4 64位)
工具:centos6.4 64位 jdk zookeeper-3.4.6步骤一:在centos上安装jdk(省略)查看是否由jdk命令:java -version步骤二:将zookeeper-3.4.6从window系统中复制到centos里,我复制到的路径是/root/art,我使用的是xftp5来传输的复制后centos里的...
2018-07-25 18:45:47
325
原创 解决dubbo配置中的Multiple annotations foundnat this line问题
我们在配置dubbo的时候dubbo的标签经常出现红色的叉是因为我们eclipse没有配置dubbo约束当然没有配置约束也不影响程序继续运行,但是有强迫症的我总是看不惯,所以想要把查查弄掉eclipse 配置 dubbo约束具体过程是:下载dubbo.xsd——>window——>preferences——>XML——>xmlcatalog——>—...
2018-07-24 22:33:17
310
原创 合并两个有序链表
题目:输入两个单调递增的链表l1,l2,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:思路很简单,我们可以用递归,定义一个结果链表,循环长度小的链表,如果l1的值小于l2的值,则把l1的值放在result中的后边,以此类推,但是,我们需要注意当输入l1和l2为null的情况,如果l1为null,l2!=null那么直接返回l2,如果l2为null,l1!=null那...
2018-07-23 11:49:20
104
原创 反转链表
题目:输入一个链表,反转链表后,输出新链表的表头。时间限制:1秒思路:我首先想到的是用栈存储链表,然后再依次出栈然后返回头节点。但是,该方法太费时间,效率不高所以,我们循环采用只遍历一次就能反转的方法链表:1——>2——>3——>4——>5——6我们从头开始遍历,用p.next=head把1指向2的指针反转过来变成 1<——2 ...
2018-07-22 22:35:39
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人