自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_47794376的博客

String字符串

  • 博客(89)
  • 收藏
  • 关注

原创 小白日更第三天->彻彻底底搞懂单例模式!!(真的值得读)

因为最近在准备春招嘛,并且在简历上写了熟悉常见的23种设计模式,单例模式~,你懂得,那我就要搞一下这个我们程序员都听过的大名鼎鼎的单例模式!23种设计模式我就不多赘述了,我认为单例模式(Singleton Pattern)是java最简单的设计模式之一。设计模式一共分为三种,这种类型的设计模式属于创建型模式,设计模式一共分为三种,它为我们提供了一种创建对象的最佳方式。科普一下->总体来说设计模式分为三大类:(我也是刚刚百度的_-_)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者

2021-03-05 19:37:05 233 10

原创 小白日更第八十九天->Object类

关于Object类这是Java中所有类的父类,有时候面试官会问你,你知道Object类中有哪些方法吗。我觉得可以从这几个方向来回答多线程多线程少不了的就是线程间通信,那wait()和notify()肯定少不了,当然还有 volatile,condition等等,但是我们可以从这两个方法作为切入点,展开来聊聊多线程,接下来一个问题就是为什么wait方法为什么必须在同步代码块里面执行,这个在源码的注释里写的很清楚,我之前的文章也有写过这个知识点,然后可以展开聊lock锁,继而引申出AQS,然后可以引申

2021-09-24 22:48:57 212 1

原创 小白日更第八十八天->Java是按引用传递?

