07 2018 档案

摘要:SpringMVC中的参数绑定 参数绑定的定义 所谓参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller。从客户端请求key/value数据(比如get请求中包含的数据),经过参数绑定,将key/value数据绑定到controller方法的形参上。 阅读全文
posted @ 2018-07-31 15:43 Demrystv 阅读(301) 评论(0) 推荐(0)
摘要:Mybatis常见面试题汇总 最近在复习整理Mybatis的相关知识,针对面试中的典型问题,结合相关书籍和网上相关帖子,做如下整理。 1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静 阅读全文
posted @ 2018-07-30 15:08 Demrystv 阅读(266) 评论(0) 推荐(0)
摘要:为什么索引可以提高效率? 对于索引的应用比较常见,索引的底层数据结构也有一定的了解,但是一直在思考为什么索引会提高效率,后来,参考网上的文章,终于得到解释。 本文只针对mysql进行相关方面的说明。 首先我要问,“数据索引是有序无序的?”。答:“当然是有序的了。” 再问,一个SQL语句可以有几个索引 阅读全文
posted @ 2018-07-27 13:52 Demrystv 阅读(2908) 评论(0) 推荐(1)
摘要:Java内存模型 首先,借用网上的一张图,该图对于Java内存模型进行了详细的划分,后面主要是自己在学习过程中的一些总结归纳与理解。 首先,应该认识到Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:年轻代 ( Youn 阅读全文
posted @ 2018-07-25 23:26 Demrystv 阅读(191) 评论(0) 推荐(0)
摘要:向有序的环形单链表中插入新节点 一个环形链表从头节点开始不会降序,同时最后的节点指向头节点。给定一个环形单链表的头节点head和一个整数num,生成新节点并将其插入到环形链表中,保证插入后的链表仍然有序。 阅读全文
posted @ 2018-07-25 10:33 Demrystv 阅读(407) 评论(0) 推荐(0)
摘要:单链表的选择排序 给定一个无序单链表的头节点 head,实现单链表的选择排序,要求额外空间复杂度是 O(1) 【解析】 要求额外空间复杂度是 O(1),所以不能使用数组等容器进行排序,直接使用几个变量 选择排序是在从未排序部分选择最小值,然后放在排序部分的尾部,逐渐将未排序部分缩小,最后变成排好序的 阅读全文
posted @ 2018-07-25 09:39 Demrystv 阅读(208) 评论(0) 推荐(0)
摘要:将搜索二叉树转换成双向链表 对于BST 来说,有本身的值域,有指向左孩子和右孩子的两个指针;对于双向链表来说,有本身的值域,有指向上一个节点和下一个节点的指针。将这个BST转换成双向链表,对于每一个节点来说,原来的right指针等价于转换后的next指针,原来的left指针等价于转换后的left指针 阅读全文
posted @ 2018-07-23 09:09 Demrystv 阅读(532) 评论(0) 推荐(0)
摘要:在单链表中删除指定值的节点 给定一个链表的头节点head和一个整数num,实现一个函数删除链表中值为num的所有节点。例如,链表为 1->2->3->4->null ,num 为3,删除后,链表变为 1->2->4->null。 【解析】 方法一:使用栈或者其他容器收集节点的方法,其时间复杂度是 O 阅读全文
posted @ 2018-07-23 08:58 Demrystv 阅读(1256) 评论(0) 推荐(0)
摘要:深入理解Java内存模型中的虚拟机栈 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都会有各自的用途,以及创建和销毁的时间,有的区域会随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个 阅读全文
posted @ 2018-07-22 23:32 Demrystv 阅读(226) 评论(0) 推荐(0)
摘要:删除无序单链表中值重复出现的节点 给定一个无序单链表的头节点head,删除其中值重复的节点 例如: 1->2->3->3->4->4->2->1->1->null 删除之后变为 1->2->3->4->null 方法1:如果链表长度为N,时间复杂度达到O(N) 方法2:如果要求空间复杂度为O(1), 阅读全文
posted @ 2018-07-19 23:25 Demrystv 阅读(667) 评论(0) 推荐(0)
摘要:将单链表的每K个节点之间逆序 给定一个单链表的头节点head,实现一个调整链表的函数,使得每K 个节点之间逆序,如果最后剩下不够K 个节点,则不调整最后几个。 例如: 链表:1—>2—>3—>4—>5—>6—>7—>8—>null,k=3。 调整好后:3—>2—>1—>6—>5—>4—>7—>8—> 阅读全文
posted @ 2018-07-19 23:11 Demrystv 阅读(490) 评论(0) 推荐(0)
摘要:IP地址分类及其相关计算问题 公网IP和子网IP 公网IP: • A类:1.0.0.0 到 127.255.255.255 主要分配 给大量主机而局域网网络数量较少的大型网络 • B类:128.0.0.0 到191.255.255.255 一般用于国际性大公司和政府机构 • C类:192.0.0.0 阅读全文
posted @ 2018-07-18 23:01 Demrystv 阅读(781) 评论(0) 推荐(0)
摘要:将单向链表按某值划分成左边小、中间相等、右边大的形式 给定一个单向链表的头节点head,节点的值类型是整数,再给定一个整数 pivot,实现一个调整链表的函数,使得左半部分的值都是小于pivot的节点,中间部分都是等于pivot的节点,右边部分都是大于pivot的节点,对于左半部分、中间、右半部分内 阅读全文
posted @ 2018-07-16 23:18 Demrystv 阅读(665) 评论(0) 推荐(0)
摘要:反转部分单向链表 给定一个单向链表的头节点head,以及反转的起始点from和终止点to ,将起始点和终止点中间的部分进行反转 例如 1->2->3->4->5->6, from为2, to为4,反转后的结果为 1->4->3->2->5->6。如果不满足 1 <= from <= to <= N, 阅读全文
posted @ 2018-07-16 22:52 Demrystv 阅读(193) 评论(0) 推荐(0)
摘要:HTTP请求详解 HTTP的请求响应模型 HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S)。 HTTP协议永远都是客户端发起请求,服务器回送响应。见下图: HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出 阅读全文
posted @ 2018-07-15 23:06 Demrystv 阅读(202) 评论(0) 推荐(0)
摘要:删除链表的中间节点和a/b处的节点 对于给定一个链表的头节点head,实现删除链表的中间节点的函数。 例如 不删除任何节点; 1->2,删除节点1 1->2->3,删除节点2 1->2->3->4,删除节点2 1->2->3->4->5,删除节点3 如果将本问题复杂一下,给定链表的头节点head、整 阅读全文
posted @ 2018-07-14 23:28 Demrystv 阅读(303) 评论(0) 推荐(0)
摘要:在单链表和双链表中删除倒数第K个节点 分别实现两个函数,一个可以删除单链表中的倒数第K个节点,一个可以删除双链表中的倒数第k 个节点,要求时间复杂度是 O(N),空间复杂度是 O(1)。 【解析】 基本思路: 让链表从头开始走到尾,每移动一步,就让k值减一,当k 值走到结尾时, 如果k 值大于0,说 阅读全文
posted @ 2018-07-14 23:15 Demrystv 阅读(1336) 评论(0) 推荐(0)
摘要:Determined Energetic Motivated Reliable Yes Stick To Victory 阅读全文
posted @ 2018-07-13 17:02 Demrystv 阅读(180) 评论(0) 推荐(0)
摘要:最大值减去最小值小于等于num的子数组的数量 给定数组arr和整数 num,共返回有多少个数组满足下列情况: max(arr[i..j])-min(arr[i..j])<=num。其中max(arr[i..j]) 表示子数组arr[i..j] 中的最大值,min(arr[i..j]) 表示子数组ar 阅读全文
posted @ 2018-07-12 23:02 Demrystv 阅读(828) 评论(1) 推荐(0)
摘要:求最大子矩阵的大小 给定一个整型矩阵map,其中的值只有0,1两种,求全是1 的所有矩阵区域中,最大的矩形区域为1的数量。 例如: 1 1 1 0,其中最大的矩形区域有3个1,所以返回3 例如: 1 0 1 1 1 1 1 1 1 1 1 0 其中,最大的矩形区域有6个1,所以返回6 【解析】 首先 阅读全文
posted @ 2018-07-12 22:53 Demrystv 阅读(311) 评论(0) 推荐(0)
摘要:TCP/IP、Http、Socket的区别 1. 网络由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用( 阅读全文
posted @ 2018-07-12 09:17 Demrystv 阅读(170) 评论(0) 推荐(0)
摘要:生成窗口的最大值数组 给定一个n个元素的整型数组arr,和一个大小为w的窗口,从数组的最左边移动到最右边,每次移动一个单位,一共产生n-w+1个窗口的最大值数组。 例如数组为[4,3,5,4,3,3,6,7],窗口大小为3时, [4 3 5] 4 3 3 6 7 窗口中最大值为5 4 [3 5 4] 阅读全文
posted @ 2018-07-11 09:28 Demrystv 阅读(348) 评论(0) 推荐(0)
摘要:用栈求解汉诺塔问题 汉诺塔问题比较经典,现在修改一下汉诺塔游戏的规则:规定不能直接从左移动到右,也不能直接从右移动到左,必须经过中柱,求解当塔有N层的时候,打印最优移动过程和最优移动总步数。 可以采用两个方法解决。方法一采用递归的方法;方法二采用非递归的方法,用栈来模拟汉诺塔的三个塔。 阅读全文
posted @ 2018-07-11 09:20 Demrystv 阅读(484) 评论(0) 推荐(0)
摘要:用一个栈实现另一个栈的排序 一个栈中元素的类型为整型,现在想将该栈从顶到底按照从大到小的顺序排序,只允许申请一个栈,除此之外,可以申请新的变量,但是不能申请额外的数据结构,如何完成排序? 阅读全文
posted @ 2018-07-09 22:45 Demrystv 阅读(301) 评论(0) 推荐(0)
摘要:用递归函数和栈的操作实现逆序一个栈 一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1,将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能使用递归函数来实现,不能实现其他数据结构。 阅读全文
posted @ 2018-07-09 22:35 Demrystv 阅读(407) 评论(0) 推荐(0)
摘要:OSI七层模型与TCP/IP四层模型 一. OSI七层模型 OSI(开放系统互联(Open System Interconnection))该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表 阅读全文
posted @ 2018-07-08 22:46 Demrystv 阅读(358) 评论(0) 推荐(0)
摘要:由两个栈组成队列 由两个栈实现一个队列,支持队列的基本操作(add poll peek),需要注意的是,stackPush向stackPop中压入数据,必须一次性的把stackPush中的元素全部压入,此外,如果stackPop不为空,不能向stackPop中压入数据。 阅读全文
posted @ 2018-07-08 14:28 Demrystv 阅读(152) 评论(0) 推荐(0)
摘要:设计一个有getMin功能的栈 设计一个具有getMin功能的栈,可以返回栈中的最小的元素,可以使用现有的栈的数据结构,要求pop/push/getMin操作的时间复杂度是O(1)。 阅读全文
posted @ 2018-07-08 13:06 Demrystv 阅读(146) 评论(0) 推荐(0)
摘要:Spring AOP详解 AOP概念 AOP是面向切面(方面)编程,扩展功能不修改源代码实现,其采取横向抽取机制,取代了传统纵向继承体系重复性代码。在其底层,使用动态代理来实现,对于有接口情况,使用动态代理创建接口实现类代理对象;对于没有接口情况,使用动态代理创建类的子类代理对象。 AOP操作术语 阅读全文
posted @ 2018-07-05 23:31 Demrystv 阅读(385) 评论(0) 推荐(0)
摘要:Spring Bean的生命周期详解 Spring IoC容器的本质目的就是为了管理Bean,对于Bean而言,在容器中存在其生命周期,它的初始化和销毁也需要一个过程,下面主要对其生命周期进行一个详解的解释。生命周期主要是为了了解Spring IoC容器初始化和销毁Bean的过程,通过下图即可以掌握 阅读全文
posted @ 2018-07-02 23:10 Demrystv 阅读(614) 评论(0) 推荐(0)