- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 设计模式 - 代理模式
代理模式在现在的很多框架中都有用到,例如SpringAOP。代理模式主要有三种方式:静态代理、JDK动态代理、CGLIB动态代理。下面来讲讲这几个的实现方式。静态代理:1、创建接口2、创建真实类实现接口3、创建代理类实现接口4、测试结果静态代理的原理:通过创建代理类,实现与真实类的同一个接口;在代理类中有独特的方法,在执行真实类的方法前后加入这些独特的方法,达到增强方法功能的效果。...
2019-04-03 17:27:08
316
原创 Java - SSM框架的搭建(Spring+SpringMVC+Mybatis)
此篇文章介绍Spring+SpringMVC+Mybatis的整合操作。项目都是由前端、后台、数据库组成。在SSM框架中,SpringMVC负责与前端页面的交互,Spring负责后台,Mybatis负责与数据库的CRUD。由此看出,Spring是作为中间人,所以在搭建项目的时候,我们的思路是将Spring和Mybatis进行整合、将Spring和SpringMVC进行整合。这里我用的版本是:...
2019-04-02 10:33:03
994
原创 Java - 原码、反码、补码、类型强转
在Java中,基础知识用到了原码、反码、补码这三个概念,很多人学习完之后还是一脸懵逼,这里给大家讲述一下。先说概念:原码:原码就是数字在计算机底层的二进制反码:反码就是将原码除符号位外,其他位都取反,0变1,1变0补码:就是在反码的基础上最末位+1再说一个重要概念:正数的原码、反码、补码一致;负数的原码就是它绝对值的补码。请读懂上面两个概念,这样才能看懂下面的例子!!!接下来给大家做几...
2019-03-31 23:44:58
892
原创 Java面试题(十) - SQL语句的优化
SQL语句的优化一般有以下几种方式:一、设置合适的字段属性 (1) 例如,设置中国的电话号码是11位,varchar的长度不设置默认255,设置11位。 (2) 字段的长度越小,占用的内存就越小,性能就越好二、使用JOIN语法: (1) JOIN语法分为内连接、左(外)连接、右(外)连接 (2) 优点:性能快三、尽量少使用SELECT ...
2019-03-26 20:41:56
3965
原创 Java面试题(九) - 同步、异步、阻塞、非阻塞
在同步、异步、阻塞、非阻塞中,一般我们会认为同步与阻塞是同一个概念、异步与非阻塞是同一个概念,其实不然。两者之间的区别主要是针对的对象是不同的。假如A调用B:同步:针对的对象是B,A调用B。B在处理完事情之前是不会通知A的,只有完成事情之后才会通知A。这种叫做同步。异步:针对的对象是B,A调用B。B在接收到A要它处理事情的请求时,告诉A我知道了;在处理完事情之后再通过回调等方式去通知A我处理...
2019-03-25 11:28:48
951
原创 Java面试题(八) - 单例模式
在面试中,被问到常用的设计模式有哪些,一般只要你回答了单例,那么面试官一般会问单例的问题。问:请说明一下单例模式的原理答:通过将构造函数私有化,在类内部创建它的实例对象,通过静态方法将实例对象进行返回问:单例模式中构造器必须私有化吗?答:必须私有化,目的是为了防止被其他类进行实例化。单例模式主要用两种方式:饿汉式和懒汉式。下面我来进行举例饿汉式:这种方式的优点在进行类加载时就被实例化...
2019-03-21 14:36:57
587
原创 Java面试题(七) - 重载OverLoad与重写Override的区别
重载OverLoad与重写Override的区别这也是一个在面试中经常被问到的问题,主要的区别就是以下几点:重载OverLoad:(1) 方法名相同(2) 参数个数不同(3) 参数类型不同(4) 参数列表顺序不同(5) 在参数的个数、类型、顺序不一样时,返回值可以不同重写Override:(1) 方法名相同(2) 参数的个数、类型、顺序相同(3) 返回值相同(4) 子类重写父...
2019-03-21 14:01:38
349
原创 Java面试题(六) - 抽象类与接口的区别
抽象类与接口的区别,这是一个经常被问到面试题,区别主要有以下几点,我们可以从几个方面进行分析:(一) 继承方面: (1) 抽象类只能单继承;接口可以多实现(二) 成员属性方面: (1) 抽象类中可以有普通属性,也可以有常量 (2) 接口中的成员变量全部默认是常量,使用public static final修饰,这个可以省略不写(三) 代码块方面:...
2019-03-21 13:33:53
5157
2
原创 Java面试题(五) - MYSQL中内连接与左(右)连接的区别
今天去进行了面试,遇到了内连接与、左连接、右连接的区别,由于好久没用过了,回家进行了测试,下面是结果。希望能帮助大家!首先,我这有两个表,里面的数据去这样的:表和数据准备好了,接下来进行操作:(1)先说左连接查询:左连接:在 LEFT JOIN 左边的表里面数据全被全部查出来,右边的数据只会查出符合ON后面的符合条件的数据,不符合的会用NULL代替。(2)右连接查询:右连接:与 LEF...
2019-03-21 12:25:41
2183
原创 Java面试题(四) - SpringAOP的原理
昨天进行的面试,被问到了SpringAOP的原理问题,我当时只知道是通过动态代理实现的,其余的一脸懵逼状态。问:请说一下SpringAOP的原理。答:SpringAOP是通过动态代理来实现的。问:你说的动态代理是JDK的动态代理吗?答:是的。问:那被代理的类没有实现接口的情况,这是怎么实现的?答:...回来后,我搜索了很多资料、最后总结如下:(1) SpringAOP是动态代理来实...
2019-03-20 10:58:16
6367
1
原创 Java面试题(三) - StringBuilder与StringBuffer的区别
昨天进行面试的时候,碰到面试官问到这个问题。问:StringBuilder与StringBuffer的区别?答:StringBuilder线程安全、速度快;StringBuffer线程不安全、速度慢。问:既然StringBuilder速度快,那为什么不用StringBuilder呢?答:在进行多线程操作数据时候,使用StringBuilder可能会出现问题,使用StringBuffer不会...
2019-03-20 10:39:12
339
2
原创 Java面试题(二) - char类型能不能存储中文汉字
Java是基于Unicode编码的,Unicode编码中包含了中文汉字,所以在char类型中是可以存储中文汉字的。
2019-03-14 10:14:59
512
原创 Java面试题(一) - 基本数据类型个数与范围
在Java中,基本数据类型总共有8个,分为四类: (一) 整数类型: byte:占1个字节,范围 -2(7) ~ 2(7)-1 short:占2个字节,范围 -2(15) ~ 2(15)-1 int:占4个字节,范围 -2(31) ~ 2(31)-1 long:占8个字节,范围 -2(63) ~...
2019-03-14 09:42:00
303
原创 JS - call、apply的使用与异同
这篇文章来讲讲JS中的call方法与apply方法。(1)这两个方法存在与Function.prototype上(2)这两个方法的作用是一样的(3)这两个方法的参数个数不同call的使用方式及注意点:(1)使用方式:call(context, 参数1, 参数2, ..., 参数n)(2)context:上下文,规定里面this的指向(3)content在 不填、null、undefi...
2018-11-23 15:22:33
161
原创 JS - 加减乘除
这篇文章讲一下JS中的加减乘除。number之间的加减乘除:这个很简单,幼儿园就会了啦,此处不再说明number与string之间的加减乘除:(1)number与string进行加法计算时,会将两者作为字符串进行拼接(2)number与string进行减法、乘法、除法计算时,会将string转化成number再进行计算注:(1)当string不能转换成number时,会转化成NaN,Na...
2018-11-22 11:00:47
3567
原创 cookie、localStorage、sessionStorage之间区别
这篇文章讲一下浏览器的三个存储对象:cookie、localStorage、sessionStorage。cookie: (1)个数只能存20个左右 (2)总大小只能存4KB左右 (3)每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题localStorage: (1)永久保存在本地 (2)...
2018-11-21 10:35:23
351
原创 Vue - 过渡与动画transition
这篇文章介绍Vue的过渡与动画,主要是用到组件transition。作用范围:一般搭配v-if、v-show、动态组件、组件根节点来使用。在举栗子之前,我们先说说transition的钩子函数:v-enter:定义上半场过渡的初始状态;在过渡开始前被添加,在过渡开始时会被移除v-enter-to:定义上半场过渡的结束状态;在过渡开始时被添加,在过渡完成时会被移除v-enter-active...
2018-09-27 08:21:19
19082
2
原创 Vue - 自定义组件
这篇文章介绍Vue的自定义组件。定义全局组件的第一种方式:html代码:定义全局组件的第二种方式:html代码:定义全局组件的第三种方式:html代码:常用的方式是第三种,原因:(1)在工作中模板中肯定有很多标签,在一个字符串中写入很容易出错,故用第一二种出错率高(2)将模板提取出来更容易复用定义局部组件的方式:html代码:组件名称的大小写问题:(1)官方强烈推荐要遵循W3C规范...
2018-09-24 17:48:11
22786
1
原创 Vue - 生命周期(钩子函数)
这篇文章介绍Vue的生命周期函数,也叫做钩子函数。Vue的生命周期函数主要分为以下几个:beforeCreate:在这个期间,Vue实例被创建出来了,但是el、data、methods等还没创建created:在这个期间,el、data、methods等都被创建出来了,可以被调用;但是还未被渲染到元素上(数据还未替换到元素上)beforeMount:在这个期间,将数据渲染到元素上的前一步,...
2018-09-24 10:15:02
165
原创 Vue - 过滤器
这篇文章介绍Vue过滤器的定义与使用。定义全局过滤器的例子:html代码:定义局部过滤器的例子:html代码:结论:(1)在定义局部过滤器时,必须加s,使用filters(2)在function中,必须有返回值,否则在{{ }}要替换的地方会显示空(3)在function中,第一个参数data必定为要处理的数据,第二个参数开始才是传入的参数。如function(data,参数......
2018-09-23 23:01:05
284
原创 Vue - 自定义指令
这篇文章介绍Vue自定义指令的方式,以input控件的自动聚焦为例。定义一个全局指令的自动聚焦例子:html代码:定义一个局部指令的自动聚焦例子:html代码:自定义指令的钩子函数(生命周期函数)有bind、inserted、update、componentUpdated、unbind:bind:在指令绑定到元素上时调用,只执行一次。可以在这里进行初始化设置。inserted:在被绑...
2018-09-23 22:36:12
564
原创 Vue基础指令(六) - v-for
这篇文章介绍Vue基础指令 - v-for。作用:循环显示vm中要遍历的数据。例子:html代码:浏览器显示:结论:(1)v-for会循环显示vm中你要遍历的数据(2):key是标识符,最好带上,不然可能会出问题(3)v-for要挂载在要循环的元素上,而不是要循环的元素的父元素上(4)v-for="(item, index) in list",这种方式中item是第n个数据,in...
2018-09-23 21:45:42
162
原创 Vue基础指令(五) - v-if、v-show
这篇文章介绍Vue基础指令v-if、v-show。作用:控制控件的隐藏于显示。使用方式:结论:(1)v-if和v-show都可以控制控件的隐藏与显示(2)v-if在为false时,会将控件删除;v-show在为false时,只会给控件添加display:none样式(3)v-if较v-show有较高的性能消耗,频繁切换推荐使用v-show...
2018-09-23 21:28:49
252
原创 Vue基础指令(四) - v-model
这篇文章介绍Vue基础指令 - v-model。作用:双向绑定数据例子:html:浏览器显示:通过例子可以看到,当改变input组件的value值时,vm中的value的值也会随之改变,这就是v-on与v-model的区别之处。结论:(1)v-on实现的是单向数据绑定,v-model实现的是双向数据绑定(2)通过v-model绑定的数据,html数据改变或vm中数据改变都会引起另一...
2018-09-23 13:25:04
188
原创 Vue基础指令(三) - v-on
这篇文章介绍Vue基础指令 - v-on。作用:绑定方法简写:直接使用@即可例子:html:浏览器显示:结论:(1)v-on绑定的是控件的事件(2)用v-on绑定事件时,事件的前缀on需要省略。例如input的点击事件原生是onclick,绑定时候只能使用click...
2018-09-23 13:06:47
189
原创 Vue基础指令(二) - v-text、v-html
这篇文章介绍Vue基础指令 - v-text和v-html。作用:替换标签内的文本例子:html:浏览器显示:结论:(1)v-text、v-html两个指令都会替换标签内的所有节点(2)v-text指令是直接替换,v-html会将数据以html格式进行替换...
2018-09-23 12:56:20
1482
原创 Vue基础指令(一) - v-bind
本篇文章介绍Vue框架的基础指令:v-bind。作用:用于单向绑定数据,可以将vm里面的数据显示到对应的位置简写:简写可以写成英文单冒号 :例:html文件:浏览器显示:注:(1)v-bind绑定的是控件的属性,属性值由vm中data中的数据的值控制(2)用户改变控件的属性值,不会改变vm中data中数据的值,例如用户改变input输入框里面的值,vm中的value仍然会是“这是i...
2018-09-23 12:22:18
232
原创 JS - 原型进阶
上篇文章中说了原型基础,这张文章说说原型进阶知识,此篇文章着重讲原型继承。此处需要引入Java中一个知识点:对象,要记住万物皆对象。先出代码:从浏览器控制台两个打印语句都是Object {},可见构造函数Person的原型是Object,实例对象p的原型是Object。从监视器也可以看到,构造函数的prototype属性值是Object,实例对象的__proto__属性值是Object;且实例...
2018-07-25 10:37:28
193
原创 JS - 原型基础
在进行说JS的原型之前,先说一个JS是基于什么开发的: (1)JS是基于对象开发的 (2)JS是是一种脚本语言,即只要写出来就可以进行立即编译执行 (3)JS是基于原型继承的,这点很重要,下面的知识都是基于此点才能进行说明在说今天的重点“什么是原型”之前,要先说两个东西: (一)什么是原型属性 如上图,创建一个函数function...
2018-07-24 10:03:50
276
原创 JavaScript - 对象的深浅拷贝
今天讲一下JS中对象的拷贝问题。拷贝分为两种:深拷贝与浅拷贝。两者的区别在于:在对象中的某个属性为引用,浅拷贝只会拷贝这个属性的地址,不会将地址所对应的值也拷贝一份,被拷贝对象与拷贝对象中的这个属性的值指向的是同一个东西,一者进行修改,另一者也会被改变;深拷贝则会将值进行拷贝一份出来,被拷贝对象与拷贝对象对自己中的这个属性的值进行修改,不会影响另一者。下面来举个例子更深入的理解一下。首...
2018-07-11 10:14:26
816
原创 JS - 对象的动态特性
今天跟大家分享一下JS中对象的动态特性。 JS中对象属性的调用有两种方式:(1)p.name (2)p["name"] 一般我们熟悉的调用方式是第一种,都用得很熟练了,现在说说第二种方式。 该方法的使用例子如下: (1)对对象进行新属性的添加,打印结果是16: var p = {name:"张三"}; p["age"] = 16; ...
2018-07-11 09:45:42
1519
原创 字体图标的下载与使用
标题:学习与分享CSS的字体图标 学习目的:减少资源占用,缓解浏览器与后台的压力 网址:http://www.icomoon.io(此篇文章已此网址为例,国外网站,网速有点慢,不过个人喜欢这个网站一些)、http://www.icofont.cn 步骤: (1)进入网站,点击右上角的按钮,会进入第二步 (2) (3)第二步中点击“Generate Font...
2018-07-02 11:10:37
1349
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人