想弄清这个问题之前,要先搞懂两个概念,什么是按值传递,什么是按引用传递.按值调用/传递(call by value):是指在调用函数时将实际参数的值复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数按引用调用/传递(call by reference):是指在调用函数时将实际参数的地址(c语言中指针)直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数下面就来看两个例子,希望帮助小伙伴们弄清这个问题引用数据类型public class BianLiFeng {

2021-09-22 10:22:30 171

原创 小白日更第八十七天->在字节实习的第三天

这段时间没有更新博客,因为前段时间面试完就回家呆了几天,从家走的时候接到了字节HR小姐姐的电话,说面试都通过了,然后让我确定下入职时间,我就定在了6.15号。就是放完端午假。来之前已经把房子看好了,李公司挺近的,骑车10几分钟,入职当天有很多小伙伴,大家有的是本科生,有的是研究生,有的是国外留学的,身边的小伙伴都很优秀,我的同事也很不错,很热心。上午培训完就吃饭了,字节的环境和伙食是真的不错,零食什么挺多的,但是我不怎么吃零食。coffee,tea,枸杞,都挺齐全。入职第一天没干什么,主要是熟悉下环境。第

2021-06-18 14:02:11 278 4

原创 小白日更第八十六天->春招接近尾声,不知道能不能去字节...

说起日更我是真的惭愧,上一篇文章已经是三个星期之前了,其实有一个原因是我确实不太知道写什么了,因为我了解的知识点写的差不多了.还有一个原因是最近春招面试比较多,听的面试也比较多。所以没什么精力写博客。这不最近我的面试几乎都完事了,就打算每天继续日更了.先说一下最近的面试情况吧,面了一个阿里健康,面了一个蚂蚁集团,都是阿里旗下的,一个给挂了,另一个一直没消息,我已经打算放弃了。但是令我没有想到的是,字节在上个月给了我面试的机会。字节一面的面试官问了我几个问题,时间比较久了,记得有一个是spring循环依赖是

2021-05-16 15:37:15 186 1

原创 小白日更第八十五天->力扣-环形链表

题目描述:代码:public ListNode detectCycle(ListNode head) { if(head==null) return null; ListNode fast = head; ListNode slow = head; while(fast!=null&&fast.next!=null){ fast = fast.next.next; slow

2021-04-24 16:09:07 109

原创 小白日更第八十四天->力扣三数之和

题目描述:解析:class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> arrayList = new ArrayList<>(); int n=nums.length-1; int L=1; int R=n; if (nums.equal

2021-04-21 08:54:33 95 2

原创 小白日更第八十三天->Redis缓存雪崩

简单描述从字面意思来看也很好理解,就是缓存中大量的数据失效了,也就是到了过期时间,但是如果这个时候是流量高峰期,那岂不是全部的流量请求都打到了数据库上,然后数据库就挂掉了…解决方案1、让Key的失效时间分散开,可以在统一的失效时间上再加一个随机值,或者使用更高级的算法分散失效时间。比如:setRedis(Key,value,time + Math.random() * 10000);2、构建多个redis实例,个别节点挂了还有别的可以用。3、多级缓存:比如增加本地缓存,减小redis压力。4、

2021-04-20 11:21:28 101

原创 小白日更第八十二天->Redis缓存击穿

简单理解关于缓存击穿的问题其实也很简单,就是一个热点数据,我们肯定会把它放在缓存里面,但是如果在流量的高峰期,这个热点数据突然过期了,那岂不是全部的流量都要打到数据库上,那缓存就形同虚设,数据库可能先报警一下,然后挂掉.其实这个问题我觉得是在实际问题中很常见,也应该在流量的高峰期提前做好准备的,比如双十一,那天的流量的大小就不用我描述有多恐怖了,如果这个时候热点数据在缓存中过期了,那对数据库造成的伤害…解决方案1、设置热点Key,自动检测热点Key,将热点Key的过期时间加大或者设置为永不过期,或者设

2021-04-20 11:10:11 91

原创 小白日更第八十一天->布隆过滤器

关于布隆过滤器,小伙伴们不要觉得很难,其实这个东西原理还是很简单的。原理布隆过滤器其实就是一个很长的bit数组,里面的每一个数组下标初始为0.当我们向布隆过滤器中添加一个元素的时候,会经过hash算法,来定位一下这个数据对应的数组下标是多少,但是很容易想到的是一个hash函数可能产生hash冲突的概率比较大,那我们极端一点,每个数据我都让他经过100次hash函数,其实我个人觉得,这样产生的hash冲突的概率虽然很小很小了,但是有一个问题,就是时间问题,经过一次hash可能会产生较多的冲突,但是hash

2021-04-20 09:02:54 88

原创 小白日更第八十天->Redis缓存穿透

什么是缓存穿透缓存穿透其实很好理解.正常来说我们在数据库里存的数据,比如id都是从1开始,然后递增的。那现在如果有一个用户要访问id是-1的这么一条数据,首先去缓存中查看,缓存中发现没有id=-1的数据,然后去数据库中查看,发现数据库中也没有id=-1的数据。如果这样不合理的请求,也就是我们数据库中不存在的数据。有一个两个这样的非法请求,我们数据库抗住还是没问题的,但是如果这样不合理的请求多了,上升到好几千,这里应该就是被**“攻击了”**,那很可能我们的数据库就挂掉了.那如何防止这种情况的发生呢?解

2021-04-20 08:14:00 83

原创 小白日更第七十九天->redis的优缺点

上一篇我说到了为什么要用redis做缓存。这篇我们看看redis的优缺点优点百度百科给出的是一个50个并发执行十万个请求,然后读的速度是十一万次每秒,写的速度是八万一千次每秒。支持数据持久化,支持AOF和RDB两种持久化方式。因为redis的数据是放在内存中的,一旦断电或者服务宕机了或者其他一些特殊情况内存数据会丢失。那肯定要把数据持久化到磁盘上去。支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。支持的数据结构比较多,除了支持strin

2021-04-17 19:00:33 94

原创 小白日更第七十八天->为什么要用Redis做缓存

简单了解过Redis的小伙伴应该都知道Redis常被当做缓存。那为什么要选这个nosql型的数据库来当缓存小伙伴们有考虑过这个问题吗?两个角度考虑,性能,并发。性能我们的Mysql中存放的数据是存放在磁盘上的,在对数据进行读取的时候会先把数据从磁盘读到内存中去,然后再对数据做一个处理,那我们知道磁盘的IO速度是远远小于cpu处理数据的速度的,而redis的数据是存在内存中的,所以我们访问redis中的数据相当于是直接基于内存操作,所以很快,那redis基于内存操作的话,万一断电了怎么办,这么简单的问题

2021-04-16 23:10:45 1673 4

原创 小白日更第七十七天->关于System.gc你知道多少

关于System.gc()方法,我也去网上看了一些,感觉没怎么看懂,然后就去看了一下源码。源码:调用了Runtime.getRuntime().gc()方法这段源码中的一段注释是这么翻译的。看到这我想我们应该明白了,当我们手动调用System.gc()的时候,JVM不会立刻进行垃圾回收,而是相当于我们提醒虚拟机要进行一次垃圾回收,而具体回不回收我们还是说了不算的,因为人家源码的注释是尽最大努力回收垃圾,如果没有回收你也不要怪我啦~...

2021-04-15 18:16:25 74

原创 小白日更第七十六天->经典垃圾收集器之Garbage First收集器

Serial Old收集器、Parallel Old收集器、CMS收集器,这三个经典的老年代垃圾收集器,还没有看的小伙伴先建议去看一下。正文Garbage First(简称G1) 收集器是垃圾收集器技术发展历史上的里程碑式的成果, 它开创了收集器面向局部收集的设计思路和基于Region的内存布局形式。 早在JDK 7刚刚确立项目目标、 Oracle公司制定的JDK 7 RoadMap里面, G1收集器就被视作JDK 7中HotSpot虚拟机的一项重要进化特征。 从JDK6 Update 14开始就有Ea

2021-04-13 17:48:32 112

原创 小白日更第七十五天->经典垃圾收集器之CMS收集器

Serial Old收集器和Parallel Old收集器这两个老年代收集器还没看到小伙伴建议先看一下这两个老年代垃圾收集器。正文CMS(Concurrent Mark Sweep) 收集器是一种以获取最短回收停顿时间为目标的收集器。 目前很大一部分的Java应用集中在互联网网站或者基于浏览器的B/S系统的服务端上, 这类应用通常都会较为关注服务的响应速度, 希望系统停顿时间尽可能短, 以给用户带来良好的交互体验。 CMS收集器就非常符合这类应用的需求。从名字(包含“Mark Sweep”) 上就可以

2021-04-13 16:23:04 99

原创 小白日更第七十四天->经典垃圾收集器之Parallel Old收集器

上一篇中讲的老年代收集器Serial Old收集器,没看的小伙伴赶紧去看啦。正文Parallel Old是Parallel Scavenge收集器的老年代版本, 支持多线程并发收集, 基于标记-整理算法实现。 这个收集器是直到JDK 6时才开始提供的, 在此之前, 新生代的Parallel Scavenge收集器一直处于相当尴尬的状态, 原因是如果新生代选择了Parallel Scavenge收集器, 老年代除了Serial Old(PSMarkSweep) 收集器以外别无选择, 其他表现良好的老年代收

2021-04-13 16:06:30 259 1

原创 小白日更第七十三天->经典垃圾收集器之Serial Old收集器

Serial收集器、ParNew收集器、Parallel Scavenge这三款垃圾收集器都是新生代的垃圾收集器。接下来的几篇博客是关于老年代的垃圾收集器了。Serial Old是Serial收集器的老年代版本, 它同样是一个单线程收集器, 使用标记-整理算法。 这个收集器的主要意义也是供客户端模式下的HotSpot虚拟机使用。 如果在服务端模式下, 它也可能有两种用途: 一种是在JDK 5以及之前的版本中与Parallel Scavenge收集器搭配使用[1], 另外一种就是作为CMS收集器发生失败时的

2021-04-13 16:02:40 116

原创 小白日更第七十二天->经典垃圾收集器之Parallel Scavenge收集器

Parallel Scavenge收集器也是一款新生代收集器, 它同样是基于标记-复制算法实现的收集器, 也是能够并行收集的多线程收集器…Parallel Scavenge的诸多特性从表面上看和ParNew非常相似, 那它有什么特别之处呢?暗示着没看我Serial收集器和ParNew收集器的小伙伴赶紧去看一下啦。Parallel Scavenge收集器的特点是它的关注点与其他收集器不同, CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间, 而Parallel Scavenge收集器的目标

2021-04-13 15:52:52 128

原创 小白日更第七十一天->经典垃圾收集器之ParNew收集器

上一篇文章中已经讲过了Serial收集器,没有看的小伙伴可以先去看一下,再来学习今天要说的垃圾收集器。ParNew收集器实质上是Serial收集器的多线程并行版本, 除了同时使用多条线程进行垃圾收集之外, 其余的行为包括Serial收集器可用的所有控制参数(例如: -XX: SurvivorRatio、 -XX:PretenureSizeThreshold、 -XX: HandlePromotionFailure等) 、 收集算法、 Stop The World、 对象分配规则、 回收策略等都与Seria

2021-04-13 15:30:37 170

原创 小白日更第七十天->经典垃圾收集器之Serial收集器

Serial收集器是最基础、 历史最悠久的收集器, 曾经(在JDK 1.3.1之前) 是HotSpot虚拟机新生代收集器的唯一选择。 大家只看名字就能够猜到, 这个收集器是一个单线程工作的收集器, 但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作, 更重要的是强调在它进行垃圾收集时, 必须暂停其他所有工作线程, 直到它收集结束。 “Stop The World”这个词语也许听起来很酷, 但这项工作是由虚拟机在后台自动发起和自动完成的, 在用户不可知、 不可控的情况下把

2021-04-13 15:18:21 153

原创 小白日更第六十九天->武林盟主:HotSpot VM

相信所有Java程序员都听说过HotSpot虚拟机, 它是Sun/OracleJDK和OpenJDK中的默认Java虚拟机, 也是目前使用范围最广的Java虚拟机。 但不一定所有人都知道的是, 这个在今天看起来“血统纯正”的虚拟机在最初并非由Sun公司所开发, 而是由一家名为“LongviewTechnologies”的小公司设计; 甚至这个虚拟机最初并非是为Java语言而研发的, 它来源于Strongtalk虚拟机, 而这款虚拟机中相当多的技术又是来源于一款为支持Self语言实现“达到C语言50%以上的执

2021-04-13 15:02:16 155

原创 小白日更第六十八天->BlockingQueue(阻塞队列)的四组API

第一组add()方法添加数据package com.qcby.algorithm;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;public class TestDemo5 { public static void main(String[] args) { BlockingQueue<Integer> blockingQueue

2021-04-12 21:28:45 164

原创 小白日更第六十七天->同步异步,阻塞和非阻塞的区别

同步和异步同步:当一个同步调用发出去后,调用者要一直等待调用结果的返回后,才能进行后续的操作。异步:当一个异步调用发出去后,调用者不用管被调用方法是否完成,都会继续执行后面的代码。 异步调用,要想获得结果,一般有两种方式:1、主动轮询异步调用的结果;2、被调用方通过callback来通知调用方调用结果;其实总结的话就是:同步和异步是相对服务器端来说的。服务器在受到我们的请求后,如果立刻给我们返回一个响应,哪怕没有返回给我们需要的信息,只是简单的给我们一个相应。那就是异步的。如果是在找到我们需要的资

2021-04-12 17:23:02 67

原创 小白日更第六十六天->Java死锁排查

先看我的死锁代码:package com.qcby.algorithm;public class TestDemo4 { public static String a="资源A"; public static String b="资源B"; public static void main(String[] args) { new Thread(()->{ synchronized (a){ try {

2021-04-12 17:09:57 81 2

原创 小白日更第六十五天->Java生成字节码文件

先在IDEA中选中我们要进行编译的Java程序:类名然后右键,选中Show in Explorer可以看到这个时候没有任何的.class文件这个时候我们可以看到多出来一个.class后缀的文件,这个就是javac编译器帮我们把java文件转换成了JVM虚拟机能识别的字节码文件运行字节码文件:ok,到这里就结束了,小伙伴们一定要自己动手试一下,不然很容易忘记的。...

2021-04-12 16:30:28 633

原创 小白日更第六十四天->为什么要使用多线程

摩尔定律:我们知道我们的多线程是在多核CPU的硬件条件下。我们现在的电脑一般都是起码四核的。我看一下我的电脑是几核的:没记错的话,插槽的个数应该指的是CPU的个数,而逻辑处理器指的应该是CPU的核心数。所以那为什么要使用多线程呢?1、充分利用CPU的计算能力我们的CPU是多核的,闲着也是闲着,为什么不利用起来呢?我们要把CPU的计算能力发挥到极致。线程是大多数操作系统调度的基本单元,一个程序作为一个进程来运行,程序运行过程中能够创建多个线程,而一个线程在一个时刻只能运行在一个处理器核心上。试想

2021-04-12 16:14:39 107

原创 小白日更第六十三天->遍历HsahMap的几种方式

不多说,上代码:第一种: For-each 循环遍历 entrySetpackage com.qcby.algorithm;import java.util.HashMap;import java.util.Map;public class TestDemo2 { public static void main(String[] args) { HashMap<Object, Object> hashMap = new HashMap<>();

2021-04-11 20:45:56 126 1

原创 小白日更第六十二天->继上一篇ArrayList并发问题

上一篇我对ArrayList做了一个简单的并发测试,感觉很好玩,今天晚上又测试了一下,因为上一篇博客中测试的数据量太少了,我创建了4个线程,每个线程插入几百条数据,偶尔会报错,我上午把程序运行了不下20次,很少报错,并且也很少发生数据覆盖带来的丢失问题。今天晚上我创建了五条线程,每条插入十万条数据。然后我们看运行结果数组下标越界我在上一篇博客中叙述了,我再说一下,是这样的。我们在多线程插入数据的时候,会有这么一种比较极端的情况,当前数组还剩最后一个位置,两个线程要在这个位置插入数据,一个线程先插入完之后

2021-04-11 20:20:18 70

原创 小白日更第六十一天->你没见过的ArrayList并发问题

关于ArrayList我们都知道它是集合不安全的集合类。今天闲的无聊,敲了一下,想看一下在多线程的情况下插入数据会不会报并发修改异常的错误。先看代码:package com.qcby.algorithm;import java.util.*;public class TestDemo { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>();

2021-04-11 10:23:30 282 1

原创 小白日更第六十天->面试官:输入一个网址后具体发生了什么?

最近听面试比较多,当面试官问到关于计算机网络方面的问题的时候,除了Tcp/Udp,HTTP,还有问的比较多的就是输入一个网址具体发生了什么?大方面来说分六个步骤:1、对用户输入的网址进行URL解析(DNS解析)2、进行TCP连接3、浏览器发送Http请求4、服务器处理请求5、浏览器解析渲染页面6、关闭TCP连接其中每个部分都有具体的过程,具体可以参考这篇博客关于DNS解析可以参考这篇文章小伙伴们还是把这六个步骤具体的看两遍,记不住也无所谓,有个大概的印象,当面试官问我们的时候,我们把这六

2021-04-10 22:21:28 93

转载 小白日更第五十九天->语法糖吃过吗?

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。 来自百度百科关于语法糖之前听过,但是没怎么深入的了解过。今天举几个简单,常用的例子。比如switch,增强for循环,if,数.

2021-04-10 21:53:18 82

原创 小白日更第五十八天->一条sql语句在Mysql中是怎么执行的

最近听了几场学长们的互联网大厂面试,发现关于sql的执行过程问的频率还很高,我就去百度了一下,回答的差不多吧都,只不过有的特别详细。以我目前的能力根本看不懂。所以我就简单总结一下大概流程,面试官问起来起码能把大概说出来,估计面试官也不会很为难我们。话不多说,上图:大概流程:1、连接器先登录连接数据库,然后进行用户的身份认证,包括校验账户密码,权限等操作,如果用户账户密码已通过,连接器会到权限表中查询该用户的所有权限,之后在这个连接里的权限逻辑判断都是会依赖此时读取到的权限数据,也就是说,后续只要这

2021-04-09 13:02:06 114 1

原创 小白日更第五十七天–>做梦都在new String

这两天在忙着写博客,不知道怎么了,就是想把自己所知道的,所了解的都想写在博客里,因为不知道什么时候就忘了,哈哈。今天上午8.30考的数据库,明天上午考操作系统,可是这两天我都没在复习这两门课,而是又把java相关的书和一些我们平时注意不到的小问题,我都通过源码和源码的注释成功解决了,这种感觉emmmm很爽,不信小伙伴们可以试一下。这种感觉就是那种豁然开朗的感觉。可能这两天学的东西,看的东西有点多,白天脑子里都是在想java,mysql,spring相关的知识点。昨天晚上我做梦都是在new String(

2021-04-09 10:38:32 95 2

原创 小白日更第五十六天->抽象类和接口实例化问题

先看代码然后引出今天的问题package com.qcby.algorithm;public class Test01 { public static void main(String[] args) { C c = new C(new String("大众")); }}interface Fruit{ void f();}abstract class Car{ public Car(String str){ System.out.pri

2021-04-08 16:23:07 154

原创 小白日更第五十五天->Java语言的特点(超详细)

先看一下百度百科对Java的简单介绍网上关于Java的话题也不少,可能很多小伙伴也已经熟练的掌握了Java的一些操作了,比如集合,反射,多线程等等。那今天我们静下心来,好好了解一下我们天天使用的Java这门语言,它的特点到底是什么,不要在面试的时候只知道OOP了,嘿嘿。当然这也是Java编程语言的其中一大特点,下面我们一起学习~Java语言特点1、简单性2、面向对象3、分布式4、健壮性5、安全性6、体系结构中立7、可移植性8、解释型9、高性能10、多线程11、动态性简单性

2021-04-08 13:04:16 166

原创 小白日更第五十四天->关于字符串的null和“ “问题

小伙伴们先看一段代码:package com.qcby.algorithm;public class Test01 { public static void main(String[] args) { String s=""; String ss=null; System.out.println(s.hashCode()); System.out.println(ss.hashCode()); }}这段代码执行的结果是什么呢?报错了嘿嘿。空指针异

2021-04-08 12:19:22 136 2

原创 小白日更第五十三天->java发展史

Java 的历史要追溯到 1991 年,由 Patrick Naughton 和 James Gosling (一个全能的计算机奇才)带领的 Sun 公司的工程师小组想要设计一种小型的计算机语言, 主要用于像有线电视转换盒这类的消费设备。由于这些消费设备的处理能力和内存都很有限, 所以语言必须非常小且能够生成非常紧凑的代码。另外, 由于不同的厂商会选择不同的中央处理器(CPU), 因此这种语言的关键是不与任何特定的体系结构捆绑在一起。这个项目被命名为“ Green”。代码短小、 紧凑且与平台无关, 这些要

2021-04-08 11:00:50 181

转载 小白日更第五十二天->你真的不懂i++和++i

面试官:你说你懂i++跟++i的区别,那你知道下面这段代码的运行结果吗?面试官:“说一说i++跟++i的区别”我:“i++是先把i的值拿出来使用,然后再对i+1,++i是先对i+1,然后再去使用i”面试官:“那你看看下面这段代码,运行结果是什么?”public static void main(String[] args) { int j = 0; for (int i = 0; i < 10; i++) { j = (j++); } Syste

2021-04-08 10:39:46 85

原创 小白日更第五十一天->SpringMVC执行流程

做过ssm项目的小伙伴都肯定都配置过什么视图解析器什么的,在controller层的方法里面ruturn一个字符串,然后视图解析器会去配置文件中规定好的路径下面去找前缀是这个字符串的html页面或者jsp页面返回给前端。那springmvc的执行流程是怎么样的呢?一张图片解决小伙伴们的困惑springmvc执行大致流程1、用户发送请求至前端控制器DispatcherServlet。就是我们在前端通过ajax或者form表单提交到Controller层2、DispatcherServlet收到请求调用

2021-04-08 00:12:50 88

空空如也

空空如也

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

TA关注的人

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