- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 处理sql server长时间锁表、死锁
有的人数据库连接工具开了手动提交,执行完sql又忘记提交事务,或者代码有问题没有提交事务或产生了死锁,会导致长时间锁表,表完全没法用了。无论是oracle还是sql server,处理步骤都是一样的,先查出锁表的session,再kill掉,只是具体sql不一样。列出当前阻塞进程都被哪个进程给阻塞了,找出阻塞源头。其实可以建立运维面板来监控此种场景。
2024-01-08 13:09:55 751
原创 linux双因子配置双因子登录
第4个:默认情况,1个口令的有效期是30s,这里是为了防止主机时间和口令客户端时间不一致,设置的误差,可以选择y,也可选n,看要求严谨程度 y。完成上述步骤后,当用户登录时,系统将要求他们提供谷歌身份验证器生成的临时验证码,以完成双因素身份验证。第5个:是否打开尝试次数限制,默认情况,30s内不得超过3次登录测试,防止别人暴力破解。请注意,在执行任何修改前,请务必备份相关的配置文件,以防止意外情况发生。第3个:是否禁止口令多用,这里选择y,禁止它,以防止中间人欺骗。
2023-12-03 11:37:09 405
原创 js Promise、async、await的用法
方法是异步的,只是起一个声明作用实现异步还是要靠Promise。我们的方法中用了Promise时那肯定就是异步的,await只能用于异步方法中,将等待Promise执行链执行完成后才往下执行。由于Promise是异步的,但有时我们不希望程序异步,于是诞生了async、await关键字。Promise可以用来构建调用链,避免不断嵌套写回调函数。
2023-11-22 21:39:48 167
原创 SpringFox
SpringFox可以自动为我们生成接口描述文档,提供控制层中各个请求的测试界面等.pom.xml中加入依赖:<!-- springfox3--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</v
2021-04-10 20:28:08 8345
原创 数据结构--图
图的邻接矩阵表示A[i,j]为1表示节点i到j有变相连,0表示无边相连.上图表示为:如果边具有权则用权表示,无边相连可用无穷表示.i=j时用0表示.无向图为对称矩阵.邻接表表示对于图中的每个顶点,把所有邻接于顶点的节点链成一个单链表.链表节点至少包含两个域:一个为邻接点域,指示在图中的位序,一个为链域,指示下一个节点....
2020-11-07 16:23:19 172
原创 RabbitMQ
消息中间消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统.消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。优点:解耦、异步、削峰。Broker:标识消息队列服务器实体.Virtual Host:虚拟主机。标识一批交换机、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。每个vhost本质上就是一个mi
2020-11-04 22:50:55 227
原创 java基础知识笔记2
这里写目录标题变量初始化静态变量和静态块类的代码块构造代码块静态代码块finalsynchronizedsynchronized方法变量初始化对于类的成员变量,如果没有显式初始化将会用默认值初始化,int 默认为1,boolean默认为false.对于局部变量,如果没有显式初始化将无法编译.对应float的初始化,要在小数后面加f,因为小数默认为double.float x=0.0f;public class Test9 { static int a; boolean b; public
2020-11-04 19:12:23 767
原创 SQL语句练习
limitselect * from tablename limit i,n#i:查询结果索引值#n:查询结果返回数量.#默认i为0查找入职员工时间排名倒数第三的员工所有信息select * from employees order by hire_date desc limit 2,1;
2020-10-21 23:48:09 680
原创 jvm高级特性
jvm高级特性内存区域虚拟机栈本地方法栈java堆方法区运行时常量池直接内存类加载机制类加载器Bootstrap Class LoaderExtension Class LoaderApplication Class Loader(System Class Loader)内存区域Java虛拟机在执行Java程序的过程中会把它所管理的内存划分为若千个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一-直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《
2020-10-17 17:08:00 981
原创 Java常见集合实现原理
这里写目录标题ArrayListadd()方法remove()get()size()HashMapStringBuilderappend(String str)delete(int start,int end)ArrayList private static final long serialVersionUID = 8683452581122892189L; /** * Default initial capacity. */ private static f
2020-09-13 23:16:21 394
原创 HashMap源码分析
HashMap采用数组+链表+红黑树实现.当链表长度超过8时使用红黑树储存.常量: //默认容量16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** * The maximum capacity, used if a higher value is implicitly specified * by either of the constructors with argum
2020-09-13 18:15:06 107
原创 判断一颗二叉树是否为AVL树(Java)
如果左子树是AVL树,右子树是AVL树,他们的高度差小于等于1,那就是AVL树;否则不是.public class IsAVLTree { public static boolean isAVL(TreeNode root) { if (root==null) { return true; } int diff=Math.abs(getHeigt(root.lchild)-getHeigt(root.rchild)); if (isAVL(root.lchild)&&
2020-09-10 12:47:03 652
原创 动态规划
动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复
2020-09-07 21:25:20 173
原创 腾讯2021届校招第四场笔试通知问题
这是一个笔试题,当时写到一半没时间了,好可惜啊,,,,,,,要是能再多给我5分钟就好了。。。。。公司有n个员工,编号为0~n-1,公司有m个团体,每个员工可以参加多个团体,也可以不·参加。如果一个员工获得一个通知,他可以通知所在团体中的其他人,得知消息的员工又可以去其他所在团体进行通知。现编号为0的员工获得一个通知,求最终获得通知的人数。输入:第一行分别输入员工数和团体数;接下来m行第一个数代表团体人数,后面数字代表团体的员工编号。输出:获得通知的人数。输入示例:50 52 1 25 10 1
2020-09-07 10:04:45 347
原创 贪心算法
贪心算法钞票支付问题分糖果(455)分析算法思路摇摆序列(力扣376)思路移除k个数字(402)分析跳跃游戏(55)贪心法:遵循某种规律,不断贪心的选取当前最优策略的算法设计方法。钞票支付问题有1元、5元、10元、20元、100元、200元的钞票无穷多张。现使用这些钞票支付x元,最少需要多少张?如:x=628最佳支付方法:3张200块的,1张20块的,1张5块的,3张1块的;共需要3+1+1+3=8张。直觉告诉我们:尽可能多的使用面值较大的钞票!为何这么做一定 是对的?面额为1元、5元、
2020-09-03 11:22:54 373 1
原创 分布式微服务Spring Cloud
Spring Cloud是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体.除Cloud外,国内较火的是Dubbo.Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。微服务概念微服务架构是种架构模式,它提倡将单一应用
2020-08-29 00:55:12 430
原创 Spring Boot+Thymeleaf
Spring Bootpom.xml中引入Spring Boot web启动器依赖Spring Boot的启动持久层(mybatis)创建Spring Boot配置文件Spring Boot用于简化Spring框架项目的创建和启动,简化项目配置,内置了Spring,SpringMVC,Tomcat,并提供对其他框架的扩展.pom.xml中引入Spring Boot web启动器依赖<!-- spring boot web启动器--> <dependency>
2020-08-27 00:36:25 1395
原创 JMeter的使用
JMeter是一个很好的网站测试工具,可以模拟高并发请求等,简单易用.右键add->thread group添加线程组.Number of thread可以设置发送的请求数量Ramp-up period设置请求在多少时间内达到,0表示同时达到.loop count设置循环次数右键add->sampler->HTTP request添加请求.点下面的add按钮可以添加向服务器发送的参数发送Post请求:name为参数名称,Value为参数值. @PostMapp
2020-08-20 19:54:14 134
原创 IDEA使用lombok输出日志
安装lombok插件:pom.xml加入依赖:<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> <version>1.16.18</version> </dependency>
2020-08-20 17:16:50 439
原创 Spring
Spring框架概述Spring框架可以通过注解或配置生成对象(一般是Bean对象),进行面向切面编程等.Spring框架至少需要的包将这些包复制到lib文件夹下,并添加到build path中,接下来才能使用Spring框架.配置Spring框架及装配对象Spring默认配置文件是在src文件夹的applicationContext.xml文件.applicationConte...
2020-08-18 23:18:56 124
原创 IDEA Community(社区版) 使用Maven创建Web工程 并部署tomcat
由于IDEA社区版(Community)无法直接New一个Web Appplication 所以要使用maven来创建1.创建一个Project4.这里在Properties中添加一个参数archetypeCatalog=internal,不加这个参数,在maven生成骨架的时候将会非常慢,有时候会直接卡住。来自网上的解释:archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于
2020-08-18 23:09:24 753 3
原创 Java并发编程
Java并发编程线程池Callable接口线程的状态线程池的状态并发的临界区操作死锁使用条件对象使用信号量设置加锁时限顺序加锁死锁检测线程间的协作阻塞队列同步器CyclicBarrierCountDownLatchSemaphoreSynchronousQueue线程安全的数据结构线程可以调用interrupt方法请求终止进程,但线程被阻塞(如sleep)时不可终止,否则抛出java.lang.InterruptedException.在Java程序设计语言中,每一个线程有一个优先级。默认情况下,一个线
2020-08-18 19:21:36 164
原创 java.lang.IllegalMonitorStateException at java.util.concurrent.locks.AbstractQueuedSynchronizer$Con
报这个异常的一些原因:在lock.unlock()之后调用condition.signal().还没lock()就unlock()在lock.unlock()之后调用condition.await().condition对象和锁对象不对应.
2020-08-18 00:48:25 1258
原创 Java实现二叉查找树
用递归的方式实现插入、遍历、查找等,也可以不用递归方式实现。public class BinarySearchTree { private BinaryTreeNode root; public void insert(int x,BinarySearchTree tree) { if(tree.root==null) { tree.root=new BinaryTreeNode(x); } else if(x<tree.root.getData()) { Binar
2020-08-07 14:08:16 134
原创 数据结构与算法
数据结构与算法笔记散列冒泡排序归并排序字符串转float散列根据键值映射到对应值的地址,从而获取值.查找效率比链表高,插入与删除效率比数组高散列函数(Hash函数)负责键到地址的映射,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。理想的散列表是固定大小的数组.如果不同键映射到了相同地址则发生了冲突,冲突是避免不了的,但应尽量减少发生,并提
2020-08-07 09:16:05 672
原创 Java Web笔记
Java Web开发工具及运行环境jsp基本结构页面中的Java代码开发工具及运行环境免费开源软件eclipse for ee(Eclipse jee 2019-03),jdk1.8。开发java web最后下载专门的eclipse的EE版本,如果下载基本版再自己下载插件里面的Tomcat版本比较老。jsp基本结构<%@page import="需要引入的包"%><%...
2020-07-31 09:59:03 94
原创 操作系统原理笔记
进程:程序运行的集合,是系统资源分配和调度的基本单位.线程:是cpu调度的最小单位,包含在进程中.同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见为何不使用多进程而是使用多线程?线程廉价,线程启动比较快,退出比较快,对系统资源的冲击也比较小。而且线程彼此分享了大部分核心对象(File Handle)的拥有权如果使用多重进程,但是不可预期,且测试困难。栈(操作系统):由操作系统(编译器)自动分配释放 ,存放
2020-07-30 22:48:10 163
原创 Linux笔记
下载URL资源:wget -c url上传文件到服务器:安装lrzsz:yum install lrzsz;输入rz即弹出上传窗口.(需在xshell中)less管道:当命令输出信息太多需分屏显示时,"|less"加在命令后面.less也可用来查看文本信息:less filename按上下键查看上(下)一条,按f向下翻页按b向上翻页.按g回到第一页按h进入帮助:向下查找:/pattern按q退出查看.还有more管道和less类似.文件操作mkdir dir1 创建一个叫
2020-07-28 23:40:29 632 1
原创 Java笔记
反射根据类名获取实例:Class c = Class.forName("com.test.Test");Test test = (Test) c.newInstance();//获取实例
2020-07-27 13:42:30 1358
原创 设计模式笔记
开闭原则:对修改关闭,对扩展开发.我们软件开发应当遵守这一原则.单例模式确保一个类在系统中仅有一个实例,自行实例化并向这个系统提供这个实例.要将构造函数设为private,防止外部调用,还有提供一个getInstance方法返回实例.使用场景:1、要求生产唯一序列号。2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。实现方式:懒汉式在第一次调用时实例化,防止内存浪费public class I
2020-07-25 00:02:29 87
原创 计算机网络笔记
计算机网络笔记OSI七层模型TCP/IP四层模型TCP三次握手四次挥手OSI七层模型应用层负责进程通信,规定具体通信规则.常用协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP表示层负责数据的表示、安全、压缩.会话层建立、管理、终止会话。传输层定义传输数据的协议端口号,以及流控和差错校验。协议有TCP UDP网络层进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IGMP IP数据链路层建立逻辑连接、进行硬件
2020-07-22 22:17:18 3579
原创 Git使用笔记
Git的使用上传项目到github对于我这种不想记命令的人比较喜欢用Git Gui。上传项目到github要先在github网站上建一个repository。打开git gui,点create new repository,选择项目文件夹。如果已有则点open直接打开。依次点rescan、stage changed、sign off、commit、push注意左下角的状态,等完成后在点下一个按钮。点push后出现如下界面:从github建的仓库复制仓库地址,填入arbitrary
2020-07-19 22:50:22 553
原创 要在IDEA community中使用Aspectj需要安装插件
需要安装该插件,否则将报错.如图,在marketplaces搜索aspectj就能安装.
2020-07-19 14:35:40 736
jstl需要的包
2019-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人