- 博客(33)
- 资源 (17)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SSM框架注解总结
Spring中的注解: 注解含义: 用于创建对象的注解: 相当于:<bean id="" class=""> @Component注解: 作用: 把资源让spring来管理。...
2018-07-15 11:30:31
12821
10
原创 mysql面试题总结
mysql面试题总结Mysql中的myisam与innodb的区别? InnoDB存储引擎的四大特性? 什么是事务? 数据库事务的四大特性? 不考虑事务的隔离性,会发生几种问题? MySQL数据库提供的四种隔离级别? 有多少种日志? 事务是如何通过日志来实现的? 数据库的乐观锁和悲观锁是什么? 什么是存储过程?有哪些优缺点? 存储过程与触发器的区别? 索引是什么?有什么作用以及优缺点? 说一说MySQL数据库几个基本的索引类型? 使用索引查询一定能提高查询的性能吗?为什么?
2021-03-02 20:35:17
5073
4
原创 Java使用双重校验锁实现对象单例(懒汉式)
双重校验锁实现对象单例(线程安全)public class SingnleInstance { private volatile static SingnleInstance unquineInstance; public static SingnleInstance getUnquineInstance() { //先判断对象是否已经实例过,没有实例化过才进入加锁代码 if (unquineInstance == null) { //A
2021-02-19 14:09:26
490
原创 Java虚假唤醒及如何避免虚假唤醒
先给出一段虚假唤醒的代码如下:public class SynchronizeDemo2 { public static void main(String[] args) { Data2 data = new Data2(); new Thread(() -> { for (int i = 0; i < 5; i++) { try { data.in.
2021-01-13 10:50:08
2177
7
原创 java面试总结
JAVA基础部分:使用泛型的好处1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定
2020-11-10 20:29:44
541
2
原创 微服务网关限流(使用令牌桶算法基于redis的RateLimter限流算法)
网关限流网关可以做很多的事情,比如,限流,当我们的系统 被频繁的请求的时候,就有可能 将系统压垮,所以 为了解决这个问题,需要在每一个微服务中做限流操作,但是如果有了网关,那么就可以在网关系统做限流,因为所有的请求都需要先通过网关系统才能路由到微服务中。令牌桶算法令牌桶算法是比较常见的限流算法之一,大概描述如下: 1)所有的请求在处理之前都需要拿到一个可用的令牌才会被处理; 2)根据限流大小,设置按照一定的速率往桶里添加令牌; 3)桶设置最大的放置令牌限制,当桶满时、新添加的令牌就被丢.
2020-11-10 20:28:28
2810
原创 Spring核心思想IOC与AOP
Spring中IOC与DI思想概述: IOC即Inversion of Control理解为"控制反转"也可以理解为"依赖倒置",它是一种程序设计的思想,所谓的"控制反转"就是我们在没有使用框架以前,当我们要去创建一个对象的时候我们通常会使用new关键字去手动的创建一个对象出来,而我们使用了Spring框架以后我们就可以将我们创建对象的控制权进行转移,也就是将这种创建对象的权利转移到我们Spring中的IOC容器,由IOC容器在我们系统运行时进行动态的装载或者注入我们需要的对象,而其中动态的...
2020-09-19 16:36:57
210
原创 Java集合源码分析(ArrayList)
ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable这些接口。在我们学数据结构的时候就知道了线性表的顺序存储,插入删除元素的时间复杂度为O(n),求表长以及增加元素,取第 i 元素的时间复杂度为O(1)ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添...
2020-08-31 09:53:19
122
原创 算法中时间复杂度详解
在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度。这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。比如时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍。比如常见的遍历算法。 再比如时间复杂度O(n^2),就代表数据量增大n倍时,耗时增大n的平方倍,这是比线性更高的.
2020-08-27 21:38:08
2138
原创 Docker常用命令总结
docekr的常用的指令:操作docker系统常用的指令:l 启动docker:systemctl start docker l 停止docker:systemctl stop docker l 重启docker:systemctl restart docker l 查看docker状态:systemctl status docker l 开机启动:systemctl enable docker操作docker中的镜像的常用的操作的命令:l 查看本地的镜像:docker imag.
2020-08-27 21:36:22
168
原创 HashMap、ConcurrentHashMap源码分析
基本概念:HashMap的底层是通过数组+链表组成的一种数据结构。但是在JDK8以后为了提升map的查询效率加入了红黑树。是一种线程不安全的数据结构(底层的实现方法没有做线程同步),在多线程环境下,使用HashMap进行put操作会引起死循环,所以在并发情况下不能使用HashMap,支持null作为键和值,但是键的值不能重复,会覆盖原来的数据。hashMap的底层结构数组中每个地方都存储了key-value的数据实例,java7叫Entry在Java8中叫Node。JDK1.7以前HashMap的数
2020-08-27 21:21:38
162
原创 常见HTTP响应状态码对照表
GET安全且幂等获取表示变更时获取表示(缓存)HTTP响应状态码:200(OK) - 表示已在响应中发出204(无内容) - 资源有空表示301(Moved Permanently) - 资源的URI已被更新303(See Other) - 其他(如,负载均衡)304(not modified)- 资源未更改(缓存)400 (bad request)- 指代坏请求(如,参...
2020-03-17 19:32:08
696
原创 Java中的内存模型(JMM)
共享变量:堆内存在线程之间共享。存储在内存中的所有的实例域、静态域以及数组元素的共享变量。(局部变量,方法定义参数、异常处理器参数不会在线程之间共享,不会有内存可见性问题,不受内存模型的影响)。JMM定义了线程和主内存之间的抽象关系: 1)线程之间的共享变量存储在主内存(main memory)中 2)每个线程都有一个私有的本地内存(local memory),本地内存中存储了...
2020-03-17 19:19:05
190
原创 SSM框架启动报错:无法读取方案文档
主要报错代码: org.xml.sax.SAXParseException: schema_reference.4: 无法读取方案文档 'http://www.springframework.org/schema/rabbit/spring-rabbit-1.6.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是 <xsd:schema>...
2019-11-14 10:10:50
475
原创 SpringDatajpa下hibernate的ddl-auto的各种属性
jpa: hibernate: ddl-auto: jpa: hibernate: ddl-auto: update #每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新 ddl-auto: create #每次运行该程序,没有表格会新建表格,表内有数据会清空 ddl-auto: create-drop #----每次程序结束的时候会...
2019-08-13 14:36:10
660
原创 Docker技术栈简介
docker技术是一个容器和虚拟机具有相似的资源隔离和分配优势,但功能有所不同,虚拟机虚拟化的是硬件,而容器虚拟化的是操作系统,因此容器更容易移植,效率也更高。docker技术的特点:(1)上手快用户只需要几分钟,就可以把自己的程序“Docker化”。Docker依赖于“写时复制”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改”的境界。...
2019-08-01 14:03:36
527
原创 Redis使用cmd进入执行命令界面操作
Redis 是一个开源,高级的键值对的存储。它经常作为服务端的数据结构,它的键的数据类型能够是strings, hashs, lists, sets(无序集合) 和 sorted sets(有序集合).如果我们要在windows下使用redis作为学习之用,可以去https://github.com/dmajkic/redis/downloads 下载最新的windows下的redis,最新的...
2019-08-01 14:02:03
6163
3
原创 Oracle数据库设置主键自增长策略
首先使用建表语句创建一个SOFTCLASS表:CREATE TABLE "SCOTT"."SOFTCLASS" ( "ID" NUMBER NOT NULL , "NAME" VARCHAR2(255 BYTE) , "AGE" NUMBER , "SEX" VARCHAR2(255 BYTE) , "TEL" VARCHAR2(255 BYTE) , "MAIL_A...
2019-04-23 16:53:15
2117
原创 在React中使用cors进行跨域异步请求。
如果你的React的发布的端是localhost:3000而你要请求的数据的端口发布在localhost:8081,你就要考虑到请求的跨域问题,本篇我们介绍使用cors进行跨域异步请求。我们以Javaweb项目作为数据的提供者。第一步:在前端解决跨域问题,设置React中的fetch请求的参数: fetch('http://localhost:8081/ssm/user/getUserL...
2019-04-11 08:50:42
6699
2
原创 页面转发与重定向的区别
页面转发过程 客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的student_list.jsp,整个流程都是在服务器端完成的,而且是在同一个请求里面完成的,因此servlet和jsp共享的是同一个request,在servlet里面放的所有东西,在...
2018-12-22 15:53:29
456
转载 浅谈Springcloud和Dubbo的区别
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享spring Cloud的相关实施经验,这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言,还是有不少激励的。目前,Spring Cloud在国内的知名度并不高,在前阵子的求职过程中,与一些互联网公司的架构师、技术VP或者CTO在交流...
2018-12-21 22:47:02
223
原创 Mysql多表查询练习
-- 多表设计 `student, teacher, course`-- 教师表create table teacher( id int primary key auto_increment, name varchar(20));-- 学生表create table student( id int primary key auto_increment, ...
2018-12-11 14:42:30
384
1
原创 浅谈SpringCloud的主要组件
SpringCloud作为Spring家族中的一员,它将现在非常流行的一些技术整合到一起,实现了微服务中诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。其主要涉及的组件包括:1.Eureka:注册中心2.Zuul:服务网关3.Ribbon:负载均衡4.Feign:服务调用5.Hystix:熔断器如下图所示为组件中的调用的关系图...
2018-12-11 14:23:41
13828
1
原创 微服务保持事物的一致性
解决方案一: 使用中间表控制微服务之间的事物的一致性,即在A,B两个微服务中,是一个游戏买装备的业务流程,A微服务负责扣除用户的金币,B微服务负责生成相应的订单数据,在我们用户够买装备时,当A服务扣除金币成功时相应的B微服务有以下几处理结果态:①成功②失败③超时 当B微服务发生二或者是三中的一种时即事物不能保持一致性,此时我们可以采用中间表的机制实现微服务间事物的一致性。我们设计一个中间表用...
2018-11-23 17:23:02
1343
原创 linux查看日志命令
第一种:查看实时变化的日志(比较吃内存)最常用的:tail -f filename (默认最后10行,相当于增加参数 -n 10)Ctrl+c 是退出tail命令其他情况:tail -n 20 filename (显示filename最后20行)tail -n +5 filename (从第5行开始显示文件第二种:搜索关键字附近的日志最常用的:cat -n fi...
2018-11-23 17:21:54
3343
原创 乐观锁与悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其...
2018-11-13 16:02:29
113
原创 关于TimeUnit使用和解析
TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段 主要作用 时间颗粒度转换 延时1.常用的颗粒度TimeUnit.DAYS //天TimeUnit.HOURS //小时TimeUnit.MINUTES //分钟TimeUnit.SECONDS ...
2018-08-24 12:22:11
1377
原创 前端发出的请求报400、403、500常见的错误。
常见的400错误: 前后端交互的方法参数不一致,发生此错误需要仔细检查前端传递的参数数据的参数名、参数数目、参数类型是否与后端保持一致。常见的403错误: 403错误,是一种在网站访问过程中,常见的错误提示。403错误,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误。前后端分离开发项目跨域问题比较容易...
2018-07-19 11:41:27
23840
1
原创 SSM框架的整合
SSM框架的整合:1.使用技术 Spring+ SpringMVC + Mybatis Maven 数据库:mysql2.使用工具 3.整合步骤 3.1我们使用idea分别搭建一个用于管理jar包的maven项目和我们需要整合SSM框架的maven项目。具体的项目结...
2018-07-17 17:41:27
968
原创 idea为maven项目配置全局的属性
idea为maven项目配置全局的属性,具体的步骤如图所示: 然后进行如下操作:此八步即可完成maven全局属性配置。
2018-07-17 16:33:11
2394
原创 idea使用maven创建web工程
Maven创建一个jar工程 步骤一:创建工程:勾选时使用骨架,不勾选时不用骨架:一般可以不用勾选 下一步: 下一步:最后: 步骤二:编写代码测试 添加一个类进行测试:...
2018-07-17 16:18:56
242
原创 关于java.io.FileNotFoundException: class path resource [spring/springmvc.xml]异常的问题解决
web.xml配置文件如下图所示:但是老是报出以下的异常:org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [org.spring/applicationContext.xml]; neste...
2018-07-17 01:59:27
32076
1
Spring+Springmvc+Mybatis+Oracle+Redis
2019-04-29
maven管理的SSM框架的整合
2018-07-17
SSM框架实现多文件上传,框架可以直接开发项目
2018-07-14
大家有推荐的开源的工作流引擎吗?
2021-11-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人