- 博客(8)
- 收藏
- 关注
转载 学习笔记(1):图解Java设计模式(一)-七大设计原则介绍
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 ...
2020-09-06 23:09:24
154
原创 HashMap原理解析(JAVA8)
HashMap平时用的很多,却很少了解其中原理,由于最近准备面试,所以看了下源码,也查看了一些文件,下面说说我的一些理解在深入理解HashMap之前,需要知道两种数据结构:数组和链表。有过java面试经验的伙伴应该很多都被问到过这个问题,ArrayList和LinkedList有什么区别,分别在什么场景下使用,其实这个就是在问 数组和链表的区别了,不同的是LinkedList是一...
2020-05-03 11:01:30
239
原创 SpringBoot -- 跨域设置
本文从源码层面分析如何给项目中不同请求地址设置不同跨域属性这里不再解释什么是跨域,概念问题自己去了解。本文介绍两种实现方式:1、使用@CrossOrigin注解2、重写AbstractHandlerMapping.getCorsConfiguration方法其中方式1实现更简单,易操作。方式2实现稍麻烦,但是使用更加灵活,下面我们看下源码怎么分别实现上面两种方式:1、如下,通过...
2019-11-22 14:43:50
145
原创 Java_IO学习—— IO学习总结
IO中常用的类类名 说明 File 文件类 RandomAccessFile 随机存取文件类 InputStream 字节输入流 OutputStream 字节输出流 Reader 字符输入流 Writer 字符输出流 IO体系字节流IO操作字符流IO操作上图可以看到,整个Java IO体系都是基...
2019-05-25 10:17:19
196
原创 线程池学习笔记(4)——submit和execute方法区别与联系
看过源码的同学会发现我们线程池提交任务除了submit方法外,在ThreadPoolExecutor类里还有excute方法,一样可以提交任务,那么这两个方法有什么区别?我们应该怎么选择用哪个方法?我看网上也有很多帖子,看了一些,大多写的不够深入,看了之后就是知其然而不知其所以然,所以今天决定自己翻翻源码,一探究竟,直接看源码首先,我们查看源码里方法定义,很明显能发现2个区别:1、...
2019-05-19 01:56:56
676
原创 线程池学习笔记(3)——线程池的生命周期
线程池的生命周期我们都知道线程的生命周期,可分为几种状态。同样,线程池也一样:通过查看ThreadPoolExecutor类源码,我们可以看到定义了5种线程池状态:这几种状态的转换过程看下图说线程池的状态转换就要提到线程池中几个方法:线程池Executor是异步的执行任务,因此任何时刻不能够直接获取提交的任务的状态。这些任务有可能已经完成,也有可能正在执行或者还在排队等...
2019-05-18 11:57:34
2701
原创 线程池学习笔记(2)——ThreadPoolExecutor源码分析
ThreadPoolExecutor构造器参数详解完整参数的ThreadPoolExecutor构造器如下:corePoolSize 核心池的大小,这里要注意,线程池创建的时候里面是没有线程的,只有当有任务来的时候才创建线程。只有调用了prestartAllCoreThreads()或者prestartCoreThread()方法才会在线程池创建的时候创建线程,因此线程池创建的时候...
2019-05-17 17:38:26
210
原创 线程池学习笔记(1)——线程池的使用
写在前面虽然参加工作也有几年,但是很少接触多线程开发,最近碰到一个项目用到多线程,所以才开始学习,这里就记录一下学习历程,希望能和跟我一样初步学习的小伙伴一起共勉。第一篇文章主要记录理论知识,更多代码后面陆续发出来。本文主要面向对象是线程池初学者,大佬勿喷。背景使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程...
2019-05-17 17:37:58
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人