Java基础
lollipop98
这个作者很懒,什么都没留下…
展开
-
JDK动态代理[1]----代理模式实现方式的概要介绍
JDK动态代理[1]----代理模式实现方式的概要介绍1. 什么是代理模式?2. 为什么要使用代理?3. 代理模式有哪些实现?3.1 静态代理功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功...转载 2018-10-18 20:23:14 · 158 阅读 · 0 评论 -
剑指Offer66道题和答案(Java完整版 面试必备)
最近忙着准备春招,复习完这个又复习那个。不过还是忙里偷闲,把剑指Offer这66道题目重新刷了一遍,收获还是很大的,下面贴出答案,又不懂的可以给我留言,博主会及时解答。我的github准备把春招复习的知识都整理到github上,一边是自己做个总结,一边也能供大家参考附——leetcode数据库19道题以下摘自牛客网剑指Offer1.二维数组中的查找2.替换空格3.从尾到头打印链表...原创 2019-03-18 16:51:14 · 3092 阅读 · 1 评论 -
彻底理解ThreadLocal原理
最近准备找暑期实习,在看Java并发编程的艺术这本书,前面关于JMM的部分还是挺难的,看到第四章,终于进入了并发专题。突然出现了ThreadLocal这个类,一回忆,之前还用过这个类,使用ThreadLocal保存的值,只有在当前线程才可见。下面介绍一下其实现原理:首先进入ThreadLocal类,观察其set()方法源码: public void set(T value) { ...原创 2019-03-16 21:27:46 · 326 阅读 · 0 评论 -
JVM面试题总结
1. 介绍下Java内存区域(运行时数据区)JVM在执行Java程序的过程中会把它管理的内存分为若干个不同的区域,这些组成部分有些是线程私有的,有些则是线程共享的:线程私有的:程序计数器虚拟机栈本地方法栈线程共享的:方法区堆直接内存1. 程序计数器程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。程序计数器是唯一一个不会出现O...原创 2019-01-15 22:02:09 · 10967 阅读 · 4 评论 -
Java hashCode() 与 equals()详解
本篇博文的内容主要解决下面几个问题:equals() 的作用是什么?equals() 与 == 的区别是什么?hashCode() 的作用是什么?hashCode() 和 equals() 之间有什么联系?equals() 的作用equals() 是用来判断两个对象是否相等的方法。equals() 定义在Object类中,通过判断两个对象的地址是否相等(是否是同一个对象)来区分...原创 2019-01-15 17:59:01 · 119 阅读 · 0 评论 -
操作系统IO模型
在学习NIO之前,我们非常有必要了解一下操作系统中的各种IO模型,否则是不会理解NIO的实现的.这篇文章是我翻译I/O Multiplexing: The select and poll Functions这篇文章中的前半部分关于IO模型的部分.这篇文章中,还对select()等系统调用有更加深入的介绍,各位不妨读一下.正文在Unix下,我们有五种不同的IO模型,分别是:阻塞IO(Bl...翻译 2019-01-14 18:45:33 · 199 阅读 · 0 评论 -
LinkedList源码分析
上篇我们分析了ArrayList的底层实现,知道了ArrayList底层是基于数组实现的,因此具有查找修改快而插入删除慢的特点。本篇介绍的LinkedList是List接口的另一种实现,它的底层是基于双向链表实现的,因此它具有插入删除快而查找修改慢的特点,此外,通过对双向链表的操作还可以实现队列和栈的功能。LinkedList的底层结构如下图所示。F表示头结点引用,L表示尾结点引用,链表的每个...转载 2018-10-19 21:11:54 · 108 阅读 · 0 评论 -
ArrayList源码分析
本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组。数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集合类更好一些,这是使用数组的一大优势。但是我们知道数组存在致命的缺陷,就是在初始化时必须指定数组大小,并且在后续操作中不能再更改数组的大小。在实际情况中我们遇到更多的是一开始并不知道要存放多少元素,而...原创 2018-10-19 19:41:18 · 158 阅读 · 0 评论 -
JDK动态代理(3)WeakCache缓存的实现机制
上一篇我们分析了Proxy类的内部是怎样产生代理类的,我们看到了Proxy内部用到了缓存机制,如果根据提供的类加载器和接口数组能在缓存中找到代理类就直接返回该代理类,否则会调用ProxyClassFactory工厂去生成代理类。这里用到的缓存是二级缓存,它的一级缓存key是根据类加载器生成的,二级缓存key是根据接口数组生成的。具体的内部机制我们直接贴上代码详细解释。//Reference引用队...转载 2018-10-19 14:31:35 · 188 阅读 · 0 评论 -
JDK动态代理(2)JDK动态代理的底层实现之Proxy源码分析
JDK动态代理(2)JDK动态代理的底层实现之Proxy源码分析在上一篇里为大家简单介绍了什么是代理模式?为什么要使用代理模式?并用例子演示了一下静态代理和动态代理的实现,分析了静态代理和动态代理各自的优缺点。在这一篇中笔者打算深入源码为大家剖析JDK动态代理实现的机制,建议读者阅读本篇前可先阅读一下笔者上一篇关于代理模式的介绍《JDK动态代理[1]----代理模式实现方式的概要介绍》上一篇动...转载 2018-10-18 21:16:40 · 275 阅读 · 0 评论 -
Leetcode Top100题目和答案(Java完整版 面试必备)
最近忙着准备春招,复习完这个又复习那个。不过还是忙里偷闲,把剑指Offer这66道题目重新刷了一遍,收获还是很大的,下面贴出答案,又不懂的可以给我留言,博主会及时解答。我的github准备把春招复习的知识都整理到github上,一边是自己做个总结,一边也能供大家参考——leetcode数据库 19道题——剑指Offer 66道题以下摘自leetcode Top100精选题目文章目录1....原创 2019-03-26 00:44:45 · 81772 阅读 · 21 评论