自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 netstat命令解决端口被占用问题

工作中经常会遇到某个端口被占用导致进程不能启动,windows环境下可以使用netstat命令解决:netstat -aon |findstr "10086" //找到占用10086端口的进程号 12345;taskkil /t /f /pid 12345 //干掉进程号为12345的进程...

2021-12-01 17:29:18 888

原创 ip地址分类

ip地址简介:ip地址是指互联网协议地址,又称为网际协议地址,是ip协议提供的一种统一的地址格式;我们知道ip协议工作在iso网络模型的第三层网络层;为了不让数据包在茫茫的大海中迷失方向,我们需要在网络层给数据包设置原地址ip,目的地址ip;Ip地址是一个32位的二进制数,通常被分割成4个8位二进制,也就是四个字节;ip地址通常用点分十进制表示;首先出现的ip地址是ipV4,长度是32位,大约有43亿个地址;目前这些地址已经分配完毕,下一代网络协议是IPV6,128位长度,基本上可以为看得见的所

2021-12-01 17:21:52 2472

原创 SpringBoot @Autowired RestTemplate自动注入报错:NoSuchBeanDefinitionException

RestTemplate

2021-11-24 16:31:57 1359

原创 git reset和git revert的区别

我们平时使用git管理代码时,有时候某个节点提交的代码不想要了,想要恢复之前的某个节点提交的代码,一般我们都会想到使用git reset和git revert命令,但是这两个命令到底有什么区别呢?下面就简单做下总结:git reset:重置代码回退到某个节点,此操作不可逆,什么意思呢?举个例子:现在有A->B->C->D四个节点的代码提交,现在想回撤到B节点,当我们执行了reset命令后,CD两个节点的提交都会被删除,就是说不能再回复到CD两个节点;git revert: 还是上面

2021-06-09 18:25:20 222

原创 在克隆git仓时可能出现的问题

在执行repo init 本地克隆git仓时出现如下错误:Unable to negotiate with ×××× port ××××: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1解决方法:在.ssh/目录下新建config文件,添加以下内容:Host *Port ****KexAlgorithms +diffie-hellman-group1-sha1...

2021-06-08 16:58:23 175

原创 You cant specifty target table xxx for update in FROM clause

如果mysql更新,删除语句条件中依赖子查询语句的结果,此时就需要注意了,不然就是报出"You can't specifty target table xxx for update in FROM clause"的问题:例如以下语句:delete from student where id in (select id from student where LENGTH(id)>32);执行后报出上述错误,大意是说你不能update操作某表在子查询语句中,也就是说对某个表进行查询操作的同时不

2021-02-03 16:59:25 196

原创 UML类图快速入门

UML简介:统一建模语言(Unified Modeling Language)是一种为面向对象系统的产品进行说明,可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML模型可以分为三类:功能模型:从用户的角度展示系统的功能,常见的有用例图;对象模型:采用对象,属性,操作,关联等概念展示系统结构和基础,常见的有类图,对象图,构件图,部署图;动态模型:展现系统内部的行为。常见的有活动图,状态图,时序图,协作图;其中我们最常用的是UML类图和时序图;类图展示了系统中各个

2021-01-20 17:48:31 289 5

原创 mybatis批量新增List<Map>类型入参

mybatis接口中新增数据的时候,接口入参一般都是vo,或者List<vo>的形式,但是有的时候就两三个变量懒得定义一个vo,这个时候可以使用Map类型作为入参;批量新增可以使用List<Map>,其实mybatis还支持使用JsonObject/List<JsonObject>作为入参;废话不多说,上代码:map入参和JsonObject入参xml文件的写法是一样的: <insert id="addUser" parameterType="map

2020-12-31 17:40:49 6195 1

原创 Python快速入门

Python是一种面向对象,解释型的高级程序设计语言,和shell,javaScript,php,perl,ruby等语言一样属于脚本语言;Python第一个发行版发行于1991年,其源代码遵循GPL协议;由于是解释型语言,python天生具有跨平台的特性,只要为平台提供相应的python解释器,python就可以在改平台运行;关于运行速度的问题,如果对运行速度有特别的要求,可以用c/c++实现相关代码;环境搭建:和java运行需要安装jdk一样,python程序的运行也需要依赖python环境,可

2020-12-30 18:00:04 180 1

原创 Http详解

Http概述http全称超文本传输协议(HyperTextTransferProtocol),是一个简单的请求-响应协议,按照iso网络模型划分属于应用层协议,它通常运行在TCP连接之上。现在广泛使用的版本是1.1。特点:1.支持客户/服务器模式;2.简单快速:客户向服务器发送请求时,报文中包含请求的方法,URL,协议版本,请求头和请求数据;由于协议简单,数据量小使得客户和服务器之间的通信简单快速;3.灵活:http协议允许传输任意类型的数据对象,传输的数据类型由Content-Ty..

