自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 ​​​​​​​报错:java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3)

题目:在一个二维数组中,每一行按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。完成一个函数,输入这样的一个二维数组和一个整数,判断每组整数中是否含有该整数。思路:...

2023-11-01 16:18:36 694 1

原创 Mybatis模糊查询的问题

Mybatis模糊查询错误

2023-08-21 17:47:53 138 1

原创 git命令大全

git命令命令功能提交git add file git commit -m “msg”查看工作区状态git status查看修改内容git diff版本切换git reset --hard commit_id查看提交历史git log查看命令历史git reflog丢弃工作区修改git checkout – file删除文件git rm file关联远程库git remote add origin git@ser

2020-08-04 16:07:40 209

原创 在utils类中获取配置文件application.properties中的属性

1.在util中需要使用application.properties中的属性例如:需要获取httpClient的属性httpClient.url=http://localhost我试过使用@Value结果发现取值为null,因为这个工具类没有交给spring boot来管理,所以取出来是null的。解决方法,使用ResoutceBundle加载配置文件public clas...

2019-12-19 19:26:14 2424

原创 使用jdom获取xml中多个相同标签的值

1.导入的maven包 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency...

2019-12-19 15:06:47 2367

原创 排序算法之归并排序(六)

归并排序:建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。例:2,5,7,3,4,9,6,8,1,101.先将数组中的元素分组,{2,5,7,3,4},{9,6,8,1,10},2.继续分...

2019-08-19 16:29:55 266

原创 排序算法之快速排序(五)

快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行。例如:4,3,1,2,6,5,1.刚开始定义两个变量i和j指向数组的首尾,首先将i号下标元素值拿出来当作标记位。从j开始由后向前找到第一个比标记位4小的值放到i好下标位置即图2,然后i向后移动找到第一个比标记位4...

2019-08-06 09:29:50 277

原创 排序算法之希尔排序(四)

希尔排序:希尔排序是插入排序的优化算法,算法思想:通过将全部元素分为几个区域来提升插入排序的性能。先将步长设为数组的一半,将分好的区域进行插入排序,之后步长gap每次等于他的一半,即gap /= 2。当步长为1时,就是普通的插入排序,但是到了这步,需排序的数据几乎是已排好的了,插入速度快。例如:数组 2,5,7,3,4,9,6,8,1,10第一次gap=5 此时的分组如下,进行插入排序...

2019-08-05 23:15:56 122

原创 排序算法之插入排序(三)

插入排序:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。例如;给定一个数组 3,1,4,2,5第一趟 3,1,4,2,5第二趟 1,3,4,2,5...

2019-08-05 11:30:02 127

原创 排序算法之选择排序(二)

