- 博客(79)
- 资源 (1)
- 收藏
- 关注
原创 初学git的一些问题
刚入职就开始用git,几次提交代码都出问题。记录一些可能别人觉得简单,不过我还是很纠结的事,查了很多次百度,也没完全搞清楚,最后还是问了我的同事才解决:)指令的作用范围git add添加工作区代码到暂存区git commit提交工作区代码到本地仓库只有git pull、git push是对远程仓库的代码有影响的操作。git push将本地仓库代码推送到远程仓库,git pull拉取远程仓库代码到工作区。在不指定远程分支的情况下,默认本地和远程分支按名称对应进行推送和拉取,即如果目前在dev分支,
2021-07-31 09:48:12
121
原创 SpringCloud集成swagger报错Internal Server Error http://localhost/project-service/v2/api-docs
使用springcloud gateway集成swagger,访问http://localhost:网关接口/swagger-ui.html出现:原因是网关的路由断言没有路径剥离,我只是想访问的路径少一个服务名而已:但此时服务swagger json文件的调用路径是http://localhost:8000/v2/api-docs,如果不剥离路径,网关路由后将访问http://localhost:8000/product/v2/api-docs。贴一个网关代码:SwaggerHandler:@
2021-05-11 21:44:02
3887
原创 SpringCloud
目录系统架构演变核心概念SpringCloud介绍模拟微服务环境注册中心Eureka系统架构演变单体应用架构垂直应用架构分布式架构4. SOA架构5. 微服务架构为了解决SOA架构抽取服务粒度较大的问题,尽可能的拆分服务层;为了解决耦合度较高的问题,客户端和服务层之间使用轻量级协议。SOA与微服务的关系:核心概念流行的调用技术:RPC,httpRPC(Remote Procedure Call)一种进程间通信方式,允许像调用本地服务一样调用远程服务。RPC框架的主
2021-02-16 10:44:29
357
1
原创 SpringBoot
SpringBoot简介Spring Boot 是所有基于 Spring 开发的项目的起点。SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了很多的技术,提供 了JavaEE的大整合。主要特性SpringBoot Starter:将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中。使编码变得简单:SpringBoot采用JavaConfig的方式对Spr
2021-01-10 17:41:51
332
1
原创 Vue.js:渐进式JavaScript框架
vue简介JavaScript框架简化dom操作响应式数据操作使用<!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><!-- 生产环境版本,优化了尺寸和速度 --><script src="https://cdn.jsdelivr.net/npm/vue"></script&
2021-01-02 15:26:32
195
2
原创 B树
23树23树是由二结点和三结点构成的树23树的所有叶子结点都在同一层有两个子结点的结点叫做二结点,二结点要么没有子结点,要么有两个子结点有三个子结点的结点叫做三结点,三结点要么没有子结点,要么有三个子结点作为B树的一种,所有叶子结点在同一层结点插入的过程:B树B+树B*树...
2020-10-22 22:20:19
149
原创 JavaSE基础
面向对象面向对象是以一种“组织者”的角度思考问题,面向过程是以“执行者”的角度思考问题。面向对象更多考虑如何选择合适的工具,把需要的对象组合在一起。java中的封装、继承、和多态也:狭义的封装即封装一个类,其属性为private,对外提供get、set方法;广义的封装比如封装线程池功能的c3p0等。继承是将共性抽取出来,不同的子类继承父类的功能,同时也可以扩展自己的功能,提高了程序的复用性。多态是父类引用指向不同的子类对象,具有不同的表现。jdk、jre、jvmJDK:java开发工具包JRE:j
2020-09-25 23:04:56
170
原创 线程
在一个应用程序中,我们需要多次使用线程,也就意味着,我们需要多次创建并销毁线程。而创建并销毁线程的过程势必会消耗内存。而在Java中,内存资源是及其宝贵的,所以,我们就提出了线程池的概念。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。组成一个线程池包括以下四个基本组成部分:线程池管理器(ThreadPool):用于创建并管理线程池,包括:创建线程池,销毁线程池,.
2020-09-20 18:03:32
127
原创 Volatile同步、各种锁
目录VolatileJava内存模型Volatile的作用能保证可见性不能完全保证原子性一定程度上保证有序性VolatileJava内存模型java内存模型规定所有变量都存在主存当中,每个线程又都有自己的工作内存,线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。并发编程的三个概念:原子性:一个操作要么全部执行并且执行的过程中不会被任何因素打断,要么就都不执行。可见性:当多个线程指向同一变量时,一个线程修改了这个变量的值,其他线程能够
2020-09-18 10:56:30
296
原创 Java容器
目录Collection、Collections区别List、Set、Map区别HashMap与HashTable区别HashMap详解HashTable详解ArrayList、Vector区别Array、ArrayList区别Queue中 poll() 和 remove() 的区别线程安全的集合常用容器:Collection、Collections区别java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collectio
2020-09-16 13:25:02
145
原创 计算机网络
http响应码301:永久性转移302:暂时性转移转发和重定向forward(转发):服务端接收请求后,替浏览器向另一个URL发送请求,因此浏览器只发送了一次请求。地址栏在转发后不改变。redirect(重定向):服务端接收第一次请求后,让浏览器向另一个URL再发送请求,因此浏览器发送了两次请求。地址栏在重定向之后会发生改变。TCP和UDP区别TCP面向连接,需要三次握手才能建立连接;UDP是无连接的,即发送数据之前不需要建立连接。TCP提供可靠的服务,通过TCP传送的数据,无差错、不
2020-09-15 19:57:34
227
原创 设计模式
目录单例模式观察者模式装饰者模式适配器模式工厂模式简单工厂模式工厂方法模式抽象工厂模式单例模式在一个应用程序中,某个类的实例对象只有一个,没有办法去new,因为构造器是被private修饰的,一般通过getInstance()方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例。懒汉式(线程不安全)public class Singleton{ private static Singleton instance; private Singleton(){}
2020-09-14 18:37:26
127
原创 JVM
主要组成类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)作用:首先通过类加载器把java代码转换成字节码,运行时数据区再把字节码加载到内存中,而字节码文件只是JVM的一套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎。...
2020-09-14 15:05:18
117
原创 Mysql
目录数据库的三大范式ACID数据库事务的隔离级别char和varchar的区别float和double的区别MyISAM、InnoDB内连接、外连接索引的实现数据库的三大范式第一范式:强调列的原子性,即数据库表的每一列都是不可分割的原子数据项第二范式:要求实体的属性完全依赖于主关键字第三范式:任何非主属性不依赖于其他非主属性ACIDAtomicity(原子性):一个事务中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被rollback到事务开
2020-09-12 22:13:59
210
原创 Sring、SpringMVC、Mybatis
Spring轻量:从大小到开销都是轻量的IOC控制反转IOC:引入了“第三方”——IOC容器,使原有对象之间没有了耦合关系,全部对象的控制权都上缴给第三方,所以IOC容器成为整个系统的关键核心,它起到了一种类似“粘合剂”的作用。此时,如果对象A运行时需要获取对象B,不再像原来一样主动创建对象B或者使用已经创建的对象B,而是IOC主动创建一个容器注入到对象A需要的地方,A的控制权因此“反转”了。AOP面向切面编程AOP:是面向对象编程OOP的补充和完善。OOP引入封装、继承和多态来建立一种对象层次结
2020-09-10 13:05:44
161
原创 查找算法汇总
目录顺序(线性)查找二分查找改进:找到多个目标插值查找斐波那契查找顺序(线性)查找就是遍历的意思。。。二分查找要求:有序数组思路:mid=(left+right)/2当target>mid向右,反之向左递归返回条件left>right//此处数组是从小到大public static int binarySearch(int[] arr,int left,int left,int find){ if(left>right){ return -1; } int mi
2020-09-08 21:56:49
106
原创 linux入门
Ansible无主无从的服务器主机模块核心模块自定义模块使用时将计算机加入计算机清单ssh协议完成对批量主机的连接可以使用playbook完成复杂应用的部署工作安装ansible在ansible controller(操作机)安装安装epel-release YUM源(为了获得更新版本的ansible)[root@ansiblecontroller ~]# yum -y install epel -release安装ansible[root@ansiblecontro
2020-09-07 14:02:16
89
原创 排序算法汇总
目录插入排序直接插入希尔排序选择排序简单选择排序堆排序交换排序冒泡排序快速排序归并排序插入排序直接插入把n个待排序的元素看成一个有序表和一个无序表。开始时有序表中只包含一个元素,即第一个元素,无序表中有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它插入到有序表中适当位置。for(int i=1;i<arr.length;i++){ int insertVal=arr[i];//待插入的数 int insertIndex=i-1;//记录互换数下标(初始为待插入数前面一个数的下
2020-09-05 16:14:41
217
原创 八皇后回溯
八皇后问题:在8x8格棋盘上摆放8个皇后,任意两个皇后不能处于同一行、同一列、同一斜线上,问有多少种摆法。思路:第一个皇后放在第一行第一列第二个皇后从第二行第一列开始检测,如果不行,放在第二列、第三列、…一直到放完所有皇后,如果中途发现有冲突,回溯改变先前放置的皇后位置使用一个一位数组表示,下标表示第几个皇后,值表示皇后放置的列数public class Queen{int max=8;//皇后个数int[] array=new int[max];//每个皇后的位置//遍历第n个皇后的
2020-09-03 17:01:25
119
原创 迷宫回溯
回溯的思想:当一条路走不通,就回到这条路的起点,走下一条路。使用递归来实现。public static void main(String[] args){ int [][]map=new int[8][7]; //使用1表示墙 for(int i=0;i<7;i++){ map[0][i]=1; map[7][i]=1; } for(int i=0;i<8;i++){ map[i][0]=1; map[i][6]=1; } //设置挡板 map[3][1]=1;
2020-09-03 16:33:39
100
原创 加入SpringMVC以后页面css样式没有了
写了个页面用了css样式,好不容易弄好了,我寻思着开始做登录跳转功能,结果写了SpringMVC以后页面就404,鼓捣了半天(差不多一天了都)换了n个包,终于包不冲突了(其实有时候手动导包还不容易出错),结果页面样式又没了。然后我又重新写了一遍,发现问题好像在web.xml: <!-- 核心控制器 --><servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org
2020-07-30 15:34:34
1271
2
原创 第一个只出现一次的字符
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)分析:因为字母 A-Z 的ASCII码是65-90,a-z的ASCII码是96-122,使用一个长度为58(122-65+1)的数组,第一次遍历时给数组赋值,第二次遍历返回数值为1的数所在的位置。public class Solution { public int FirstNotRepeatingChar(Strin
2020-07-27 21:52:14
111
原创 时间复杂度和空间复杂度
时间复杂度时间复杂度O:代表随次数增长所用时间增长的趋势(渐进时间复杂度T(n)=O(f(n)),f(n)代表执行总次数,O代表正比例关系)例如常见的循环:for(i=0;i<n;i++){ x++;}进入时执行一次i,此后每一次循环执行x<n判断、x++、i++,总共执行3n+1次,时间复杂度为O(3n+1),考虑n趋近无穷,O(3n+1)=O(n)然后是常见的二维数组循环:for(i=0;i<n;i++){ for(j=0;j<n;j++){ a[i][
2020-07-26 22:48:02
109
原创 数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。有序数组——二分法考虑到递增和递减两种情况,用一个 flag 来表示,总结起来两个指针的移动有四种情况:k<array[mid]&&flag==true(即递增)==> index1=mid-1;k<array[mid]&&flag==false(递减)==> index2=mid+1;k>array[mid]&&flag==true(递增)==> index2=mid+1;
2020-07-24 22:45:00
107
原创 Mybatis
MyBatis是一个apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了Google code,并改名为MyBatis,2013年11月迁移到GitHub。MyBatis是一个实现了数据持久化的开源框架,就是对JDBC进行封装。优点:与jdbc相比减少代码量是最简单的持久化框架,小巧且简单易学灵活,不对现有程序和数据库设计造成影响。SQL写在xml里,从程序代码彻底分离,降低耦合度提供XML标签,支持编写动态SQL语句提供映
2020-07-24 18:13:27
176
原创 平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树。完全遍历:public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if(root==null) return true; if(!(Math.abs(getDepth(root.left,0)-getDepth(root.right,0))<=1))
2020-07-23 21:13:38
75
转载 java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.
主要原因8.x版本的验证模块和之前版本不同:5.x版本是:default_authentication_plugin=mysql_native_password8.x版本就是:default_authentication_plugin=caching_sha2_password解决:更新mysql驱动的jar版本,可以修改为8.0.19版本<dependency> <groupId>mysql</groupId> <artifactId>mysq
2020-07-22 11:45:47
192
转载 java.sql.SQLException: The server time zone value ‘�й���ʱ��‘ is un
使用数据库报错:java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time z
2020-07-22 11:41:12
956
原创 SpringMVC
M 装载传输数据V 显示数据C 控制数据Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的MVC 框架之一。Spring MVC 通过一套 MVC 注解,让 POJO(plain old java object普通java对象)成为处理请求的控制器,而无须实现任何接口。支持 REST 风格的 URL 请求。采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。搭建过程导入jar在web.xml中配置核心控制器DispatcherS
2020-07-21 15:10:15
116
原创 Maven
Maven是专门用于构建和管理Java相关项目的工具。maven风格的项目,首先把所有的jar包都放在"仓库“ 里,然后哪个项目需要用到这个jar包,只需要给出jar包的名称和版本号就行了。 这样jar包就实现了共享。使用Maven管理的Java 项目都有着相同的项目结构有一个pom.xml 用于维护当前项目都用了哪些jar包所有的java代码都放在 src/main/java 下面所有的测试代码都放在src/test/java 下面Maven下载和配置官网下载地址下载完成后,与jdk
2020-07-18 20:45:14
158
原创 正则表达式匹配
请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配分析:当模式中的第二个字符不是“*”时:1、如果字符串第一个字符和模式中的第一个字符相匹配,那么字符串和模式都后移一个字符,然后匹配剩余的。2、如果 字符串第一个字符和模式中的第一个字符相不匹配,直接返回false。
2020-07-17 22:32:28
156
原创 使用BootStrap的img样式时图片无法显示
实验BootStrap产生圆角、圆形、缩略图图片时,刚开始用的E盘绝对路径,发现浏览器里图片无法显示:然后又在项目下直接建了个文件夹,用c标签写路径,仍然是裂开的打开浏览器的开发者工具,发现报错是:百度了一下这个的意思是:降级时不推荐表示从https协议降为http协议时不发送referrer给跳转网站的服务器。看来就是这种地址浏览器没有权限访问。最后直接放在webapp下面,就能显示了:<body><img src="<c:url value='1.JPG'/&
2020-07-12 15:28:04
2023
原创 【JavaWeb】JQuery
目录基本语法对CSS样式的操作选择器筛选器效果事件加载键盘鼠标JQuery是一个javascript的框架,是对javascript的封装导包:jquery.min.js使用:<script src="包的路径/jquery.min.js"></script>如果把包与测试的html放在同一目录直接写jquery.min.js基本语法文档加载:<script>$(function(){//表示文档加载,防止文档在完全加载前运行JQuery代码 doc
2020-07-12 11:58:57
143
原创 【JavaWeb】21 AJAX/XStream/JSON
ajax:asynchronous javascript and xml:异步的js和xml异步交互和同步交互同步:发送请求后需等待服务器响应结束,才能发送第二个请求同步:发送一个请求后,无需等待服务器的响应就能发送第二个请求。可以使用js来接收服务器的响应,局部刷新...
2020-07-10 21:06:32
1006
原创 剪绳子
public class Solution { public int cutRope(int t) { if(t==2||t==3) return t-1; else if(t%3==0) return (int) (Math.pow(3,t/3)); else if(t%3==1) return (int) (Math.pow(3,(t-4)/3)*4); else .
2020-07-09 22:15:38
91
原创 【JavaWeb】20 上传下载
上传对表单的限制:method=“post”enctype=“multipart/form-data”添加文件表单项<input type="file" name="xxx"><form action="xxx" method="post" enctype="multipart/form-data"></form>上传对Servlet的限制:request.getParameter("xxx")返回的是String,在表单为enctype="mult
2020-07-08 17:09:33
198
原创 【JavaWeb】19 过滤器
JavaWeb三大组件ServletListenerFilter除了2个感知监听器,都需要在web.xml中进行配置过滤器会在一组资源(jsp、servlet、css、html等)的前面执行有拦截请求的能力编写:写一个类继承Filter接口在web.xml中进行配置...
2020-07-07 12:52:36
135
原创 复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)查了一下,深度拷贝是指内存地址不同,也就是要new对象出来。平时做节点的赋值都是浅拷贝。深度拷贝两节点之间互不影响,浅拷贝即使改变复制品原节点也会被改变。思路:将拷贝出来的节点就插入原节点之后,便于给random赋值,最后拆分两链表public class Soluti
2020-07-06 22:19:56
78
原创 【JavaWeb】18 JDBC分页/监听器/session
分页第N页/共M页 首页 上一页 1 2 3 4 5 6 7… 下一页 尾页页面的数据都是Servlet传递来的Servlet:当前页:pageCode如果页面没有传递当前页码,默认为第一页总页数:totalPages总记录数/每页记录数总记录数:当前页数据:beanList...
2020-07-03 16:15:29
115
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人