2020-12-17 17:58:28 127

原创 线程的六种生命周期状态及转换

线程的生命周期状态:新建(NEW),运行(Runnable),阻塞(Blocked),等待(Waiting),超时等待(Timed_Waiting)死亡(Terminated);新建:创建一个线程就是新建状态;运行:调用start方法后,获取到CPU时间片的线程处于running状态,没有获取到时间片处于Ready状态,这两种状态统称为Runnable;阻塞:调用start方法后线程没有获取cpu时间片或者在阻塞等待获取锁对象会进入阻塞状态;等待:线程调用了wait方法进入等待状态;slee

2020-12-11 21:48:41 656

原创 eclipse安装lombok插件后启动报错

springboot框架的maven项目用到了lombok插件,eclipse安装lombok后重启报错,网上大多数说的是在eclipse的启动配置文件中加入以下配置:-javaagent:lombok.jar #自动生成的-Xbootclasspath/a:lombok.jar但是我在加了-Xbootclasspath/a:lombok.jar后启动还是报错,后来把lmaven仓库中的ombok jar配置上重启就可以了;-javaagent:/maven仓库路径/lombok.jar..

2020-09-14 14:46:29 1375 1

原创 Facade pattern(外观模式)

Facade pattern是外观模式,也叫门面模式,是一种结构型设计模式;定义:向外部提供了一个统一的接口,用来访问子系统中的一群接口;适用场景:子系统越来越复杂,增加外观模式提供简单调用接口;构建多层系统结构,利用外观对象作为每层的入口,简化层间调用特点:解耦,减少系统依赖,客户端不用多个子系统直接交流,而是通过外观对象进行交流;简化了调用过程,无需了解子系统;外观模式符合迪米特法则,即最少知道原则,客户端不需要知道众多子系统进行交互,只需要和外观对象交互即可;与外观模式相关的模式对

2020-06-25 20:34:11 742

原创 Prototype pattern(原型模式)

原型模式是一种创建型模式,来看下定义和使用场景:定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象(通过克隆方法,不调用构造函数);使用场景:创建对象消耗过多资源,或者创建过程繁琐(数据准备,访问权限等),构造函数复杂,循环体中生产大量对象等;特点:比直接new一个对象性能高,需要实现cloneable接口,涉及浅拷贝,深拷贝;由于该模式比较简单就不写代码示例了;...

2020-06-23 19:54:44 141

原创 建造者模式(Builder pattern)

建造者模式也是一种创建型设计模式,主要用来创建复杂对象(对象的属性比较多),将一个复杂对象的构建与它的表示分离,使得同样的构建构成可以创建不同表示;通常在复杂对象内部设计一个静态内部类作为复杂对象的创建者并使用链式编程来实现;使用场景:如果一个对象内部有非常复杂的内部结构,也就是很多属性;想把对象的创建和使用分离;建造者模式和工厂类模式都是创建对象的,但是他们的侧重点不一样,建造者侧重于构建复杂的对象,工厂类模式适用于创建一般对象;...

2020-06-08 22:59:48 156

原创 策略模式(Strategy pattern)

