摘要:
列举一些重要的 Spring 模块? 谈谈自己对于 Spring IoC 的了解 谈谈自己对于 AOP 的了解 Spring AOP 和 AspectJ AOP 有什么区别? 什么是 bean? bean 的作用域有哪些? 单例 bean 的线程安全问题了解吗? @Component 和 @Bean 阅读全文
摘要:
简介 内部结构分析 LinkedList源码分析 构造方法 添加(add)方法 根据位置取数据的方法 根据对象得到索引的方法 检查链表是否包含某对象的方法: 删除(remove/pop)方法 LinkedList类常用方法测试: 简介 LinkedList是一个实现了List接口和Deque接口的双 阅读全文
摘要:
1. ArrayList 简介 ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。 ArrayList继承于 A 阅读全文
摘要:
JDK 命令行工具 这些命令在 JDK 安装目录下的 bin 目录下: jps (JVM Process Status): 类似 UNIX 的 ps 命令。用户查看所有 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息; jstat( JVM Statistics Monitoring 阅读全文
摘要:
如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有哪些? 阅读全文
摘要:
一.概述 Java虚拟机在执行Java程序时,会把它管理的内存划分为若干个不同的数据区域。JDK1.8和之前版本略有不同。 JDK1.8之前: JDK1.8: 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 (非运行时数据区的一部分) 二.JVM各区域详解 2.1 阅读全文
摘要:
ArrayList有用过吗?它是一个什么东西?可以用来干嘛? ArrayList就是数组列表,主要用来装载数据,当我们装载的是基本类型的数据int,long,boolean,short,byte…的时候我们只能存储他们对应的包装类,它的主要底层实现是数组Object[] elementData。 与 阅读全文
摘要:
HashMap在多线程环境下存在线程安全问题,那你一般都是怎么处理这种情况的? 一般在多线程的场景,可以使用好几种不同的方式去代替: 使用Collections.synchronizedMap(Map)创建线程安全的map集合; Hashtable ConcurrentHashMap 不过出于线程并 阅读全文
摘要:
在HashMap中,indexFor方法其实主要是将hashcode换成链表数组中的下标。 static int indexFor(int h, int length) { return h & (length-1); } 这里实际就是取模。 用位运算是因为它比取模运算效率要高很多,因为它是直接对内 阅读全文
摘要:
1.jdk1.7中的HashMap 1.1 扩容造成死循环分析过程 1.2 扩容造成数据丢失分析过程 2.jdk1.8中HashMap 总结 前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。 1.jdk1.7中的H 阅读全文