08 2021 档案

摘要:列举一些重要的 Spring 模块? 谈谈自己对于 Spring IoC 的了解 谈谈自己对于 AOP 的了解 Spring AOP 和 AspectJ AOP 有什么区别? 什么是 bean? bean 的作用域有哪些? 单例 bean 的线程安全问题了解吗? @Component 和 @Bean 阅读全文
posted @ 2021-08-31 00:07 Vincent-yuan 阅读(121) 评论(0) 推荐(0) 编辑
摘要:简介 内部结构分析 LinkedList源码分析 构造方法 添加(add)方法 根据位置取数据的方法 根据对象得到索引的方法 检查链表是否包含某对象的方法: 删除(remove/pop)方法 LinkedList类常用方法测试: 简介 LinkedList是一个实现了List接口和Deque接口的双 阅读全文
posted @ 2021-08-30 23:08 Vincent-yuan 阅读(60) 评论(0) 推荐(0) 编辑
摘要:1. ArrayList 简介 ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。 ArrayList继承于 A 阅读全文
posted @ 2021-08-30 12:50 Vincent-yuan 阅读(182) 评论(0) 推荐(0) 编辑
摘要:JDK 命令行工具 这些命令在 JDK 安装目录下的 bin 目录下: jps (JVM Process Status): 类似 UNIX 的 ps 命令。用户查看所有 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息; jstat( JVM Statistics Monitoring 阅读全文
posted @ 2021-08-27 13:02 Vincent-yuan 阅读(190) 评论(0) 推荐(0) 编辑
摘要:如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算法,各自的特点? HotSpot 为什么要分为新生代和老年代? 常见的垃圾回收器有哪些? 阅读全文
posted @ 2021-08-26 22:22 Vincent-yuan 阅读(109) 评论(0) 推荐(0) 编辑
摘要:一.概述 Java虚拟机在执行Java程序时,会把它管理的内存划分为若干个不同的数据区域。JDK1.8和之前版本略有不同。 JDK1.8之前: JDK1.8: 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 (非运行时数据区的一部分) 二.JVM各区域详解 2.1 阅读全文
posted @ 2021-08-25 23:54 Vincent-yuan 阅读(455) 评论(0) 推荐(0) 编辑
摘要:ArrayList有用过吗?它是一个什么东西?可以用来干嘛? ArrayList就是数组列表,主要用来装载数据,当我们装载的是基本类型的数据int,long,boolean,short,byte…的时候我们只能存储他们对应的包装类,它的主要底层实现是数组Object[] elementData。 与 阅读全文
posted @ 2021-08-25 06:15 Vincent-yuan 阅读(94) 评论(0) 推荐(0) 编辑
摘要:HashMap在多线程环境下存在线程安全问题,那你一般都是怎么处理这种情况的? 一般在多线程的场景,可以使用好几种不同的方式去代替: 使用Collections.synchronizedMap(Map)创建线程安全的map集合; Hashtable ConcurrentHashMap 不过出于线程并 阅读全文
posted @ 2021-08-24 08:04 Vincent-yuan 阅读(100) 评论(0) 推荐(0) 编辑
摘要:在HashMap中,indexFor方法其实主要是将hashcode换成链表数组中的下标。 static int indexFor(int h, int length) { return h & (length-1); } 这里实际就是取模。 用位运算是因为它比取模运算效率要高很多,因为它是直接对内 阅读全文
posted @ 2021-08-23 23:08 Vincent-yuan 阅读(2494) 评论(0) 推荐(0) 编辑
摘要:1.jdk1.7中的HashMap 1.1 扩容造成死循环分析过程 1.2 扩容造成数据丢失分析过程 2.jdk1.8中HashMap 总结 前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。 1.jdk1.7中的H 阅读全文
posted @ 2021-08-21 18:07 Vincent-yuan 阅读(558) 评论(0) 推荐(0) 编辑
摘要:你了解数据结构中的HashMap么?能跟我聊聊他的结构和底层原理么? HashMap是我们非常常用的数据结构,由数组和链表组合构成的数据结构。 大概如下,数组里面每个地方都存了Key-Value这样的实例,在Java7叫Entry在Java8中叫Node。 HashMap在put插入时,会根据key 阅读全文
posted @ 2021-08-20 23:26 Vincent-yuan 阅读(65) 评论(0) 推荐(0) 编辑
摘要:Queue 是一端进另一端出的线性数据结构;而 Deque 是两端都可以进出的。 Queue Java 中的 这个 Queue 接口稍微有点坑,一般来说队列的语义都是先进先出(FIFO)的。 但是这里有个例外,就是 PriorityQueue,也叫 heap,并不按照进去的时间顺序出来,而是按照规定 阅读全文
posted @ 2021-08-20 07:29 Vincent-yuan 阅读(232) 评论(0) 推荐(1) 编辑
摘要:本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示: HashMap 遍历 HashMap 遍历从大的方向来说,可分为以下 4 类: 迭代器(Iterator)方式遍历; For Each 方式遍历; 阅读全文
posted @ 2021-08-19 22:42 Vincent-yuan 阅读(8748) 评论(0) 推荐(1) 编辑
摘要:在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出 阅读全文
posted @ 2021-08-13 07:57 Vincent-yuan 阅读(76) 评论(0) 推荐(0) 编辑
摘要:1. 剖析面试最常见问题之 Java 集合框架 1.1. 集合概述 1.1.1. Java 集合概览 1.1.2. 说说 List,Set,Map 三者的区别? 1.1.3. 集合框架底层数据结构总结 1.1.3.1. List 1.1.3.2. Set 1.1.3.3. Map 1.1.4. 如何 阅读全文
posted @ 2021-08-10 23:09 Vincent-yuan 阅读(209) 评论(0) 推荐(0) 编辑
摘要:一 前言 做web开发有一点很烦人就是要对前端输入参数进行校验,基本上每个接口都要对参数进行校验,比如一些非空校验、格式校验等。 如果参数比较少的话还是容易处理的一但参数比较多了的话代码中就会出现大量的if-else语句。使用这种方式虽然简单直接,但是也有不好的地方,一是降低了开发效率,因为我们需要 阅读全文
posted @ 2021-08-10 19:26 Vincent-yuan 阅读(512) 评论(0) 推荐(0) 编辑
摘要:应用场景 同步 异步 Spring 已经实现的线程池 Spring中启用@Async @Async应用默认线程池 @Async应用自定义线程池 对于异步方法调用,从Spring3开始提供了@Async注解,该注解可以被标在方法上,以便异步地调用该方法。调用者将在调用时立即返回,方法的实际执行将提交给 阅读全文
posted @ 2021-08-08 15:28 Vincent-yuan 阅读(158) 评论(0) 推荐(0) 编辑
摘要:Spring 如何在一个事务中开启另一个事务? 这样的情景可能不常见,但是还是会有的,一旦遇到,如果业务比较复杂,就会很麻烦,但是还是有解决的方案的,比如将一个service方法拆成两个方法,也就是将两个操作的事务分开。 但是这只适用与业务比较简单的,如果出现多次数据库的写操作,而我们调用的系统只需 阅读全文
posted @ 2021-08-08 11:31 Vincent-yuan 阅读(693) 评论(0) 推荐(0) 编辑
摘要:用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景? 不知道小伙伴们有没有这样的经历,在自己开心的编写业务代码时候,突然某一个方法里的事务好像失效了。然后 debug 跟踪代码时发现,自己第一步的 insert 或者 update 的数据在语句执行完毕后,数据库中并没 阅读全文
posted @ 2021-08-08 11:05 Vincent-yuan 阅读(647) 评论(0) 推荐(0) 编辑
摘要:多线程有几种实现方式?如果被问到这个问题一定很头疼,因为百度一下随便就能出现各种各样的答案。两种、三种、四种、五种、六种、七种。。。 但本质上来讲,个人认为只有一种方式:实现Runnable接口。 先放个图: 1、实现Runnable接口 1 public class DemoThreadTask 阅读全文
posted @ 2021-08-06 00:16 Vincent-yuan 阅读(70) 评论(0) 推荐(0) 编辑
摘要:interrupt()、interrupted()、isInterrupted() 这三个方法都涉及到多线程的一个知识点 中断机制 三个中断方法 中断标识位是JDK源码看不到的,是虚拟机线程实现层面的。 下面结合代码逐一看一下这三个方法的作用,以及为什么中断标识位是虚拟机实现层面的: 1、inter 阅读全文
posted @ 2021-08-05 23:55 Vincent-yuan 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一.中断概述 这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理。感觉对InterruptedException异常进行处理是一件谨慎且有技巧的活儿。 Thread.stop, Thread.suspend, Thread.resu 阅读全文
posted @ 2021-08-05 23:46 Vincent-yuan 阅读(386) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示