自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring面试之AOP(JDK动态代理实现)

Spring面试之AOP什么是AOP在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。对以上描述总结一下,在Spring中主要体现为以下几点:Asp

2020-07-16 10:44:26 841 1

原创 Spring面试之-----Bean的生命周期以及方法的增强

Bean的生命周期以及方法的增强首先,说一下为什么使用Spring,也就是Spring的优点。优点降低了组件之间的耦合性,实现了软件各层之间的解耦(IoC)以使用容易提供的众多服务,如事务管理,消息服务,日志记录(AOP)容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能对于AOP,在普通的Bean创建中是如何体现的呢?接下来下分析一下他的生命周期吧。bean的生命周期实例化Spring对bean进行实例化。填充属性Spring将值和bean的引用注入到b

2020-07-15 22:07:46 521

原创 面试必问之——HashMap底层

HashMap、HashTabe、CurrentHashMap线程安全HashMap线程不安全HashTabe线程安全通过方法加锁来实现CurrentHashMap线程安全,使用了分段锁来实现值HashTable不允许为null,key和value都不可以,HashTable直接使用对象的hashCode,hash数组默认大小为11,扩容方式为old * 2 + 1HashMap允许null,key和value都可以,HashMap重新计算hash值,并且用于代替求模。hash数组默认大小为1

2020-07-14 17:05:32 1056 1

原创 155. 最小栈(栈、链表)

155. 最小栈题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null

2020-07-03 17:55:42 807

原创 234. 回文链表(图解)

234. 回文链表题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路一、通过快慢指

2020-07-03 11:11:15 1106

原创 160. 相交链表(图解)

160. 相交链表(图解)题目写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,

2020-07-02 20:40:30 951

原创 2. 两数相加

2. 两数相加(详细)题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:

2020-07-02 18:17:03 668

原创 面试题 16.16. 部分排序

面试题 16.16. 部分排序题目给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例:输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]输出: [3,9]提示:0 <= len(array) <= 1000000来源:力扣(LeetCode)链接

2020-07-01 22:34:35 776

原创 75. 颜色分类(图解)

75. 颜色分类(图解)题目给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。你能

2020-07-01 17:06:52 2505

原创 88. 合并两个有序数组

88. 合并两个有序数组题目给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]

2020-07-01 07:57:32 739

原创 深入理解Java虚拟机

文章目录理解Java虚拟机JVM整体结构JVM架构模型(栈的指令集架构、寄存器的指令集架构)JVM的生命周期SUN Classic VMExact VMHotSpot VMJRockit VM类加载器子系统类的加载过程类加载器的分类双亲委派机制沙箱安全机制对类加载器的引用线程PC寄存器(Programer Counter Register)虚拟机栈虚拟机栈概述概念作用生命周期栈的存储单位栈运行原理栈帧的内部结构局部变量表Slot静态变量和局部变量的对比变量的分类优化操作数栈(Operate Stack)栈顶

2020-06-30 19:34:12 1156

原创 Linux防火墙(centos7新特性)

Linux防火墙Liunx的防火墙引入一、机制二、数据过滤三、iptables的终端命令查看防火墙状态安装iptables停止防火墙启动防火墙重启防火墙永久关闭防火墙永久关闭后重启开启80端口四、firewalld的终端命令查看firewall服务状态查看firewall的状态开启firewalld.service服务重启firewalld.service服务关闭firewalld.service...

2020-03-23 15:27:30 756

原创 Nginx服务器

文章目录Nginx服务器Nginx是什么Nginx能干什么Nginx特点Nginx安装安装gcc安装pcre安装zlib安装openssl综合以上安装下载Nginx源码Nginx常用命令测试配置文件启动命令停止命令重启命令查看进程命令平滑重启Nginx 配置防火墙权限域名配置注意事项Nginx服务器Nginx是什么Nginx是一款轻量级Web服务器,也是一款反向代理(域名转发)服务器。Ng...

2020-02-27 11:34:52 910

原创 ParallelWebappClassLoadercontext: ROOTdelegate: false jar包缺少

错误07-Jan-2020 20:27:18.299 WARNING [http-nio-8080-exec-6] org.springframework.context.support.AbstractApplicationContext.refresh Exception encountered during context initialization - cancelling refre...

2020-01-07 20:31:48 3769 2

原创 SpringMVC学习笔记(三)

SpringMVC RESTful风格RESTful风格简述RESTful的核心内容RESTful架构特点SpringMVC下使用RESTful风格进行开发处理PUT和DELETE请求RESTful风格简述REST:Representational State Transfer(表述性状态转移),他不是一种创新技术,他指的是一组架构约束条件和原则,若一个架构符合REST的约束条件和原则架构,那...

2020-01-07 20:22:25 710

原创 SpringMVC学习笔记(二)

SpringMVC---数据绑定SpringMVC数据绑定原理什么是数据绑定常用的数据绑定类型SpringMVC数据绑定的使用SpringMVC数据绑定原理什么是数据绑定将HTTP请求中的参数绑定到Handler业务方法的形参,Web项目对应的就是客户端和服务器之间的交互,客户端发送请求,服务器给予响应的过程,客户端发送的请求带有参数,假如查询课程的详细信息,前端就会将课程ID传递给后台,后...

