基础知识
火龙果儿
不负年少轻狂时光
展开
-
ArrayList与LinkedList源码分析
ArrayList 源码分析1.概述ArrayList 是一种变长的集合类,基于定长数组实现。ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于 ArrayList 底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。其他方面,ArrayList 是非线程安全类,并发环境...转载 2020-02-20 22:32:11 · 210 阅读 · 0 评论 -
HashMap源码分析
HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树(将链表转换成红黑树前会判断...原创 2020-02-20 18:27:39 · 224 阅读 · 0 评论 -
面试知识点梳理 | Java基础
目录1.面向对象和面向过程的区别2.Java的特点3. JVM JDK JRE简答JVMJDK 和 JRE4. Java和C++的区别?5. 字符型常量和字符串常量的区别?6. 构造器 Constructor 是否可被 override?7. 重载和重写的区别重载重写8. Java 面向对象编程三大特性: 封装 继承 多态封装继承多态9. St...原创 2020-02-12 22:02:37 · 818 阅读 · 0 评论 -
Spring IOC AOP的手写实现(二)
IOC的实现1.1 BeanFactory的生命流程BeanFactory加载Bean配置文件,将读到的Bean配置封装成BeanDefinition对象将封装好的BeanDefinition对象注册到BeanDefinition容器中注册BeanPostProcessor相关实现类到BeanPostProcessor容器中BeanFactory进入就绪状态外部调用BeanFacto...原创 2019-11-25 20:33:41 · 251 阅读 · 0 评论 -
动态代理InvocationHandler和Proxy
java动态代理机制中有两个重要的类和接口InvocationHandler(接口)和Proxy(类),这一个类Proxy和接口InvocationHandler是我们实现动态代理的核心;1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invok...原创 2019-11-25 17:27:24 · 575 阅读 · 1 评论 -
Java中的Unsafe
Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。Unsafe类,全限定名是sun.misc.Unsafe,从名字中我们可以看出来这个类对普通程序员来说是“危险”的,一般应用开发者不会用到这个类。Unsafe类是"final"的,不允许继承。且构造函数是...转载 2019-10-24 20:33:23 · 163 阅读 · 0 评论 -
Java多线程基础(四) 一行一行源码分析清楚AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。Google 一下 AbstractQueuedSynchr...转载 2019-10-23 21:47:15 · 173 阅读 · 0 评论 -
Java多线程基础(二) 线程具体操作与ThreadLocal
线程具体操作与ThreadLocal1 线程中断1.1 什么是线程中断?线程中断是线程的标志位属性。而不是真正终止线程,和线程的状态无关。线程中断过程表示一个运行中的线程,通过其他线程调用了该线程的 interrupt() 方法,使得该线程中断标志位属性改变。深入思考下,线程中断不是去中断了线程,恰恰是用来通知该线程应该被中断了。具体是一个标志位属性,到底该线程生命周期是去终止,还是继续运...转载 2019-10-23 20:14:50 · 170 阅读 · 0 评论 -
Java多线程基础(一) 线程启动及线程状态
1 线程与多线程线程是什么?线程(Thread)是一个对象(Object)。用来干什么?Java 线程(也称 JVM 线程)是 Java 进程内允许多个同时进行的任务。该进程内并发的任务成为线程(Thread),一个进程里至少一个线程。Java 程序采用多线程方式来支持大量的并发请求处理,程序如果在多线程方式执行下,其复杂度远高于单线程串行执行。那么多线程:指的是这个程序(一个进程)运行时产...转载 2019-10-23 19:13:27 · 165 阅读 · 0 评论 -
Java基础知识点总结(一)
Java基础知识点1)面向对象的特性:封装、继承和多态封装是指将对象的实现细节隐藏起来,然后通过公共的方法来向外暴露出该对象的功能。安全、简化操作继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类是一种特殊的父类,能直接或间接获得父类的成员缺点: - 继承是强耦合关系,父类改变子类必须变 - 继承破坏了封装,对于父类而言,它的实现细节对子类来说都是透明的。...原创 2019-10-17 22:52:08 · 194 阅读 · 0 评论