04 2020 档案
摘要:我的场景是前台为react也就是基于axios进行请求的 后台就是通俗的java后台服务,具体实现步骤如下 1)首先前台进行发送登录请求,后台进行登录校验 2)后台生成token,返回给前台,前台可以将之保存在浏览器中的sessionStorage或者localStorage 3)后台将之token
阅读全文
摘要:https://blog.csdn.net/qq_35443997/article/details/99708203
阅读全文
摘要:缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,接着查询数据库也无法查询出结果,因此也不会写入到缓存中,这将会导致每个查询都会去请求数据库,造成缓存穿透; 缓存雪崩 缓存雪崩是指,由于缓存层承载着大量请求,有效的保护了存储层,但是如果缓存层由于某些原因整体不能提供服务,于是所有的请求
阅读全文
摘要:悲观锁(Pessimistic Lock) 当我们要对一个数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发。这种借助数据库锁机制,在修改数据之前先锁定,再修改的方式被称之为悲观并发控制(是因为这是一种对数据的修改抱有悲观态度的并发控制方式。我们
阅读全文
摘要:超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HT
阅读全文
摘要:一:概念 视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构。而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,这些表被称为基表。数据库中只在数据字典中存储对视图的定义。视图是不包含任何数据的,只是对基
阅读全文
摘要:引导(Bootstrap)类加载器 引导类加载器主要加载的是JVM自身需要的类,这个类加载使用C++语言实现的,是虚拟机自身的一部分,它负责将 <JAVA_HOME>/lib路径下的核心类库或-Xbootclasspath参数指定的路径下的jar包加载到内存中,注意必由于虚拟机是按照文件名识别加载j
阅读全文
摘要:1、轮询 将所有请求,依次分发到每台服务器上,适合服务器硬件相同的场景。 1)优点:服务器请求数目相同; 2)缺点:服务器压力不一样,不适合服务器配置不同的情况; 2、随机 请求随机分配到各台服务器上。 1)优点:使用简单; 2)缺点:不适合机器配置不同的场景 3、最少链接 将请求分配到连接数最少的
阅读全文
摘要:1.采用DNS轮询转发的方式:一个域名配置对应多台ip地址: 优点: 将负载均衡的工作丢给了DNS服务器去做,省去了网站管理人员的维护工作 对于真实地址的服务器,不需要做任何的配置 简单易用,成本低,而且方便灵活 服务器可以放在任何的地方 同时,DNS服务还可以做基于地理位置的解析,可以让一个距离最
阅读全文
摘要:1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类
阅读全文
摘要:(1)概念: ① 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库 中。 ② 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过 程带有参数)来执行它。 ③ 存储过程是由流控制和SQL语句书写的过程,这个过程经编
阅读全文
摘要:1、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|
阅读全文
摘要:1、 普通用户与系统管理员用户的权限要有严格的区分。 如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许执行呢?由于Drop语句关系到数据库的基本对象,故要操作这个语句用户必须有相关的权限。在权限设计中,对于终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、
阅读全文
摘要:1.#{} 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。 如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".2.$将传入的数据直接显示生成在sq
阅读全文
摘要:而两者的主要区别包括以下几个方面: 1、Filter是依赖于Servlet容器,属于Servlet规范的一部分,而拦截器则是独立存在的,可以在任何情况下使用。 2、Filter的执行由Servlet容器回调完成,而拦截器通常通过动态代理的方式来执行。 3、Filter的生命周期由Servlet容器管
阅读全文
摘要:拦截器:Interceptor 在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。比如日志,安全等。一般拦截器方法都是通过动态代理的方式实现。可以通过它来进行权限验证,或者判断用户是否登陆,或者是像12306 判
阅读全文
摘要:Filter是Servlet技术中最实用的技术,Web开发人员通过Filter技术,最常见的字符集编码的过滤,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩
阅读全文
摘要:监听器:listener是servlet规范中定义的一种特殊类。用于监听servletContext、HttpSession和servletRequest等域对象的创建和销毁事件。监听域对象的属性发生修改的事件。 用于在事件发生前、发生后做一些必要的处理。其主要可用于以下方面: 1、统计在线人数和在
阅读全文
摘要:一.随机数: 1.数学概念,所有编程工具几乎都有基于数学库的随机方法 2.Math数学库类的静态random方法 返回的是0~1的随机浮点数 3.不包含0和1 4.扩大范围可以用乘和加的方式 5.要整数,可以取整,可以使用数学库的向上,向下,四舍五入的方式 6.再将整数可以作为其他用途 7.java
阅读全文
摘要:因为都是set的子类,Set具有元素不可重复性,所以TreeSet和hashset都不可放2个相同的元素 TreeSet判断两个对象不相等的方式是两个对象通过equals方法返回false,或者通过CompareTo方法比较没有返回0 HashSet集合不能存储重复的元素,那么元素之间是否重复,Ha
阅读全文
摘要:一.java.lang.Math random():产生0,1之间的double数值 ceil():向上取整 floor:向下取整 round:四舍五入
阅读全文
摘要:一、简介SpringBoot使用一个全局的配置文件,配置文件名是固定的; 1.application.properties 2.application.yml(或者是yaml) 配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;YAML(YAML
阅读全文
摘要:1、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 2、修改配置文件applicat
阅读全文
摘要:1.导入依赖: <!--注意:spring boot对jsp的支持不是很好,在使用spring boot自带tomcat的同时,还需要引入另外的一个tomcat,以来如下所示,且scope属性需要被注释掉 --> <!--注掉的原因是:maven默认scope是compile,表示打包时会把此包打入
阅读全文
摘要:Thymeleaf对比jsp最大的优势在于: 它是静态的html资源,不需要进行编译成servlet运行在tomcat服务器上,前端ui可以在其上直接进行美工 开始集成Thymeleaf 第一步:引入依赖(thymeleaf对应的starter),IDEA创建springboot模板时可以在可视化向
阅读全文
摘要:1、直接把请求参数写在Controller相应的方法的形参中,此场景适用于请求参数较少的情况 /** * 1. 直接把请求参数写在 Controller 相应的方法的形参中 * @param username * @param password * @return */ @RequestMappin
阅读全文
摘要:https://www.cnblogs.com/kirin1105916774/p/11298550.html
阅读全文
摘要:四次挥手可以看成是两个二次挥手。 当客户端向服务器发送的数据已经发送完成了,那么客户端此时想服务端发送一个断开连接的请求。假设服务器接收到了断开请求,那么它立即回复一个ACK报文,如果客户端接收到了ACK,那么客户端就不在发送断开连接请求了,也就是开始等待(这里错误处理和三次握手差不多,也就不详细说
阅读全文
摘要:1.当线程在活动之前或活动期间处于正在等待、休眠或占用状态当该线程被中断时,抛出该异常。 1)java.lang.Object 类的 wait 方法 使线程进入堵塞状态 2)java.lang.Thread 类的 sleep 方法 使线程进入休眠状态 3)java.lang.Thread 类的 jo
阅读全文
摘要:简单的说可以分为六步:1.DNS查询 / 解析、2.TCP连接: TCP三次握手、3.发送请求、4.返回响应、5.渲染页面、6.断开连接:TCP四次挥手 页面最终渲染完成经历了以下过程☞ 在浏览器中输入url 用户输入url,比如http://www.google.com。 其中http是一个简单的
阅读全文
摘要:1.下面哪个方法会改变原数组:(splice) concat:在原数组上复制一个副本.返回拼接后的数组 join:将数组里面的内容按格式拼接成字符串,返回字符串,不改变 splice:先把参数一到参数二之间的数除去再返回,然后把参数三的数据放到参数一的位置.返回删除的数组,改变原数组 slice:可
阅读全文
摘要:第一范式: 对于表中的每一行,必须且仅仅有唯一的行值.在一行中的每一列仅有唯一的值并且具有原子性。(第一范式是通过把重复的组放到每个独立的表中,把这些表通过一对多关联联系起来这种方式来消除重复组的。) 即无重复列。也就是说每个列的属性值不能再分,比如cusLinkInfo还可在分为cusAddres
阅读全文
摘要:强类型:偏向于不容忍隐式类型转换。譬如说haskell的int就不能变成double 弱类型:偏向于容忍隐式类型转换。譬如说C语言的int可以变成double 静态类型:编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。 它的数据类型是在编译其间检查的,也就是说在写程序时要声明
阅读全文
摘要:System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: Copy public static native void arraycopy(Object src,int srcPos,Object dest, int destPos,int lengt
阅读全文
摘要:ArrayList总结 底层数组实现,使用默认构造方法初始化出来的容量是10 扩容的长度是在原长度基础上加二分之一 实现了RandomAccess接口,底层又是数组,get读取元素性能很好 线程不安全,所有的方法均不是同步方法也没有加锁,因此多线程下慎用 顺序添加很方便 删除和插入需要复制数组 性能
阅读全文
摘要:1.HTTP请求的常用方法有:GET方法、POST方法、HEAD方法、PUT方法、DELETE方法、CONNECT方法、OPTIONS方法、TRACE方法。 什么是HTTP? HTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。 客户端(浏览器)
阅读全文
摘要:其中的数据结构都是数组加链表组成,key为数组,value为链表 在Java中,保存数据有两种比较简单的数据结构:数组和链表。数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。上面我们提到过,常用的哈希函数的冲突解决办法中有一种方法叫做链地址法,其实就是将数组和链表组
阅读全文
摘要:MD5用途: MD5不可逆的原因是其是一种散列函数,使用的是hash算法,在计算过程中原文的部分信息是丢失了的 1.防止被篡改: 1)比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。 2)比如我提
阅读全文
摘要:哈希函数要做的事情是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射。所谓映射就是一一对应。一个可靠的哈希算法要满足三点。 第一是安全,给定数据 M 容易算出哈希值 X ,而给定 X 不能算出 M ,或者说哈希算法应该是一个单向算法。 第二是独一无二,两个不同的数据,要拥有不相同的哈希。
阅读全文
摘要:class是一切反射的根源,JAVA反射机制是在运行状态中,对于任何一个类,通过反射都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 反射指的是在运行时能够分析类的能力的程序。 反射机制可以
阅读全文
摘要:“==”运算符(两个操作数的类型不相同时) 如果一个值是null,另一个值是undefined,则它们相等 如果一个值是数字,另一个值是字符串,先将字符串转换为数学,然后使用转换后的值进行比较。 如果其中一个值是true,则将其转换为1再进行比较。如果其中的一个值是false,则将其转换为0再进行比
阅读全文
摘要:老年代(Old generation) 对象没有变得不可达,并且从新生代中存活下来,会被拷贝到这里。其所占用的空间要比新生代多。也正由于其相对较大的空间,发生在老年代上的GC要比新生代少得多。对象从老年代中消失的过程,我们称之为**”major GC“ ** minorGC 是清理整合YouGen的
阅读全文
摘要:1、什么是DOCTYPE DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。其中的DTD(例如xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。要
阅读全文
摘要:动态包含 <jsp:include page=" " flush="true"/> 比如a.jsp动态导入了b.jsp,只有当服务器访问a.jsp中的b.jsp模块时,java才会编译执行b.jsp文件,将其结果动态包含进来 1、会将多个jsp页面分别再编写成java文件,编译成class文件。 2
阅读全文
摘要:1.jsp页面中的注释 comment 第一种: <!-- html/xml中的注释方式 --> 特点: 1.用户在浏览器中右键查看源代码 [能] 看到这个注释。 2.在服务器端,这个jsp页面被翻译成的java文件中 [能] 看到这个注释. 注意: 【jsp动作元素】 放在这种注释里面依旧有用,【
阅读全文
摘要:强引用:(StrongReference) 强引用指普通的对象引用 例如: StringBuffer str = new StringBuffer("hello world"); 局部变量str会被放到栈里,而StringBuffer实例对象会被放在堆内,局部变量str指向堆内的StringBuff
阅读全文
摘要:熔断器: 快速返回请求,如果服务占用率已满 1.Eureka Server:注册中心 1)提供服务注册和发现 2)Service Provider(服务提供方,将自身服务注册到Eureka,从而使服务消费方能够找到) 3)Service Consumer(服务消费方,从Eureka获取注册服务列表,
阅读全文
摘要:validator 这个验证在if-else里,每个判断情况都要加callback,不然会导致所有rule验证失效,页面上没填都不提示。 比如这样:
阅读全文
摘要:一.Java堆从GC的角度去看,可以分为三个区域,分为是新生代,老年代,永久代(是方法区的实现,但是物理逻辑是和堆在一起的) 其中新生代占1/3的堆空间,老年代占2/3的堆空间,永久代占得很少,就不进行划分了,他也占了,但是很少很少,新生代占的1/3又分为Eden区(占比8/10),Servivor
阅读全文
摘要:1.方法区和永久代的关系 涉及到内存模型时,往往会提到永久代,那么它和方法区又是什么关系呢?《Java虚拟机规范》只是规定了有方法区这么个概念和它的作用,并没有规定如何去实现它。那么,在不同的 JVM 上方法区的实现肯定是不同的了。 同时大多数用的JVM都是Sun公司的HotSpot。在HotSpo
阅读全文
摘要:SpringAOP的在实际应用中场景有哪些?主要就是事务和日志还有权限认证这一部分 1)Authentication 权限 2)Caching 缓存 3)Context passing 内容传递 4)Error handling 错误处理 5)Lazy loading 懒加载 6)Debugging
阅读全文
摘要:1.数据的集中语言: 1)DML:Data Manipulation Language(数据操纵语言) insert,update,update 2)DQL:Data Query Language(数据查询语句) select 3)DDL:Data Definition Language(数据定义语
阅读全文