- 博客(29)
- 收藏
- 关注
转载 数据库理论-如何求闭包
闭包就是由一个属性直接或间接推导出的所有属性的集合,例如: f={a->b,b->c,a->d,e->f} 由a可直接得到b和d,间接得到c,则a的闭包就是{a,b,c,d}以下是写的比较科学规范的顶一记求解方法设X和Y均为关系R的属性集的子集,F是R上的函数依赖集,若对R的任一属性集B,一旦X→B,必有BY,且对R的任一满足以上条件的属性集Y1 ,必有YY1,此时称Y...
2020-04-24 21:19:25
11718
转载 理解第1 2 3 bc范式
第一范式:只要满足所有字段不可再分,即不存在 “一个字段中有不同的数据类型” 这种情况,例如手机号这个字段不能既有手机号又有姓名年龄这些。第二范式:在第一范式的前提下,每个非主属性都完全函数依赖于主键。首先什么是主属性和非主属性?主属性就是候选键中的每一个属性,候选键可能是多个属性。不包含在候选键的属性叫非主属性。候选键可以有多组,例如候选键为AB或者AC或者AD,属性ABCD都包含在...
2020-04-24 20:58:22
523
原创 JS中箭头函数与普通函数this指向
var sum=()=>{ return obj;}var obj = { birth: 1997, getAge: function () { var b = this.birth; var fn = function () { return new Date().getFullYear() - this...
2019-09-03 14:19:33
621
原创 Java可重入锁和不可重入锁概念和区别学习笔记
可重入锁就是一个类的A、B两个方法,A、B都有获得统一把锁,当A方法调用时,获得锁,在A方法的锁还没有被释放时,调用B方法时,B方法也获得该锁。这种情景,可以是不同的线程分别调用这个两个方法。也可是同一个线程,A方法中调用B方法,这个线程调用A方法。synchronized和java.util.concurrent.locks.ReentrantLock是可重入锁不可重入锁就是一个类的A、B...
2019-09-02 16:28:46
547
原创 Spring Cloud 笔记一
Spring Cloud 核心组件,在微服务架构中,分别扮演的角色:Eureka:各个服务启动时,Eureka Client 都会将服务注册到 Eureka Server,并且 Eureka Client 还可以反过来从 Eureka Server 拉取注册表,从而知道其他服务在哪里。Ribbon:服务间发起请求的时候,基于 Ribbon 做负载均衡,从一个服务的多台机器中选择一台。Feig...
2019-09-02 10:41:57
107
原创 SQL Server删除大量数据造成日志满(批量删除)
当表的数据量很多时,一次性删除会造成时间过长,表也不能查询了,同时日志爆满。这个时候我们需要将大批量操作分成小批量操作,比如一次性只删除1000条数据:declare @onedeletecount intset @onedeletecount=1000while 1=1begin delete top(@onedeletecount) from tablename where...
2019-08-28 14:34:31
3294
原创 Java笔记:SpringAOP 前置通知、后置通知等通知
@AspectJ支持的5种通知:—@Before:前置通知在方法执行前执行//明该方法为一个前置通知:在目标方法开始之前执行—@After:后置通知,在方法执行后执行//后置通知,就是在目标方法执行之后(无论是否发生异常)执行的通知//后置通知中不能访问目标方法的返回结果—@AfterReturning:返回通知,在方法返回结果之后执行 //返回通知,在方法正常结束之后执行的...
2019-08-23 23:14:39
663
原创 C语言数组指针和指针数组理解
首先,指针变量既然可以指向变量,也能指向数组元素,因此,在赋值时候数组元素的名称就是\color{red}{首先,指针变量既然可以指向变量,也能指向数组元素,因此,在赋值时候数组元素的名称就是}首先,指针变量既然可以指向变量,也能指向数组元素,因此,在赋值时候数组元素的名称就是数组元素的首地址数组指针(array pointer):指向数组的指针。如:int (*p)[5] 中为申明一个指针...
2019-08-23 15:26:57
188
原创 Java多线程学习:线程类的一些常用方法
线程类的一些常用方法:sleep(): 强迫一个线程睡眠N毫秒。isAlive(): 判断一个线程是否存活。join(): 等待线程终止。activeCount(): 程序中活跃的线程数。enumerate(): 枚举程序中的线程。currentThread(): 得到当前线程。isDaemon(): 一个线程是否为守护线程。setDaemon(): 设置一个线程为守护线程。(用户...
2019-08-22 17:03:13
93
原创 Java多线程学习:wait和sleep区别
共同点:他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep /join,则线程B会立...
2019-08-22 17:01:32
222
原创 Java多线程学习:同步和异步的区别和联系
所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其它的命令。异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回 值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否...
2019-08-22 16:58:57
284
原创 Java:类的加载机制
jvm 一行代码是怎么运行的:首先,java代码会被编译成字节码,字节码就是java虚拟机定义的一种编码格式,需要java虚拟机才能够解析,java虚拟机需要将字节码转换成机器码才能在cpu上执行。jvm如何加载一个类:第一步:加载,双亲委派:启动类加载器(jre/lib),系统扩展类加载器(ext/lib),应用类加载器(classpath),前者为c++编写,所以系统加载器的parent...
2019-08-22 16:55:31
238
原创 layui弹出层点回车键无限弹出解决
$(document).keydown(function (event) {if (event.keyCode == 13) {$("*").blur();//去掉焦点if ($(".layui-layer-btn0").length > 0)layer.closeAll();}});
2019-08-22 10:09:40
1355
原创 JavaScript学习:作用域以及函数表达式
没有用var声明的变量为全局变量.函数表达式:第一种:var myFunc = function(){ alert("函数表达式")}myFunc()第二种:(function(){ alert("函数表达式")}())第二种会立即执行...
2019-08-22 10:07:38
110
原创 JavaScript学习:键盘事件组合快捷键
//组合快捷键$(document).ready(function () {document.onkeydown = function () {var oEvent = window.event;if (oEvent.keyCode == 69 && oEvent.ctrlKey) {event.returnValue = false;//dosometh...
2019-08-22 10:06:16
389
原创 JavaScript的学习:正则表达式来验证日期
在js中使用正则表达式来验证输入的数据是否为YYYY-MM-DDvar dateFormat =/^(\d{4})-(\d{2})-(\d{2})$/; if(dateFormat.test(value)){ //ture }else{ //false }...
2019-08-22 10:03:43
212
原创 JavaScript学习:settimeout
正确理解setTimeout的方式(注册事件):1、有两个参数,第一个参数是函数,第二参数是时间值。2、调用setTimeout时,把函数参数,放到事件队列中。等主程序运行完,再调用。for (var i = 0; i < 3; i++) { setTimeout(function() { console.log(i); }, 0); c...
2019-08-22 10:00:52
137
原创 layui:如何让layui不渲染form里面的select
<select lay-ignore> <option>…</option></select>
2019-08-22 09:58:55
3239
1
原创 Java:indexOf取第二个某字符(串)出现的位置
str = str.subString(str.indexOf("/",str.indexOf("/")+1), str.length()-1);//str.indexOf("/")+1,是获得第一个"/“索引之后的索引,相当于”/aaa/bbb/"中的第一个a所在的索引1...
2019-08-22 09:56:19
7265
原创 input输入框自动补全与联想 (jq autocomplete)
1 下载 jq autocomplete链接: link.2 如何使用//输入框联想$('#query').autocomplete({serviceUrl: "ajax接口地址",type:'POST',deferRequestBy:500});接口返回的json数据格式为:{"query": "word", //要查询的值"suggestions": ["valu...
2019-08-22 09:51:09
3025
原创 RabbitMQ的四种交换器类型
最新版本的RabbitMQ有四种交换机类型,分别是Direct exchange、Fanout exchange、Topic exchange、Headers exchange。1.Direct exchange(默认模式) : 它会把消息路由到那些BindingKey和RoutingKey完全匹配的队列中。2.Fanout exchange(广播模式) : fanout 它会把所有发送到该交...
2019-08-22 09:42:51
443
原创 RabbitMQ的消息持久化处理以及ack确认机制
管理界面中:队列中设置 autoDelete :ture 的意思是当所有消费者客户端断开连接后,是否删除队列 (交换器也是同个意思)ready:显示当前有多少消息没有被消费ack机制:如果忘记了ack反馈,而处理消息出现异常,那么后果很严重,会出现内存泄露。解决方法: 1 try catch 捕获异常进行处理2 配置中添加开启重试次数 :springboot.rabbitmq.list...
2019-08-22 09:40:02
402
原创 Java五种线程池
1 newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终...
2019-08-22 09:37:34
159
原创 SqlServer截取最后一个符号前的所有字符
截取sql字符原来:aa–bb–cc截取后:aa–bbselect reverse(substring(reverse(字段),CHARINDEX(’–’,reverse(字段))+2 ,LEN(字段) )) from table where 条件=‘abc’
2019-08-20 17:38:33
3943
原创 Java多线程Synchronized静态方法和非静态方法区别
1.普通方法和普通代码块锁住的是当前实例对象,同个对象调用是同步效果2.静态方法和以synchronized(class){}的方式锁代码块,锁住的是当前类的class对象,在同个类内,所属线程独占类锁,其他线程阻塞。...
2019-08-20 17:29:58
464
原创 理解Java字符串常量池
理解Java字符串常量池(1) 字面量创建字符串(String a=“a”)会先在字符串池中找,看是否有相等的对象,没有的话就在堆中创建,把地址驻留在字符串池;有的话则直接用池中的引用,避免重复创建对象。(2) new关键字创建时,前面的操作和字面量创建一样,只不过最后在运行时会创建一个新对象,变量所引用的都是这个新对象的地址。...
2019-08-20 17:26:03
85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人