自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

转载 整理gitHub项目JavaGuide-CSDN版

文章目录java基础基础知识系统总结:重要知识点详解:其他:容器并发面试题总结:面试常问知识点:JVM其他网络操作系统Linux系统数据结构与算法数据结构算法常见算法问题总结:数据库MySQL总结:重要知识点:Redis系统设计必知常用框架Spring/SpringBootMyBatisNetty认证授权JWTSSO(单点登录)分布式分布式搜索引擎RPC消息队列RabbitMQ:RocketMQ:Kafka:API 网关分布式id分布式限流分布式接口幂等性ZooKeeper其他数据库扩展大型网站架构性能测试

2020-09-22 10:48:04 4122

原创 捕获全局异常推送至钉钉群

场景描述在现有异常捕获的基础上加入异常捕获并推送钉钉群机器人,因为我们项目中使用的全局异常捕获是组件提供的包,所以我们不能自定义全局异常处理类,因为会覆盖掉组件包中的异常处理逻辑(这部分视公司使用特性而定,可能包含AJAX请求、Zipkin链路日志处理)。所以我们要使用java语言类的继承特性,继承组件包,重写日志捕获方法,调用父类包中的日志处理逻辑,加上我们自己的扩展,以此完成该功能。本项目中异常处理器/** * @Author: zhangdc * @Date: 2021/5/27 18:30

2021-05-29 14:43:30 551

转载 Java高级开发工程师面试题汇总

面试主要涉及到的技术点概述:以Java编程基础、JVM原理、Spring\Spring Boot、Redis、Zookeeper、消息队列(Kafka、Rocket MQ)、MySQL等为主;也包括Dubbo、Tomcat性能优化、容器化技术(Docker、Kubernetes)、微服务中监控、Linux常用命令等问题;最为重要的当然是算法和数据结构。1.Java基础问题Java中多态的实现原理?Java中线程池的工作原理?ThreadLocal的使用场景和原理?使用syncronized和Lo

2021-04-28 17:10:49 3058

原创 JAVA网络通信篇面试

文章目录网络通信篇TCP和UDP有什么区别?TCP为什么三次握手而不是两次握手?JAVA有哪几种IO模型?有什么区别?JAVA NIO的核心组件是什么?分别有什么用?select,poll和epoll有什么区别?描述下HTTP和HTTPS的区别网络通信篇TCP和UDP有什么区别?TCP为什么三次握手而不是两次握手?TCP(Transfer Control Protocol)是一种面向连接的、可靠的、传输层通讯协议。特点:面向连接的,比如打电话,点对点的通信,高可靠的,效率比较低,占用的系统资源比较大

2021-04-04 18:39:17 376

原创 java并发篇面试

文章目录java并发篇java如何开启线程?怎么保证线程安全?Volatile和Synchronized有什么区别?Volatile能不能保证线程安全?DCL(Double check Lock)单例为什么要加Volatile?JAVA锁机制是怎么样的?偏向锁,轻量级锁,重量级锁有什么区别?锁机制是如何升级的?谈谈你对AQS的理解,AQS是如何实现可重入锁?有A,B,C三个线程,如何保证三个线程同时执行?如何在并发情况下保证三个线程依次执行?如何保证三个线程有序交错进行?如何对字符串进行快速排序?java

2021-04-04 18:37:57 319

转载 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 705

转载 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 267

转载 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 194

转载 LinkedList源码分析

文章目录简介内部结构分析LinkedList源码分析构造方法空构造方法:用已有的集合创建链表的构造方法:添加(add)方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除(remove/pop)方法LinkedList类常用方法测试:简介LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安

2021-03-15 14:12:20 386

转载 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 175

转载 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 977

转载 手把手教你定位常见Java性能问题

概述性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙脚乱,我们本篇文章来模拟下常见的几个Java性能故障,来学习怎么去分析和定位。预备知识既然是定位问题,肯定是需要借助工具,我们先了解下需要哪些工具可以帮忙定位问题。top命令top命令使我们最常用的Linux命令之一,它可以实时的显示当前正在执行的进程的CPU使用率,内存使用率等系统信息。top -Hp

2020-11-03 11:56:28 186

转载 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 357

转载 代理模式详解:静态代理+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 707

转载 枚举

最近重看 Java 枚举,看到这篇觉得还不错的文章,于是简单翻译和完善了一些内容,分享给大家,希望你们也能有所收获。另外,不要忘了文末还有补充哦!ps: 这里发一篇枚举的文章,也是因为后面要发一篇非常实用的关于 SpringBoot 全局异常处理的比较好的实践,里面就用到了枚举。这篇文章由 JavaGuide 翻译,公众号: JavaGuide,原文地址:https://www.baeldung.com/a-guide-to-java-enums 。转载请注明上面这段文字。1.概览在本文中,我.

2020-10-03 11:44:20 240

转载 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 859

转载 什么是反射机制,反射机制的应用场景有哪些

反射机制介绍JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。获取 Class 对象的两种方式如果我们动态获取到这些信息,我们需要依靠 Class 对象。Class 类对象将一个类的方法、变量等信息告诉运行的程序。Java 提供了三种方式获取 Class 对象:1.知道具体类的情况下可以使用:Class alunbarClass = T

2020-10-03 11:43:33 405

转载 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 431

转载 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 348

转载 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 574

转载 线程池的好处

线程池的好处线程使应用能够更加充分合理的协调利用cpu 、内存、网络、i/o等系统资源。线程的创建需要开辟虚拟机栈,本地方法栈、程序计数器等线程私有的内存空间。在线程的销毁时需要回收这些系统资源。频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程的风险。另外,在服务器负载过大的时候,如何让新的线程等待或者友好的拒绝服务?这些丢失线程自身无法解决的。所以需要通过线程池协调多个线程,并实现类似主次线程隔离、定时执行、周期执行等任务。线程池的作用包括:利用线程池管理并复用线程、控制最大并发数等.

2020-09-21 10:37:41 521

转载 2020最新总结Java面试题集合

2020最新总结Java面试集锦,纯干货最近市面上出现了由腾讯、阿里、美团、百度、网易等公司内部技术人员,结合多年工作、面试经验为内推而准备的必会的面试真题,希望可以帮助到你们。如下:算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)二分查找和各种变种的二分查找各类排序算法以及复杂度分析(快排、归并、堆)Java基础(面向对象、四个特性、重载重写、static和final等等很多东西)集合(HashMap、ConcurrentHashMap、各种List,最好结合源码看)并发

2020-09-20 12:49:42 413

转载 java 事件机制学习

java 事件机制java的事件机制一般包括三个部分:EventObject,EventListener和Source。EventObjectjava.util.EventObject是事件状态对象的基类,它封装了事件源对象以及和事件相关的信息。所有java的事件类都需要继承该类。EventListenerjava.util.EventListener是一个标记接口,就是说该接口内是没有任何方法的。所有事件监听器都需要实现该接口。事件监听器注册在事件源上,当事件源的属性或状态改变的时候,调用相应监

2020-09-18 14:26:12 359 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除