![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 54
yulin6
写不出来咋能说出来?
展开
-
SpringMVC执行流程
SpringMVC是对servlet的一种封装,所以执行流程需要遵守servlet的声明周期,init、serivce、destory 1、当请求到达时首先要进入到FrameworkServlet的service方法中,随后会通过tomcat的源码的解析执行对应的doGet、doPost、doPut等操作。 2、最终都会调用一个processRequest的方法,这个方法中有一些列的设置操作。 3、随后调用doService方法,此方法在...原创 2021-11-11 11:46:32 · 301 阅读 · 0 评论 -
SpringMVC初始化流程
springmvc其实就是对servlet的一个封装,所以其初始化流程遵循servlet的生命周期。 springmvc是基于spring来进行扩展实现的,所以需要先对spring的容器进行初始化,在进行springmvc容器进行初始化,这就是父子容器。 首先初始化spring容器,扫描web.xml中listen标签,需要配置ContextLoaderListener类或其子类,tomcat启动时会扫描web.xml文件通过这个类的initWebAppl...原创 2021-11-05 15:30:07 · 1555 阅读 · 1 评论 -
说一下JUC和AQS
JUC是java.util.concurrent包的缩写,见名知意concurrent中文译为同步执行的,意思就是并行,所以这个包中主要提供的就是并行处理的一些解决方案,并行处理的解决方案通常都是加锁,所以这个包下的的方法都是采用CAS方式进行加锁的。所谓CAS就是通过java底层的Unsafe类直接对内存进行操作,CAS由三个参数构成:内存值V,旧的预期值A,要更新的值B。当V=A时才会将B修改并且返回true。...原创 2021-11-04 17:51:37 · 1052 阅读 · 0 评论 -
说一下String、StringBuilder、StringBuffer的区别
String:final修饰类不能被继承,声明变量是不可变的,如果需要改变需要更改引用变量的地址,字符串拼接时需要更改引用地址浪费空间效率低。 StringBuilder:可变字符串,底层采用char[]来存储,数组初始长度count =构造方法参数长度 + 16,append如果长度不够会触发扩容机制:新长度为2 * 当前数组长度 + 2,如果newCapacity 长度小于append参数长度 + 原数组长度则以append参数长度为准进行数组扩容,然后进行数组拷贝...原创 2021-11-03 17:39:42 · 66 阅读 · 0 评论 -
HashMap原理回答
HashMap是由数组+链表(解决hash冲突的方式)+红黑树(提高效率)构成的。数组初始长度设定为懒加载长度为1 << 4 = 16,最大长度为1 << 30 = Integer.maxValue()。存储时通过对key进行hash算法扰动((h = key.hashCode()) ^ (h >>> 16))获取index,如果index在数组中已经有值则去比较链表中的key值,如果相同则替换,如果不同并且链...原创 2021-11-03 16:02:43 · 81 阅读 · 0 评论 -
Spring Cloud 核心组件详解
目录概述一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结:概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无...转载 2019-07-04 11:24:08 · 407 阅读 · 0 评论 -
JAVA8 六种线程池介绍
(1) newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。可能导致内存溢出,一般使用newFixedThreadPool代替(2) newFixedThreadPool创建一个定长线程池,可控制线...原创 2019-07-02 10:50:38 · 268 阅读 · 0 评论 -
Java实现多线程的四种方式
一、继承Thread类创建线程类 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Thread类的声明如下:public class Thread implements Runnable {}可以看到,Thread本...原创 2019-07-02 10:02:01 · 111 阅读 · 0 评论 -
Java线程基础
一、进程 进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中的程序,并且具有一定独立功能。描述进程的有一句话非常经典——进程是系统进行资源分配和调度的一个独立单位。 进程是系统中独立存在的实体,拥有自己独立的资源,...原创 2019-06-19 14:18:19 · 73 阅读 · 0 评论 -
关于gps坐标转百度坐标的 js方法以及java方法
js转换方法/** * 单个坐标转换 * @param point * @returns {BMap.Point} */function GpsToBaiduPoint(point){ var _t = wgs2bd(point.lat,point.lng); var _BPoint = new BMap.Point(_t[1], _t[0]); re原创 2017-09-28 11:01:30 · 2944 阅读 · 0 评论