自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 【原】JDK8线程池源码全面分析

目录线程池的基本概念程池的创建Core and maximum pool sizes与workQueueKeep-alive timesthreadFactoryhandler线程池的workQueue队列的操作方法ArrayBlockingQueuenotEmpty和notFull条件take和put方法dequeue和enqueue方法...

2019-09-12 09:21:31 497 1

原创 算法分析——优先队列

public class PriorityQueue{ // 最小堆 public PriorityQueue(int max) { this.heap = new int[max + 2]; this.max = max + 1; } // 维护的堆数据 private int[] heap; ...

2019-07-19 16:28:14 194

原创 算法分析——排序算法性能对比

最近把常见排序的算法都撸了一遍,想直观的感受一下效率的变化。废话不多少,直接上代码。public class App{ public static void main(String[] args) { int[] sortArray = SortService.obtainFixedArray(); // 选择排序 int...

2019-07-19 16:23:53 220

原创 JDK 8源码解析——ArrayList和LinkedList迭代性能比较

我们都知道查询用ArrayList,插入用LinkedList,原因在于ArrayList内部数据用数组的形式进行组织,但是LinkedList用链表的形式进行组织。因此ArrayList查询有优势,LinkedList插入有优势。那么在迭代的情况下,ArrayList和LinkedList的有多大的差别呢?先上代码。public class App{ private stati...

2019-07-12 11:26:34 309

原创 JDK 8源码解析——Integer的比较问题

在使用Sting类型时,我们都知道比较2个String类型是否是相同的字符串,需要使用equals()方法,这个可以称为常识。但是对于Integer类型,大家似乎又经常把它当做基本类型,而不是引用类型了,对于比较Integer是否相等,使用的是"=="而不是equals()。这其实是一个误区。例如我们public class App{ public static void main...

2019-07-04 09:25:16 601

原创 我的JDK源码阅读顺序(持续更新)

因为JDK源码有依赖关系,因此保持一定的阅读顺序十分重要java.langObject String AbstractStringBuilder StringBuilder StringBuffer Integer Long Short Boolean Byte Double Float...

2019-07-02 09:03:10 573

原创 JDK 8源码解析——String中的intern()方法

String是最常用的类之一,也许就是太常见了,因此导致经常忽略它存在,即使在观察堆得时候发现String类以及char[]所占的内存比较多的时候,也潜意识的跳过了它们。其实,String类以及char[]也还是有优化的空间的。String的源码提供了非常丰富的方法,最多的就是对char[]数组的处理。对数组的处理,几乎就是复制数组和转码的各种组合。本来觉得看下去以及没啥惊喜了,指到发现以下这...

2019-06-29 09:27:49 554 1

原创 利用IDEA调试notify(),程序执行完毕,但一直不退出

在看Object源码的时候,看到wait()和notify(),顺手写了个demo,想验证wait()方法之后,线程放弃对象的锁,然后虽然验证了主线程确实获取到了对象锁,但是整个程序却没有退出,并且为必现。具体代码如下:public class App{ public static void main(String[] args) { Person ...

2019-06-24 09:33:39 737

转载 【转载】解决调试jdk无法查看变量值问题(重新编译JDK源码)

1、解决Eclipse调试JDK源码无法查看变量值https://blog.csdn.net/u010407050/article/details/76690478

2019-06-21 09:29:01 169

原创 阅读Spring源码过程中,对一些细节的解析(持续更新)

1、spring容器加载分析 二容器刷新https://www.jianshu.com/p/5836d3d6dc722、Spring中的aware接口https://www.jianshu.com/p/c5c61c31080b

2019-06-19 09:48:21 265

原创 BeanFactory中ignoreDependencyInterface方法解析

解释得很透彻,顺便还说明了自动装配和注解@Autowired的区别https://www.jianshu.com/p/3c7e0608ff1f扩展:1、知识都是扩展的,上文中对于default-autowire和@Autowired解释的不够完整,以下文章进行了扩展。https://blog.csdn.net/findmyself_for_world/article/details...

2019-06-18 10:06:50 1445

原创 Java基础概念浅谈(1)——应用层面上interface(接口)和abstract class(抽象类)的区别

学习Spring源码已经有一段时间了,对代码设计有了一些收获,因此记录一下。我们常用到的类主要分为接口(interface)、抽象类(abstract class)以及实现类(class)。在代码中经常遇到这些java文件,在我学习Spring源码之前,更多是是生搬硬套,例如Dao层、Service层用interface,高级一点就是工厂模式、策略模式用一下interface,如果发现在设计模...

2019-06-13 09:02:04 289 1

基于C/S结构的Java局域网聊天系统包含MySQL数据库

基于C/S结构的Java局域网聊天系统包含MySQL数据库,分为客户端(Client)和服务器端(Server)能够多人同时登陆在线聊天,采样MySQL数据库记录登陆信息

2017-05-12

菲涅尔衍射matlab程序

运用傅里叶光学知识计算的菲涅尔衍射matlab程序

2015-07-13

空空如也

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

TA关注的人

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