![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习
文章平均质量分 94
阿拉丁神灯
这个作者很懒,什么都没留下…
展开
-
2020最新Java并发基础常见面试题总结
文章目录Java 并发基础常见面试题总结1. 什么是线程和进程?1.1. 何为进程?1.2. 何为线程?2. 请简要描述线程与进程的关系,区别及优缺点?2.1. 图解进程和线程的关系2.2. 程序计数器为什么是私有的?2.3. 虚拟机栈和本地方法栈为什么是私有的?2.4. 一句话简单了解堆和方法区3. 说说并发与并行的区别?4. 为什么要使用多线程呢?5. 使用多线程可能带来什么问题?6. 说说线程的生命周期和状态?7. 什么是上下文切换?8. 什么是线程死锁?如何避免死锁?8.1. 认识线程死锁8.2.转载 2021-03-23 10:31:23 · 203 阅读 · 0 评论 -
ConcurrentHashMap源码+底层数据结构分析
1. ConcurrentHashMap 1.71. 存储结构Java 7 中 ConcurrentHashMap 的存储结构如上图,ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦初始化就不能改变,默认 Segment 的个数是 16 个,你也可以认为 ConcurrentHashMap 默认支持最多 16 个线程并发。2. 初始化通转载 2021-03-18 14:11:14 · 256 阅读 · 0 评论 -
HashMap(JDK1.8)源码+底层数据结构分析
文章目录HashMap 简介底层数据结构分析JDK1.8 之前JDK1.8 之后HashMap 源码分析构造方法put 方法get 方法resize 方法HashMap 常用方法测试HashMap 简介HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8 之后 HashMap 的组成多了红黑转载 2021-03-17 14:17:04 · 178 阅读 · 0 评论 -
LinkedList源码分析
文章目录简介内部结构分析LinkedList源码分析构造方法空构造方法:用已有的集合创建链表的构造方法:添加(add)方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除(remove/pop)方法LinkedList类常用方法测试:简介LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安转载 2021-03-15 14:12:20 · 148 阅读 · 0 评论 -
ArrayList源码+扩容机制分析
1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E>转载 2021-03-15 13:48:45 · 142 阅读 · 0 评论 -
Java集合框架常见面试题
文章目录1. 剖析面试最常见问题之 Java 集合框架1.1. 集合概述1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别?1.1.3. 集合框架底层数据结构总结1.1.3.1. List1.1.3.2. Set1.1.3.3. Map1.1.4. 如何选用集合?1.1.5. 为什么要使用集合?1.1.6. Iterator 迭代器1.1.6.1. 迭代器 Iterator 是什么?1.1.6.2. 迭代器 Iterator 有啥用?1.1.6.3. 如何使用?1.1.转载 2020-11-03 14:33:56 · 293 阅读 · 0 评论 -
手把手教你定位常见Java性能问题
概述性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。预备知识既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。top命令top命令使我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。top -Hp转载 2020-11-03 11:56:28 · 153 阅读 · 0 评论 -
JAD反编译tricks
jad反编译工具,已经不再更新,且只支持JDK1.4,但并不影响其强大的功能。基本用法:jad xxx.class,会生成直接可读的xxx.jad文件。自动拆装箱对于基本类型和包装类型之间的转换,通过xxxValue()和valueOf()两个方法完成自动拆装箱,使用jad进行反编译可以看到该过程:public class Demo { public static void main(String[] args) { int x = new Integer(10); // 自动拆箱转载 2020-11-03 11:35:24 · 324 阅读 · 0 评论 -
代理模式详解:静态代理+JDK CGLIB 动态代理实战(动态代理和静态代理的区别 JDK动态代理 和 CGLIB 动态代理的区别)
文章目录1. 代理模式2. 静态代理3. 动态代理3.1. JDK 动态代理机制3.1.1. 介绍3.1.2. JDK 动态代理类使用步骤3.1.3. 代码示例3.2. CGLIB 动态代理机制3.2.1. 介绍3.2.2. CGLIB 动态代理类使用步骤3.2.3. 代码示例3.3. JDK 动态代理和 CGLIB 动态代理对比4. 静态代理和动态代理的对比5. 总结1. 代理模式代理模式是一种比较好的理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样转载 2020-10-13 14:30:19 · 211 阅读 · 0 评论 -
枚举
最近重看 Java 枚举,看到这篇觉得还不错的文章,于是简单翻译和完善了一些内容,分享给大家,希望你们也能有所收获。另外,不要忘了文末还有补充哦!ps: 这里发一篇枚举的文章,也是因为后面要发一篇非常实用的关于 SpringBoot 全局异常处理的比较好的实践,里面就用到了枚举。这篇文章由 JavaGuide 翻译,公众号: JavaGuide,原文地址:https://www.baeldung.com/a-guide-to-java-enums 。转载请注明上面这段文字。1.概览在本文中,我.转载 2020-10-03 11:44:20 · 230 阅读 · 0 评论 -
Java 常见关键字总结:final、static、this、super!
文章目录final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)参考final,static,this,super 关键字总结final 关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方转载 2020-10-03 11:44:00 · 582 阅读 · 0 评论 -
什么是反射机制,反射机制的应用场景有哪些
反射机制介绍JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。获取 Class 对象的两种方式如果我们动态获取到这些信息,我们需要依靠 Class 对象。Class 类对象将一个类的方法、变量等信息告诉运行的程序。Java 提供了三种方式获取 Class 对象:1.知道具体类的情况下可以使用:Class alunbarClass = T转载 2020-10-03 11:43:33 · 327 阅读 · 0 评论 -
JavaEE基础知识
文章目录Servlet总结阐述Servlet和CGI的区别?CGI的不足之处:Servlet的优点:Servlet接口中有哪些方法及Servlet生命周期探秘get和post请求的区别什么情况下调用doGet()和doPost()转发(Forward)和重定向(Redirect)的区别自动刷新(Refresh)Servlet与线程安全JSP和Servlet是什么关系JSP工作原理JSP有哪些内置对象、作用分别是什么Request对象的主要方法有哪些request.getAttribute()和 reques转载 2020-09-30 09:54:10 · 198 阅读 · 0 评论 -
Java基础知识疑难点
文章目录1. 基础1.1. 正确使用 equals 方法1.2. 整型包装类值的比较1.3. BigDecimal1.3.1. BigDecimal 的用处1.3.2. BigDecimal 的大小比较1.3.3. BigDecimal 保留几位小数1.3.4. BigDecimal 的使用注意事项1.3.5. 总结1.4. 基本数据类型与包装数据类型的使用标准2. 集合2.1. Arrays.asList()使用指南2.1.1. 简介2.1.2. 《阿里巴巴Java 开发手册》对其的描述2.1.3. 使用转载 2020-09-27 10:21:28 · 338 阅读 · 0 评论 -
Java基础知识
文章目录1. Java 基本功1.1. Java 入门(基础概念与常识)1.1.1. Java 语言有哪些特点?1.1.2. 关于 JVM JDK 和 JRE 最详细通俗的解答1.1.2.1. JVM什么是字节码?采用字节码的好处是什么?Java 程序从源代码到运行一般有下面 3 步:总结:1.1.2.2. JDK 和 JRE1.1.3. Oracle JDK 和 OpenJDK 的对比总结:1.1.4. Java 和 C++的区别?1.1.5. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同转载 2020-09-24 16:45:13 · 546 阅读 · 0 评论 -
整理gitHub项目JavaGuide-CSDN版
文章目录java基础基础知识系统总结:重要知识点详解:其他:容器并发面试题总结:面试常问知识点:JVM其他网络操作系统Linux系统数据结构与算法数据结构算法常见算法问题总结:数据库MySQL总结:重要知识点:Redis系统设计必知常用框架Spring/SpringBootMyBatisNetty认证授权JWTSSO(单点登录)分布式分布式搜索引擎RPC消息队列RabbitMQ:RocketMQ:Kafka:API 网关分布式id分布式限流分布式接口幂等性ZooKeeper其他数据库扩展大型网站架构性能测试转载 2020-09-22 10:48:04 · 1908 阅读 · 0 评论 -
2020最新总结Java面试题集合
2020最新总结Java面试集锦,纯干货最近市面上出现了由腾讯、阿里、美团、百度、网易等公司内部技术人员,结合多年工作、面试经验为内推而准备的必会的面试真题,希望可以帮助到你们。如下:算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)二分查找和各种变种的二分查找各类排序算法以及复杂度分析(快排、归并、堆)Java基础(面向对象、四个特性、重载重写、static和final等等很多东西)集合(HashMap、ConcurrentHashMap、各种List,最好结合源码看)并发转载 2020-09-20 12:49:42 · 354 阅读 · 0 评论