自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MyBatis立即加载和延迟加载

查询订单表的时候,可以关联查出订单的详情,也可以需要订单详情的时候,再去订单详情表查询。前者对应的就是立即加载,后者对应的就是懒加载。延迟加载:在真正使用数据的时候才发起查询,不用的时候不查询关联的数据,延迟加载又叫按需查询(懒加载)立即加载:不管用不用,只要一调用方法,马上发起查询。举例前的数据准备IUserDao:/** * 用户的持久层接口 */public interfac...

2019-12-31 16:44:03 711

原创 Spring MVC 自定义拦截器

拦截器Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。预处理:在访问controller之前执行的代码后处理:在访问controller返回之后执行的代码拦截器链(Interceptor Chain):拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被...

2019-12-29 22:40:38 359

原创 Spring MVC 实现文件上传

前提要在SpringMVC中实现文件上传,需要:form表单的enctype(表单请求正文的类型,默认是application/x-www-form-urlencoded)取值必须是:multipart/form-datamethod 属性取值必须是 Post提供一个文件选择域<input type=”file” />文件上传原理当form表单的enctype取值非mu...

2019-12-29 18:27:48 170

原创 Spring MVC响应的返回值类型总结

响应的返回值类型为String控制器部分:@RequestMapping("/testString")public String testString(Model model){ User user = new User(); user.setUsername("张三"); user.setPassword("123"); user.setAge(30); ...

2019-12-29 17:56:10 354

原创 Spring MVC 绑定请求参数的注解 总结

绑定一般类型通过反射的方式,当testParam方法中有名为username和password的参数时,会将请求参数username和password分别赋值给testParam方法中的参数。ParamController.java@Controller@RequestMapping("/param")public class ParamController { @Request...

2019-12-29 11:05:13 1709

原创 跳跃表

简介如果我们要实现按照成绩对学生进行排名,可以选择数组、链表、平衡树或红黑树来实现,数组的插入和删除效率低,链表查询的效率低,平衡树或红黑树虽然效率高但是实现复杂。跳跃表(后面简称跳表)就是一种改造了链表,有点像“二分”查找的结构。下图是一个有序链表:如果将有序链表的部分节点分层,每层都是一个有序链表。查找时优先从最高层开始向后查找,当到达某节点时,如果next节点值大于要查找的值或nex...

2019-12-27 23:27:27 245

原创 散列表

散列表散列表又称为哈希表,英文“Hash Table”。散列表思想利用的是数组支持按照下标随机访问数据的特性。散列函数:通过key,计算出value,value就是表示将数据放入数组的那个位置。哈希冲突:不同的key,可能会得到相同的value,这是就产生了哈希冲突。解决哈希冲突可以使用开放寻址法(线性探测、二次探测、双散列等)或者链地址法来解决。装载因子:装载因子 = 散列表中...

2019-12-26 21:49:55 449

原创 浅拷贝 深拷贝

1.应用程序处理(1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信;(2)应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能;(3)由A用户所使用的邮件软件决定何时建立通信连接、何时发送数据的管理,这一过程相当于OSI的会话层功能;(4)现在可以发送了,就在发送的那一刻,建立连接,通过这个TCP连接发送数据。首先是将应用层数据发送给下...

2019-12-20 21:30:38 378

原创 Servlet总结

RAP地址解析协议:通过ip地址找到mac地址1.若A要知道B的mac地址,先判断自己的rap缓冲区中是否有B的ip和mac的映射,如果有,则直接得到B的mac地址,若没有,则发送rap广播请求包给该网络上的所有主机2.该网络上所有主机收到请求包后打开传给自己的上层----网络层,网络层判断是否是给自己的信息(判断数据包中的目的IP是否和自己的IP一样),若不是,则丢弃,若是(也就是B收到了)...

2019-12-19 11:11:16 1303

原创 让线程按指定顺序执行

课外之余,突然想着用一用win7的家庭组玩玩,让旁边一人访问我电脑上的某个有共享权限的文件夹,然后就开始各种百度。由于每个人的电脑多多少会有些设置的不同,比如防火墙的开关状态、HomeGroup Listener和HomeGroup Provider的启动状态等没有设置好,都会影响到Win7家庭组的建立,当你自己的电脑设置好了,那么另一台电脑也要做类似的设置才能正确访问到你电脑上的共享文件夹。倒...

2019-12-17 20:51:04 602

原创 JavaScript字符串不是对象,为什么会有属性呢?(理解JavaScript中的包装对象)

实例1:var s = "hello javascript!"; //定义一个字符串var world = s.substring(s.indexOf(" ")+1, s.length); //使用字符串的方法实例2:var s=""test"; //创建一个字符串s.len=4; //给字符串设置一个属性var t=s.len; //查询这个属性结果:在实例1中,可以正常使用...

2019-12-16 10:04:54 288

原创 MySQL之order by原理

前言表结构如下,现在从select city,name,age from t where city='西安' order by name limit 1000 ;这条语句分析下order by的原理。CREATE TABLE `t` ( `id` INT (11) NOT NULL, `city` VARCHAR (16) NOT NULL, `name` VARCHAR (16) NO...

2019-12-08 15:01:57 311

原创 为什么MySQL InnoDB引擎自增id为什么不连续

CREATE TABLE `t` ( `id` INT (11) NOT NULL AUTO_INCREMENT, `a` INT (11) DEFAULT NULL, `b` INT (11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `a` (`a`)) ENGINE = INNODB;自增值的存储存储自增值的变量名为:AUTO...

2019-12-07 20:14:16 567

原创 JavaScript数据类型及其存储方式

数据类型JavaScript是弱类型语言,定义变量的时候无需指定变量的类型,JavaScript引擎在运行代码的时候会自动判断变量的类型。JavaScript数据类型有8种:类型描述Booleantrue、falseNUllnull值Undefined未赋值的变量默认值为undefined, 变量提升时的默认值也是undefinedNumber数...

2019-12-06 19:30:11 1429

原创 JavaScript函数级作用域、块级作用域实现原理和实例

在另一篇博文《JavaScript中的执行上下文、作用域链、原型链和闭包详解》中,讲解了执行上下文的概念以及通过一个例子讲解了用全局执行上下文和函数执行上下文,下面将这个例子的调用栈图再次放到这里:var a = 10;function add(b,c){ return b+c;} function sum(b,c){ var d = 2; var result = add(b,c)...

2019-12-05 10:24:22 842 1

原创 桶排序、计数排序源码和性能分析

桶排序quickSort.php文件源码在《归并排序、快速排序源码和性能分析》的快排部分。<?php/** * 桶排序 * * 1. 根据数据范围确定桶的个数 * 2. 将各个元素放入桶中 * 3.1. 如果桶中的元素未超过最大值限制,则进行排序 * 3.2. 如果桶中的元素超过了最大值限制,则对这个桶的元素再递归进行桶排序 * 4. 将每个桶的元素合并即可得到有序元素...

2019-12-04 22:35:44 209

原创 MySQL性能优化---limit讲解和优化

mysql版本:5.6操作系统:windwos 10表结构:id为主键,a为非唯一索引,索引名index_a数据量:查询1:查询2:对比上面的两个sql语句,查询目的一样,但是效率相差较大,现在就来从limit原理分析两条sql的差别。explain查看sql1的执行计划:通过type为all以及key为null可以看出虽然sql中有where a=1在索引上的条件...

2019-12-03 20:13:47 453 1

原创 线程池使用总结

不是线程的安全面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。切记望文生义。同理,“线程安全”也不是指线程的安全,而是指内存的安全。为什么如此说呢?这和操作系统有关。目前主流操作系统都是多任务的,即多个进程同时运行。为了保证安全,每个进程只能访问分配给自己的内存空间,而不能访问...

2019-12-02 19:30:15 840

原创 HTML、CSS、JavaScript是如何变成页面的?

从输入HTML、CSS、JavaScript到浏览器渲染出我们预期的效果,渲染流程分为这几个子阶段:构建DOM树、样式计算、布局阶段、分层、绘制、分块、光栅化和合成。以下面这段html举例讲解这几个过程:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> &...

2019-12-02 11:33:02 1433

原创 排序---归并排序、快速排序、堆排序实现和性能分析

/** * @param $arr array 待排序的数组 * @param $l int 数组第一个元素下标索引 * @param $r int 数组最后一个元素下标索引 * @return array */function mergeSort($arr, $l, $r) { if ($l >= $r) return [$arr[$r]]; $mid = i...

2019-12-01 14:41:26 524

Xdebug_Helper.zip

亲测有效的Chrome_Xdebug_Helper_extension 安装步骤: 1 下载后解压 2 将extension_1_4_2.crx拖至谷歌的插件扩展页(如果报错,请进行下一步) 3 将extension_1_4_2.crx改名为extension_1_4_2.rar后解压 4 在chrome的扩展页面打开开发者模式后点击“加载已解压的扩展程序” 5 选择extension_1_4_2文件夹即可

2019-07-06

空空如也

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

TA关注的人

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