后端

重新认识数组

什么是数组 数组是一个连续内存空间,存储相同数据类型的数据结构。 数组优缺点 优点:由于连续的内存空间,且每个元素的数据类型相同,也就是每个元素的字节数相同,所以可以随件访问数组任意元素。计算公式为:a[k]_address = base_address + k * type_size。通过下标查找数组的时间复杂度为T(n) = O(1)。 缺点:不适合插入和删除,有序数组的删除和插入的时间复杂度

动态代理-Java-含源码解析

什么是代理模式:代理模式是一种结构型设计模式,主要用于给某一个对象提供代理对象,并由代理对象控制对真实对象的访问。 主要应用:Spring AOP、日志、用户鉴权、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、、全局性异常处理、性能监控,甚至事务处理等。 代理模式角色:主要分为调用方、代理对象,业务对象、抽象接口 抽象接口:定义对外提供的方法(功能)。

HashMap底层实现原理

java1.7 以前HashMap底层由数组+链表形式实现。 1.1 插入数据时首先计算数据key的hash值,根据hash找到对应的数组槽位。 1.2 找到槽位后,判断当前数组槽位是否为null,null则直接作为链表表头插入,否则判断当前需要插入的key是否已经在当前槽位的链表中存在,存在则直接替换新值,不存在则插入到头结点。 // hash值计算 static final int has

MySQL:安装和MySQL基础

     一、centos7下安装MySQL      说明:安装与卸载的过程中,用户全部切换成root,等初期完全适应mysql语句的时候,再尝试创建普通用户!!1.1 卸载不必要的软件关于mysql和mariadb:MySQL和MariaDB,它们有什么区别?_mariadb和mys

LeetCode - #73 矩阵置零

前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新了 72 期,我们会保持更新时间和进度(周一、周三、周五早上 9:00 发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。 不积跬步,无以至千里;不积小流,无以成江海

神秘的volatile关键字

前言 volatile关键字是面试中常问的知识点,包括三点:可见性、有序性、非原子性。接下来就说一下这三点。 JMM(Java Memory Model - Java内存模型) 每个 Java 线程都有⾃⼰的⼯作内存。操作数据,⾸先从主内存中读,得到⼀份拷⻉,操作完毕后再写回主内存 JMM可能带来可⻅性、原⼦性和有序性问题 可⻅性:是指某个线程对主内存内容的修改,应该⽴刻通知其它线程 有

Spring Cloud动态配置刷新:@RefreshScope与@Component的深度解析

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 &#x1f310

[崩溃] Java和Android崩溃捕获机制

作为开发同学,每天都在面临各种各种的崩溃问题。 我们都如果在Android应用中发生了未捕获的崩溃问题,不管是在主线程还是在子线程,应用都会直接退出。 但是Java程序,子线程抛出的异常,不会引起程序的退出。 那你们知道JVM是如何处理应用未捕获崩溃的吗?Android又是怎样在发生崩溃时让程序退出的呢? 崩溃处理机制 当一个线程抛出异常时,JVM会调用线程的dispatchUncaughtE

AI赋能微服务:Spring Boot与机器学习驱动的未来应用开发

AI赋能微服务:Spring Boot与机器学习驱动的未来应用开发 🧑 作者简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C&#43

Java探针(javaagent)

JDK1.5开始引入了Agent机制(即启动java程序时添加“-javaagent”参数,Java Agent机制允许用户在JVM加载class文件的时候先加载自己编写的Agent文件,通过修改JVM传入的字节码来实现注入自定义的代码。采用这种方式时,必须在容器启动时添加jvm参数,所以需要重启Web容器。 JDK1.6新增了attach方式,可以对运行中的java进程附加agent,提供了动