java
ghsticker
搞编程的小学生
展开
-
SpringMVC三大组件源码分析
SpringMVC三大组件源码分析1.处理器映射器其实就是RequestMappingHandlerMapping我们通常采用注解的方式@RequestMapping()或者XML配置的方式进行<beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMappin...原创 2020-04-19 18:15:15 · 235 阅读 · 0 评论 -
SpringMVC执行流程源码分析
SpringMVC执行流程源码分析首先看一下SpringMVC的整体流程我们先写一个简单的程序看一下,分析一下SpringMVC的执行流程@Controllerpublic class ControllerDemo1 { @RequestMapping("/hello") public String sayHello(){ System.out.prin...原创 2020-04-18 19:05:34 · 246 阅读 · 0 评论 -
面试系列----JVM调优和参数配置
面试系列----JVM调优和参数配置0.JVM的参数类型1.标准参数,是一些java常见一直自带的参数不随版本的更改而更改,如-version,-help,-showversion2.X参数,是非标准化参数,表示在将来的JVM版本中可能会发生改变,但是这类以 -X开始的参数变化的比较小。其中有一些常用的-Xint 解释执行-Xcomp 第一次使用就是编译成本地代码...原创 2020-04-11 22:13:10 · 242 阅读 · 1 评论 -
面试系列----谈谈对OOM的认识
面试系列----谈谈对OOM的认识0.什么是OOMOOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and...原创 2020-04-10 23:14:16 · 265 阅读 · 0 评论 -
面试系列----JVM垃圾回收如何确定垃圾
面试系列----JVM垃圾回收如何确定垃圾什么是垃圾?简单的说就是内存中已经不再被使用到的空间就是垃圾,JVM就会自动回收这个空间。要进行垃圾回收,如何判断一个对象是否可以被回收?第一:采用引用计数法,java中,引用和对象是有关联的,如果要操作对象则必须用引用进行,因此很显然一个简单的办法就是通过引用计数来判断一个对象是否可以回收,简单的来说,就是给对象添加一个引用计数器,每当有一个地方...原创 2020-04-08 11:14:58 · 133 阅读 · 0 评论 -
面试系列----谈谈线程池的使用
面试系列----谈谈线程池的使用0.什么是线程池线程池主要就是控制线程的数量,处理过程中将任务加到队列中,然后在线程创建后启动这些任务,如果线程超过最大数量,超出数量的线程排队等候,等其他线程执行完毕以后,在从队列中取出任务来执行。他的主要特点就是:线程复用,管理线程,控制最大并发数。使用线程池的好处:第一:降低资源消耗,通过重复利用自己创建的线程降低线程创建和销毁造成的消耗。第二::...原创 2020-04-07 11:24:18 · 377 阅读 · 0 评论 -
面试系列----阻塞队列
面试系列----阻塞队列0.什么是阻塞队列阻塞队列,顾名思义,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如图所示:当阻塞队列为空时,从队列中获取元素的操作会被阻塞。当阻塞队列是满时,往队列中添加元素的操作会被阻塞。在多线程领域,所谓阻塞,在某些情况下会挂起线程(即线程阻塞),一旦条件满足,被挂起的线程会被被自动唤醒使用阻塞队列的好处:我们不需要关心什么时候需要阻塞线程...原创 2020-04-07 11:21:23 · 179 阅读 · 0 评论 -
面试系列----死锁编码以及定位分析
面试----死锁编码以及定位分析0.什么是死锁死锁是指两个或者两个以上的进程在执行过程中,因为争夺资源而造成的一种相互等待的现象,若无外力干涉那他们都将无法推进下去,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁中。死锁产生的原因:系统资源不足进程运行推进的顺序不适合资源分配不当手写一个死锁程序class HoldT...原创 2020-04-06 10:46:51 · 157 阅读 · 0 评论 -
面试系列----java并发中常见的辅助类
面试系列----java并发中常见的辅助类CountDownLatch让一些线程阻塞直到另外一些完成后才被唤醒的类,CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞.其他线程调用countDown方法计数器减1(调用countDown方法时线程不会阻塞),当计数器的值变为0,因调用await方法被阻塞的线程会被唤醒,继续执行。简单代码演示:...原创 2020-04-05 21:05:15 · 190 阅读 · 0 评论 -
面试系列----JUC中常见的锁
面试系列----JUC中常见的锁1.公平锁和非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁类似排对打饭,先来后到非公平锁:是指在多线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非公平锁,通过...原创 2020-04-04 12:44:11 · 245 阅读 · 0 评论 -
面试系列----集合类线程安全问题
面试系列----集合类线程安全问题众所周知,ArrayList是一个线程不安全的。为什么线程不安全呢?线程不安全会出现什么问题呢?看下面代码:public class NotSafeDemo03 { public static void main(String[] args) { List<String> list = new ArrayList<&...原创 2020-04-03 15:25:17 · 243 阅读 · 0 评论 -
面试系列----谈谈对CAS的理解
面试系列----谈谈对CAS的理解0.什么是CASCAS就是compareAndSet,即比较并交换,是一种实现并发算法时常用到的技术。 先看下面的代码public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInte...原创 2020-04-02 22:37:39 · 465 阅读 · 0 评论 -
面试系列----谈谈对volatile的理解
面试----谈谈对volatile的理解0.什么是volatile?volatile是java虚拟机提供的轻量级的同步机制,可以保证可见性,不保证原子性,禁止指令重排。首先要先了解一下JMM(java内存模型)JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念 并不真实存在,它描述的是一组规则或规范通过规范定制了程序中各个变量(包括实例字段,静态字...原创 2020-04-02 22:02:50 · 267 阅读 · 0 评论 -
JVM---GC垃圾回收算法
JVM—GC垃圾回收算法GC垃圾回收算法JVM在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是指新生代。因此GC按照回收的区域又分了两种类型,一种是普通GC(minor GC),一种是全局GC(major GC or Full GC)Minor GC和Full GC的区别 普通GC(minor GC):只针对新生代区域的GC,指发生在新生代的垃圾收集动作,因...原创 2020-03-29 13:55:27 · 204 阅读 · 0 评论 -
JVM基础入门
JVM基础入门1.什么是jvm?jvm(java virtual machine)为java虚拟机,是运行在操作系统之上,为java程序提供支持。2.jvm体系结构ClassLoader类加载器负责加载class文件,class文件在文件开头有特定的文件标示,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中运行时数据结构并且ClassLoader只负责class文件的...原创 2020-03-29 13:47:31 · 210 阅读 · 0 评论 -
页面静态化技术----freemarker
页面静态化技术----freemarker0.什么是freemarkerFreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。简单一点静态化技术就是模板+数据,freemarker并不关心数据的来源,只是根据模...原创 2020-03-28 19:16:04 · 281 阅读 · 0 评论 -
解决SpringMVC中乱码问题
解决SpringMVC中乱码问题1.post提交在web.xml中配置SpringMVC自带的过滤器,如下:<!-- 处理POST提交乱码问题 --> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web....原创 2019-02-01 17:51:02 · 177 阅读 · 0 评论 -
java基础易错知识整理
java基础易忘知识整理最近又又又开始从头接触java,虽然使用java 也有很长一段时间了,才发现自己有一些基础知识还是容易错还容易忘。借这个机会,记录一下0.变量命名java语言有着自己固定的命名规范,这也是比较基础的知识了。以英文大小写字母、下划线“_”、或“$”开始的一个字符序列数字不能作为第一个字符变量名不能是java的关键字(还有goto)变量名大小写敏感且长度没有...原创 2019-07-08 11:25:45 · 449 阅读 · 0 评论 -
Maven基础入门
Maven基础入门1.Maven介绍1.1Maven是什么?Maven是Apache下的一个纯java开源项目,是一个项目管理工具 ,使用maven对java项目进行构建,依赖管理。1.2什么是项目构建?项目构建是一个项目从编写源码代码到编译,测试,运行,打包,部署,运行的过程1.2.1传统的项目构建:在eclipse上构建一个java web工程.在工程中编写源码和配置文件对...原创 2019-01-25 22:54:39 · 178 阅读 · 0 评论