2020-01-06 20:17:20 715

原创 中文乱码问题(二)

Json中文乱码问题在jsp页面中添加contentType:"application/json;charse=UTF-8", $(function(){ var course = { "id":"8", "name":"SSM框架整合", "price":"200" }; ...

2020-01-06 12:15:41 865

原创 SpringMVC学习笔记(一)

SpringMVCSpringMVC是什么MVC设计模式SpringMVC设计模式SpringMVC的核心组件组件之间如何进行交互DemoSpringMVC是什么MVC设计模式在了解SpringMVC之前,我们需要了解MVC设计模式,MVC模式指的是可以将一个Web Application分为一下三层:Controller(控制层):负责接收并处理请求,响应客户端。Model(模型层)...

2020-01-05 17:53:27 770 1

原创 处理静态资源无法被访问

处理静态资源无法被访问静态资源处理方法静态资源静态资源指的是js、css、图片,这些统称为静态资源处理方法在web.xml文件中配置<!-- 设置访问静态资源--><!-- 这样配置的话,所有以.css结尾的文件都会被default拦截,这样的话就可以正常加载--> <servlet-mapping> <servlet-name...

2020-01-05 11:03:19 1225

原创 处理中文乱码问题(一)

处理中文乱码问题(一)中文乱码的产生处理中文乱码结果中文乱码的产生当我们在jsp页面进行输入信息的时候,将输入的信息展示在Java控制台上时,产生了中文乱码。处理中文乱码在WEB-INF目录下的web.xml文件中进行配置,添加过滤器,调用spring框架中org.springframework.web.filter.CharacterEncodingFilter,并且指定编码集encod...

2020-01-05 10:54:14 5166

原创 哈希表

哈希表引入含义设计大整数:浮点型字符串复合类型Java中的hashCode引入字符串中的第一个唯一字符,这一道题是leetcode上的一道题,要想知道字符串中的第一个唯一字符,就得知道字符串中所有字符出现的次数,这时,我们就想到将字符串的每一个第一次字符存放到数组中,如果第二次出现这个字符,那么让freq[s.charAt(i) - 'a'] ++,第二次for循环,判断第一个字符出现1,如果...

2019-12-06 21:15:18 741

原创 数据结构——二分搜索树

二分搜索树二分搜索树的本质是树,对于树的基本知识,我在我的一片关于堆的博文的开头做了讲述,大家可以参考。这里将重点讲述树的递归结构。定义二分搜索树是一颗二叉树, 二分搜索树每个节点的左子树的值都小于该节点的值,每个节点右子树的值都大于该节点的值,其任意一个节点的每棵子树都满足二分搜索树的定义。NULL节点和只有一个节点的树也是二叉树。理解通过上面对二叉树的定义,我们知道了向树中存储的元素...

2019-11-15 20:47:36 747

原创 数据结构——堆(C++)

数据结构——堆文章目录数据结构——堆堆与堆排序二叉树满二叉树完全二叉树二叉堆堆的存储堆的插入删除具体的实现堆排序堆与堆排序堆(heap)分为二叉堆、二项式堆、斐波那契堆,堆是非线性数据结构,相当于一维数组,有两个直接后继。堆又被称为优先队列,尽管名为优先队列,但堆并不是队列。因为队列遵循First in, First out,但是堆是按照元素的优先级取出元素。所以“堆”是实现调度器的理想数据...

2019-11-13 17:44:21 8042 2

原创 WEB应用的路径(相对路径)

文章目录访问路径的组成绝对路径相对路径斜杠开头的相对路径前台路径后台路径以路径名称开头的相对路径总结访问路径的组成URL(Uniform Resource Locator,统一资源定位符),其由两部分组成:资源路径+资源名称。资源名称指的是要访问资源的直接名称,如(index.html、index.jsp、102915653等),那么资源路径很简单就是除资源名称以外的其他部分了。URL是URI...

2019-11-08 22:17:11 1268

原创 数据结构——链表(图文)

链表文章目录链表数据结构插入元素为链表设立虚拟的头节点链表的查找链表的修改遍历输出删除操作测试结果源码之前我们学习了基于数组实现的三种数据结构:动态数组、栈、队列。他们底层依赖于静态数组,通过resize方法使其变成动态的。但是我们所谓的动态时是从用户的出发角度来看的。接下来我们学习链表。他是真正的动态数据结构,也是最简单的动态数据结构(因为还有二分搜索树、Trie等相对复杂的)。学习链表,...

2019-11-06 13:02:42 3198

原创 数据结构——循环队列(图文)

文章目录循环队列引入逻辑代码源码循环队列引入为什么要使用循环队列?因为普通队列的底层是数组,对于队列的先进先出,每当我们要删除队列首一个元素的时候,之后的元素都要向前推移,然后size--,这样的话就增加算法的时间复杂度(变成了O(n))。这时我们就想到,队首元素弹出去了,即使不移动后续元素,他仍会保持队列的样子,我们只需要用一个变量来存储队首索引front,再用一个变量来存储队尾的后一个索...

2019-11-05 14:54:40 8100 3

原创 数据结构——动态数组

数据结构——动态数组文章目录动态数组Code(扩容)测试Code(缩容)测试在上一节我们讲述了静态数组的实现过程,下面我们来学习一下动态数组。动态数组动态数组,顾名思义使得数组的容量是可伸缩的,大致思路如下,我们就需要创建一个新的数组newData[]来保存原来data[size]数组中的值,但是capacity将变大,size不变,赋值过程采用循环来赋值,完成后,将data[]指向new...

2019-11-04 11:34:49 849

原创 数据结构——数组

文章目录数据结构——数组制作属于我们的数组类插入指定位置插入元素验证判断查找修改搜索删除总结数据结构——数组数组的命名,就是给数组起一个名字,数组的索引:索引可以有语意,也可以没有语意。数组是承载元素的工具,与“索引——语意”之间的关系并不大。但是在生活中,大部分来处理“索引没有语意”的情况的数组使用。比如,在一个数组长度为8的数组中,int[] score = new int[10];在...

2019-11-04 08:59:14 815

原创 Dream

Dream这是一篇演讲稿,送给盲目的你    I don’t know what that dream is that you have, I don’t care how disappointing it might have been as you’ve been working toward that dream, but that dream ...

2019-10-29 16:50:53 927

原创 单例设计模式

单例设计模式单例设计模式单例设计模式作用:在应用程序中有保证最多只能有一个实例好处:提升运行效率实现数据共享比如:application对象,其在四大作用域共享懒汉式单例设计模式:第一步:构造方法私有化,那么其他类就不可以实例化这个对象饿汗式...

2019-10-12 21:45:00 640

原创 Java设计模式

Java 设计模式Java反射技术通过反射构建对象反射方法动态代理模式和责任链模式JDK动态代理CGLIB动态代理拦截器责任链模式观察者(Observe)模式概述工厂模式和抽象工厂模式普通工厂(Simple Factory)模式抽象工厂(Abstract Factory)模式建造者(Builder)模式概述Java反射技术Java反射技术应用广泛,它能够配置:类的全限定名、方法和参数,完成对象...

2019-09-18 15:40:12 675

原创 SSH无法连接到服务器

SSH无法连接到服务器错误代码错误原因解决方法错误代码@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

2019-08-26 18:28:56 8238 1

原创 面向对象的“六原则、一法则”

面向对象的“六原则、一法则”六原则单一职责原则开闭原则依赖倒转原则里氏替换原则接口隔离原则合成、聚合复用原则一法则迪米特法则六原则单一职责原则一个类只做它该做的事情。单一职责原则想表达的就是"高内聚",写代码最终极的原则只有六个字高内聚、低耦合。所谓的高内聚就是一个代码模块只完成一项功能,在面向对象中,如果只让一个类完成它该做的事,而不涉及与它无关的领域就是践行了高内聚的原则,这个类就只有单...

2019-07-22 14:59:27 819

原创 Session机制分析

文章目录Session工作原理写入Session列表服务器生成并发送Cookie客户端接收并发送Cookie从Session列表中查找Session的失效Session与Cookies的关系解决Cookies失效解决客户端Session被禁用修改地址栏对URL重写重定向Session跟踪非重定向Session跟踪Session工作原理创建Session一个常见的误解是以为session在有客户...

2019-06-02 20:27:39 884

原创 管理员踢除用户

管理员踢除用户分析需求管理员要想踢出用户:首先,得获取到用户名,一个用户对应一个Session,所以这里用到了HttpSessionBindingListener接口。其次,对于用户名和Session的对应应该以Map的形式存放,所以要使用Map,但是,此map应该何时产生呢?答案应该是在应用一产生就会创建,所以放在ServletContext域中,使用ServletContext监听器...

2019-06-01 18:24:47 890

原创 统计用户在线人数

统计用户在线人数统计用户在线人数错误的统计办法监听Request域监听Session域正确的统计方法统计用户在线人数在统计用户在人数的时候,我们用到了监听器,监听器大致分为以下三种:ServletRequestListener用于监听请求的监听接口HttpSessionListener用于监听会话的监听接口ServletContextListener用于监听应用的回...

2019-05-30 22:31:19 14622 12

原创 监听器设计模式

监听器设计模式设计模式创建型结构型行为型观察者设计模式观察者接口(IObserve)观察者实现类(FirstObserve、SecondObserve)被观察者接口(IObservable)被观察者实现类测试类监听器设计模式事件接口(ICurdEvent)事件实现类监听器接口(IListener)监听器实现类事件源接口(IListenerable)事件源实现类测试类设计模式设计模式(Desig...

2019-05-27 13:01:32 6739 2

原创 遍历for循环

遍历for循环

2019-04-12 13:38:04 1421

空空如也

空空如也

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

TA关注的人

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