策略模式指定了对象在什么情况下应该采取什么样的策略。举个简单的例子:现在有个需求按照恐龙的体重对多个恐龙进行排序,我们可以让恐龙类实现Comparable接口,实现compare方法,在该方法中根据体重进行比较: @Override public int compare(Dragon t) { if (high < ((Dragon)t).getHigh()) { return -1; } else if (high > ((Dragon)t).getHigh()) {

2020-05-23 18:58:14 208

原创 单例模式(Singleton pattern)

顾名思义,单例模式就是指一个类在内存中只有一个对象 。常见的单例模式:饿汉式,懒汉式,静态内部类,还有一种不常见的利用枚举来实现;饿汉式:在类加载时就创建好了对象;优点:多线程安全(类加载机制保证),不用加锁效率高;缺点:不管是否用到,该对象都已创建,浪费内存:public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton() {}//构造方法私有化

2020-05-21 23:45:38 156

原创 版本管理工具Git使用和底层原理

Git是一个开源的分布式版本控制系统,Git起初是Linus Torvalds(linux之父)为管理linux内核而开发的版本控制软件;一:Git体系Git和svn的主要区别:存储方式不一样;使用方式不一样;管理模式不一样;1.存储方式区别:Git把内容按元数据存储在类似K-V数据库,svn是按文件存储(新版svn已改成元数据存储)git每次提交都会生成一个唯...

2020-05-01 00:00:52 501

原创 数据结构-栈(stack)和java代码实现

栈是一种数据结构,特点后进先出(LIFO);提供了出栈,入栈等操作;java代码实现如下(基于数组)public class Stack<T> { private int size = 10; private Object[] stack = new Object[size]; private int position; @SuppressWarnings("u...

2020-04-19 16:30:33 197

原创 Spring整合junit分析

我们知道一个程序的入口是main方法,junit框架中就集成了一个main方法(Runner类),该方法会判断当前测试类中那些方法有@Test注解,junit就会通过Method.invoke()方法调用执行。我们在spring框架中如何集成junit呢?由于junit不知道我们使用了spring框架,所以就不会为我们读取配置文件/类创建spring核心容器,就无法通过Autowired注解为变量...

2020-02-20 17:26:50 116

原创 Spring IoC/DI分析和常用注解分类

Spring的一大特性就是Ioc(Inversion of Control)即控制反转,一种设计思想。在了解这一思想之前,我们应该先来聊聊设计模式六大原则之一的依赖倒置原则(Dependency Inversion Principle),依赖倒置原则就是为了降低代码(类)之间的耦合性,提高代码的可维护性。“变更才显真功夫”,业务需求变更永无休止,在需求变更时才能够察觉到松耦合带来的好处。依赖倒...

2020-02-17 17:28:20 385

原创 一张数据表中找出a字段相同,b字段不同的数据

student表中数据如下:需要找出name相同,score不同的数据,sql如下:SELECT a.name,a.score from student a,student b where a.name = b.name and a.score != b.score GROUP BY a.name, a.score结果如下:...

2020-01-15 23:01:11 6491

原创 jdk1.8 stream流介绍以及使用

流简介流是jdk1.8引入的新特性,集合支持一个stream方法,它会返回一个流(接口定义在java.util.stream.Stream里),它允许你以声明性的方式处理数据集合,即你只需要对这些数据做什么(筛选,映射,查找、匹配等等),具体实现过程Stream库已经实现了。关于流的概念我们需要知道以下几点:流是"从支持数据处理操作的源生成的一系列元素";流利用内部迭代;流操作有两...

2020-01-01 23:13:54 939

原创 git常用命令总结

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。现在很多的项目都使用git来做版本控制管理,比如googled 开源项目android系统等git config:gitconfig--globaluser.name<name...

2019-08-05 23:39:20 123

原创 Mysql添加字段的两种方式

在项目开发中因为某些原因需要在现有数据表中新增字段,在新增字段是如果不指定新增字段的位置默认放在最后,下面介绍下分别通过navicat和sql语句添加字段的两种方式:方式一:通过navicat工具添加字段dept表如下图:点击添加栏位或插入栏位并填写对应值,添加注释:字符集和排序规则不用填写,保存后会使用表的默认设置:dept表右键选择对象信息,查看数据定义语句DD...

2019-08-04 12:46:21 8500

原创 斐波那契数列——台阶问题实现

问题:有个n阶台阶,一次可以走一个台阶,也可以走两个台阶,走到n阶台阶有多少种走法。 分析:遇到这种问题我们很容易想到递归的方法,但是这些数据的之间的关系还需要我们找到一个通项公式。可以采用归纳总结方法找出规律,不难发现这里的规律是a(n)=a(n-1)+a(n-2),算法的背后都有数学理论支撑,所以这里的数学理论就是斐波那契数列。斐波那契数列(sequence),又称黄金分割数列、...

2019-07-27 13:08:17 1392

原创 PowerDesigner之创建逻辑模型

power designer是能进行数据库设计的强大的软件,最初由Xiao-Yun Wang(王晓昀)在SDP Technologies公司开发完成,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。在这里,概念数据模型描述的是独立于数据库管理系统(...

2019-07-25 22:28:36 7066

原创 java导入/导出excel表格数据

开发中经常会涉及到数据导入、导出到excel表格,所以下面介绍下操作excel的方式:目前操作excel表格有两个框架:apache poi 和jexcelapi jxl,项目中poi用的更多所以这里介绍下poi。首先需要在pom文件中引入poi.jar包<dependency> <groupId>org.apache.poi</group...

2019-06-20 18:17:41 1162

原创 java设计模式之建造者模式

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的产品对象。建造者模式对象角色分析:抽象建造者角色(Builder),接口或抽象类具体建造者角色(ConcreteBuilder),Builder的实现类(内部组合了一个product,调用product的方法构造产品)指挥者角色(Director):用它来控制建造过程(调用建造者的方法),隔离用户与建造...

2019-06-05 21:51:44 78

转载 数据库底层原理

看到一篇很不错的数据库文章,拿过来分享一下:一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】,而且找到的那些文章都很短。现在如果你查找最近时髦...

2019-04-24 21:44:47 6135 3

原创 面试必备:一致性hash算法

为什么要用一致性hash算法?在学习一致性hash算法之前,首先要考虑下为什么要使用它,使用它能解决什么样的问题。带着问题去学习相信理解起来会更容易。大家都知道我们在使用redis分片技术,mycat对数据库进行分库分表时都会面临数据操作规则的问题;比如我们把一条记录存入redis3服务器,那么我们获取的时候如果不指定规则就会根据key在所有的redis服务器中进行遍历查找,显然这种情况是...

2019-04-16 12:21:25 1191

原创 jvm垃圾收集算法

我们知道JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,所以堆区和方法区是垃圾收集器要关注的部分。垃圾收集器在对堆区和方法区进行回收前,首先要确定这些区域的对象哪些可以被回收,哪些暂时还不能回收,这里用到了判断对象是否存活的算...

2019-04-08 21:00:16 101

原创 导入已存在的maven项目引起的资源路径访问不到问题

前段时间在导入已存在的maven项目并发布到Tomcat服务器运行的时候出现了问题,通过项目名作为路径访问不到对应的资源,而通过已存在的项目名称可以访问到发布的资源,比如说已存在的项目名称叫做abc,而发布到服务的项目名称叫做adb,通过localhost/adb/index访问不到对应资源,而通过localhost/abc/index可以访问到资源,很是纳闷。哪里出了问题,于是一顿操作猛如虎各种...

2019-02-28 17:56:56 2787 1

原创 jvm调优

看到别人整理的不错,拿来参考,如有侵权,请告知。链接如下:https://www.cnblogs.com/andy-zhou/p/5327288.html

2019-02-28 17:15:35 90

原创 HttpServlet所在的jar包

在做servlet程序开发时,会用到HttpServlet类,这个类所在的jar包是servlet-api.jar,HttpServlet.class的包名是javax.servlet.http。

2019-02-13 15:50:35 7648

原创 Mysql登录密码忘记怎么办,Mysql修改密码

在通过Mysql -uroot -pxxx命令登录Mysql的时候,有时会遇到以下错误:ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password: YES)出现这个错误一般来说是因为密码输入错误,如果长时间不登录忘记密码该怎么办呢,其实在Mysql数据库中有一张user表,该表中存放了用户名和密...

2019-01-25 09:40:20 225

原创 常用排序算法介绍分析(冒泡,选择,插入,快排...)

排序算法是每个程序员都应该掌握的基本技能,常见的排序算法有冒泡排序,快速排序,插入排序,选择排序,堆排序等。今天就来简单介绍下这几种排序方法。顾名思义冒泡排序就是相邻的两个数字进行比较,如果前边的值大于后边的值则进行值交换,以此类推遍历数组中的所有数字,每次遍历找出最大值的过程就好像气泡从水底向上冒出,所以叫做冒泡排序。下面给出冒泡排序的实现。冒泡排序实现第一种(基础冒泡排序):p...

2019-01-04 09:54:21 92

原创 c语言内存简析

首先来看一个可执行文件在磁盘存储的时候文件组成,size a.out:可以看到a.out文件分为,代码区,数据区,未初始化数据区3个部分。代码区程序被操作系统加载到内存的时候,所有的可执行程序(程序代码指令,常量字符串)都被加载到代码区,这个块内存在运行期间是不变的,函数是代码的一部分,也被放在代码区。全局初始化数据区/静态数据区包含了程序中明确被初始化的全局变量,静态变量...

2018-12-30 15:37:09 160

原创 Web前端三剑客之Html/Css/JavaScript

html:超文本标记语言,标准通用标记语言下的一个应用。"超文本"是真页面内可以包含图片,链接,甚至音乐,程序等非文字元素。超文本标记语言的结构包括头部分(head),和主体部分(body),其中头部分提供关于网页的信息,主体部分提供网页的具体内容。&lt;div&gt;标签:可定义文档中的分区,是一个块级元素,这意味着它的内容自动开始新的一行。&lt;hr&gt;标签:在html...

2018-12-24 22:29:53 272

原创 java常用设计模式学习

1.设计模式的概念设计模式是一套被反复使用,大多数人知晓的,经过分类编目的,代码设计经验的总结。它描述了在软件设计过程中一些不断重复发生的问题,以及该问题的解决方案。也就是说它是解决特定问题的一系列套路,是前辈们代码设计经验的总结,具有一定的普遍性,可以反复使用,其目的是为了提高代码的可重用性,可读性,可靠性。2.学习设计模式的意义可以提高程序员的思维能力,编程能力和设计能力。使程...

2018-12-20 14:46:03 151 1

android binder分析

binder是Android framework进程间通信机制。对android binder进行一部分的分析。

2018-10-25

锐捷破解补丁

破解校园网多网卡限制,可以是手机连接到无线网络,确实很实用哦

2013-08-26

空空如也

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

TA关注的人

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