选择排序:将数组分为两个区域,排好序的和未排序的区域,每一趟下来在未排序的区域中找到最小的放在最前面(也可以将最大的放在最后面),持续进行n趟之后,数组有序。例如:原数组 3,1,4,2,5第一趟 1,3,4,2,5第二趟 1,2,4,3,5第三趟 1,2,3,4,5此时排序就已经完成了。代码实现使用双重for循坏即可时间复杂度 O(n^...

2019-08-04 11:52:12 121

原创 排序算法之冒泡排序(一)

冒泡排序是最常使用的一种排序算法,算法思想是从头到尾遍历数组,将相邻的两个值进行比较,小的放在前面,大的放在后面。这样第一趟排序之后,最后一个位置所放的元素就是最大的值,第二趟排序之后,倒数第二个元素也排好了。经过n次排序之后,所有的值就排序完成了。比如无序数组 3,1,4,2,5第一躺 1,3,2,4,5第二趟 ...

2019-08-04 11:13:24 125

原创 leetCode442数组中重复的数据

题目:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?思路:先给数组元素排序,然后相等的挨在一起,判断相邻的两个位置是否相等就好代码如下:class Solution { public List<Integer&...

2019-07-10 13:04:27 134

原创 HashTable和HashMap对比

HashTable和HashMap区别:遍历方式比HashMap多一种HashTable父类 Dictionary HashMap 父类 abstractMap和Maphashtable初始化大小是11,而hashmap初始化大小是16,数组的初始化时机不同,hashtable是构造函数,hashmap是第一个元素放入。hashtable没有进行扰动处理扩容的方式 hashtable...

2019-07-09 18:05:24 214

原创 HashMap源码分析

HashMap实现原理HashMap的底层数据结构是数组+链表的形式。数组是HashMap的主体,链表则主要是为了解决哈希冲突而存在的,如果定位到数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,一步到位时间复杂度O(1)。如果有链表的话,对于添加,时间复杂度仍然为O(1)。但是查找操作,就需要遍历链表,然后通过key对象的equals 一一对比。哈希...

2019-07-09 18:02:28 98

原创 LinkedList和ArrayList比较

LinkedList和ArrayList区别底层数据结构不同,ArrayList底层数据结构是数组,LinkedList底层数据结构是双向链表(1.7之后是双向链表,1.7之前是双向循环链表)ArrayList实现了RandomAccess接口,可以实现随机访问,而LinkedList不行LinkedList底层是双向链表,所以不需要扩容,而ArrayList底层是数组,刚开始是空数组,第...

2019-07-09 13:58:11 350

原创 LinkedList源码分析(jdk1.7)

LinkedListLinkedList是双向链表实现的线性表。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable首先,它继承了Abs...

2019-07-09 13:45:58 160

原创 ArrayList源码分析(jdk1.7)

ArrayListArrayList是数组实现的线性表,容量不够时会进行扩容。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable首先 它继承了AbstractL...

2019-07-09 10:38:49 355

原创 KMP算法

KMP算法:D.E.Knuth、J.H.Morris和V.R.Pratt三位前辈发表的一个模式匹配算法,可以避免重复遍历的情况普通的字符串匹配算法:串S叫做主串,T是要匹配的串叫做模式串,每次从头开始一位位比较,一旦发现不同,将T串向右移动一位,继续从头开始比较。第一次匹配0,1之后发现2号地址不同,然后开始新一轮的比较,将模式串右移一位,继续从头开始比较第二次匹配发现1号位置元素...

2019-05-22 00:53:41 131

原创 队列的链式存储

队列也是一种特殊的线性表,他的链式存储和单链表基本相同,只是增加和删除是固定了位置而已。队列的链式存储叫做链队列。一般将队头指针指向队头,而将队尾指针指向队尾。链队列的简单实现结点代码如下public class Node<T>{ T date; Node<T> next; public Node(){ this(null)...

2019-05-21 23:24:18 280

原创 循环队列

循环队列队列:只允许在一端进行插入,另一端进行删除的线性表循环队列:队列首尾相接的顺序存储结构称作循环队列。队列顺序存储的不足:顺序存储我们一般使用数组,那么假设一个队列有n个元素,首先需要建立一个大于n的数组,把所有元素存入数组的前n个地址,每次删除完之后前面也就是队头所在的位置会空出来,无法继续利用,就需要所有元素向前移动,但这样时间复杂度为O(n).除此之外,如果数组长度为n,队头...

2019-05-21 21:45:13 292

原创 不带头结点的双向循环链表

基本概念循环链表:将单链表中最后一个结点的next指向头结点或者空指针,就使得整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表。双向链表:是在单链表的每个结点中,再设置一个指向其前驱结点的指针域prior,在双向链表的结点中有两个指针域,一个next指向直接后继,一个prior指向直接前驱。双向循环链表:将二者结合起来,结点有两个指针域,且最后一个结点的next指向...

2019-05-21 18:46:36 4880

原创 栈的链式存储结构

栈的链式存储结构我们知道栈是特殊的线性表,那么栈的链式存储和单链表很相似,就是简化版的单链表,top是头指针,插入完成之后要将头指针指向栈顶元素。链栈的代码实现结点结构public class Node<T> { T data; Node<T> next; public Node(T value){ data = value...

2019-05-17 13:24:43 352

原创 栈的顺序存储结构

栈的定义(后进先出LIFO)栈(stack)是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端叫做栈顶,另一端叫做栈底。不含元素的栈叫做空栈。元素插入叫入栈,删除叫出栈。...

2019-05-17 13:00:43 222

原创 单链表与顺序表的优缺点

简单的对单链表和顺序表做个对比:1.存储分配方式顺序表用连续的内存依次存储线性表的数据元素单链表用一组任意的存储单元存放线性表的元素2. 时间性能顺序表单链表查找O(1)O(n)插入O(n)O(1)删除O(n)O(1)3. 空间性能顺序表需要预先分配内存大小,分大了浪费,小了不够,元素个数受限制。单链表不需要预先分配,用的时候...

2019-05-16 21:00:52 1815

原创 线性表的链式存储---单链表

单链表单链表:n个结点链接成一个链表,就是线性表的链式存储,因为此链表的每个结点只包含一个指针域,所以叫做单链表。结点由存储数据元素的数据域和存储指针的指针域组成我们把单链表的第一个结点叫做头指针,之后的每一个结点就是上一个结点的后继结点指向的位置。为了方便表示,一般在第一个结点之前设置一个结点,称为头结点,头结点的数据域可以不存储任何信息,也可以存储线性表的长度等附加信息,指针域指向第...

2019-05-16 20:50:13 222

原创 线性表的顺序存储

线性表的顺序存储线性表的顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素。线性表的元素类型相同,用一段连续的地址存储,可以使用数组来存储实现线性表的顺序存储。线性表的存储结构代码如下。class MyArrayList{ private final static int MAXSIZE = 2; //线性表数组的初始长度,这里设置2是为了测试 int[] data...

2019-05-03 23:46:34 2048

原创 数据结构与算法概念和术语

程序设计 = 数据结构 + 算法数据结构数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。基本的概念和术语:数据:描述客观事物的符号,是计算机可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合。数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。...

2019-05-03 21:58:42 200

原创 java抽象类和接口

抽象类和抽象方法在java中,对象是由类进行描绘的,但是并不是所有的类都可以new对象,如果一个类不能实例化对象,我们把这种类称为抽象类。抽象方法是抽象类中的一个特别的成员方法,抽象方法特点是没有方法体;抽象类和抽象方法都要用abstract修饰abstract class Animal{ //抽象类 public abstract void run(); / /抽象方法没有方法体...

2019-05-03 21:13:01 96

原创 java类的加载机制

类的加载机制java虚拟机一般使用java类的流程:首先将开发者编写的java源代码编译成字节码文件,然后类加载器会读取字节码文件,并转换成java.lang.Class对象,java虚拟机利用反射方式创建真正的对象。类加载器多继承于ClassLoaderlei类。类加载器BootstarpClassLoader启动类加载器, 加载JAVA_HOME/jre/lib的jar包EXTens...

2019-05-03 20:44:32 104

原创 Java异常

Java异常概念异常就是在程序的运行过程中所发生的意外,他中断指令的正常运行。java中,通过五个关键字try,catch,finally,throw和throws进行异常管理Java异常处理机制java.langObjectThrowableErrorExceptionError: 错误 Error 类指的是系统错误或运行环境出现的错误,这些错误一般是很严重的错误,即使捕捉到也...

2019-05-03 20:38:26 63

原创 java面向对象三大特性

java面向对象三大特性封装将类的一些属性和方法隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。访问修饰符访问修饰符本类同包子类其他private√默认√√protected√√√public√√√√this关键字class Dog(){ int age; pu...

2019-05-03 20:29:40 67

原创 java类和对象(三)

类的初始化方式class People{ String name; public People(){ //默认构造方法 name = null; } }构造方法普通方法静态块实例块通过引用变量

2019-04-28 18:33:17 96

原创 Java类和对象(二)

类和对象类是一种实体类型的抽象,它是一个新的数据类型。对象是类的具体实体,也就是类的实例。创建一个对象也叫做类的实例化。类和对象的创建创建类需要用到关键字 classclass A{ int i; //属性或者叫字段 public void run(){ //方法或者叫行为 }}对象创建需要用到关键字 newA a = new A();n...

2019-04-28 11:46:23 179

原创 java类和对象(一)

面向对象和面向过程的区别面向过程是在解决问题时,将事务拆分成一个个的方法,然后按照一定的顺序去执行这些方法来解决这个问题。面向对象就是在解决问题时,将事务抽象成对象的概念,然后给对象生成一些属性和方法,以此来解决这个问题。举个例子,比如你要吃饭,首先得做饭。按照面向过程的思想,首先你得买菜,洗菜,切菜,做饭,之后才可以吃饭 。但是按照面向对象的思想,你只需要new一个对象,让对象去做...

2019-04-28 09:08:48 70

原创 leetcode-26 删除排序数组中的重复项 java实现

题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。思路:因为不要使用额外的数组空间,你必须在原地修改输入数组,所以将不重复的值放入原来的数组,首先0号元素先放入,然后循环只要相邻的两个不相等,将后者放入数组。这里参数是引用,所以修改之后数组...

2019-04-23 21:00:29 82

原创 leetcode-11 盛最多水的容器 java实现

题目:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器...

2019-04-23 20:12:51 451

原创 leetcode-8 字符串转换整数 (atoi)

题目:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,...

2019-04-23 19:25:33 83

原创 leetcode-7 整数反转 java实现

题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路:将该数转换为char数组,判断该整数是否是负数,如果是那么需要反转的就是1~length-1,不是负数就需要反转0~length-1;,每次进行...

2019-04-23 19:12:21 219

原创 leetcode-9 回文数 java实现

题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数示例:输入 121输出 true输入-121输出false;解法一:将x转为String类型,然后用char[] 来实现代码如下class Solution { public boolean isPalindrome(int x) { String s...

2019-04-23 10:42:30 301

原创 java用栈实现Puzzle

题目:初始正方形中的带圆圈的数字是可以移动到沿着行的其他正方形的标记。在拼图的每个步骤,可以移动标记的正方形中由当前占据的整数指示的方格数。标记可以沿着该行向左或向右移动,但可以不移动经过任一端。例如,唯一合法的第一步是将标记向右移动三个方格,因为没有空间向左移动三个空格。拼图的目标是将标记移动到行的远端的0。要求如果圆圈能够移动到最后0的位置,返回true,否则返回false。...

2019-04-20 20:22:54 335

cherryStudy.rar

使用当当网开源的shariding-jdbc进行分库分表,实现了数据库水平分库,数据存入分为十个库,每次插入按照分片id进行取模运算,之后数据会插入到对应的数据库中

2019-12-26

空空如也

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

TA关注的人

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