java
文章平均质量分 93
heroleader
这个作者很懒,什么都没留下…
展开
-
Spring、SpringMVC、SpringBoot的关系
一、概念1、SpringSpring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应)请求,获取表单参数,表单转载 2021-03-17 15:19:51 · 568 阅读 · 0 评论 -
Spring mvc解决跨域请求:Response to preflight request doesn‘t pass access control check
在nginx跨域请求cors配置如下:location / { add_header 'Access-Control-Allow-Origin' 'https://api.xxxx.com'; add_header "Access-Control-Allow-Credentials" "true"; add_header "Access-Control-Allow-Headers" "x-requested转载 2020-12-10 16:01:55 · 1399 阅读 · 0 评论 -
synchronized在JDK1.6之后的改进及具体对象锁升级过程
在java同步代码快中,synchronized的使用方式无非有两个:通过对一个对象进行加锁来实现同步,如下面代码。synchronized(lockObject){ //代码}对一个方法进行synchronized声明,进而对一个方法进行加锁来实现同步。如下面代码public synchornized void test(){ //代码}但这里需要指出的是,无论是对一个对象进行加锁还是对一个方法进行加锁,实际上,都是对对象进行加锁。也就是说,对于方式2,实际上虚转载 2020-07-19 15:56:33 · 1413 阅读 · 0 评论 -
Java CAS底层实现原理实例详解
一、CAS(compareAndSwap)的概念CAS,全称Compare And Swap(比较与交换),解决多线程并行情况下使用锁造成性能损耗的一种机制。CAS(V, A, B),V为内存地址、A为预期原值,B为新值。如果内存地址的值与预期原值相匹配,那么将该位置值更新为新值。否则,说明已经被其他线程更新,处理器不做任何操作;无论哪种情况,它都会在 CAS 指令之前返回该位置的值。而我们可以使用自旋锁,循环CAS,重新读取该变量再尝试再次修改该变量,也可以放弃操作。二、CAS(compa转载 2020-07-18 15:39:24 · 2494 阅读 · 0 评论 -
java中为什么要重写 hashcode 和 equals 方法?
1. 通过Hash算法来了解HashMap对象的高效性在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找次数接近于1,代价相当小,关键是在Hash表里,存放在其中的数据和它的存储位置是用Hash函数关联的。假设一个Hash函数是x*x%5。当然实际情况不.原创 2020-07-15 14:31:43 · 394 阅读 · 0 评论 -
Java泛型类型擦除以及类型擦除带来的问题
目录1.Java泛型的实现方法:类型擦除 1-2.通过两个例子证明Java类型的类型擦除 例1.原始类型相等 例2.通过反射添加其它类型元素 2.类型擦除后保留的原始类型 例3.原始类型Object 例4.Object泛型 3.类型擦除引起的问题及解决方法 3-1.先检查,再编译以及编译的对象和引用传递问题 3-2.自动类型转换 3-3.类型擦除与多态的冲突和解决方法 3-4.泛型类型变量不能是基本数据类型 3-5.编译时集合的instan...转载 2020-07-14 17:01:22 · 5507 阅读 · 4 评论