后端

神秘的volatile关键字

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

static关键字(重点)

1.static关键字【重点】 static中文意思:静态的 static是和对象无关的。 1.1生活的角度来理解静态的资源 公共的资源的都属于静态的东西 对象可以使用静态的资源,但是和对象无关 宿舍饮水机 就是静态资源 1.2Java中的静态 1.修饰成员变量 静态属性 类名.变量 2.修饰成员方法 静态方法 类名.方法名 3.修饰代码块 静态代码块 类加载时候就

第二章 性能瓶颈的分析和定位(8)

剖析工具(Profiler Tools)         至于工具,看起来是没有问题,Qt Creator已经在Analyze菜单中集成了——QML profiler,CPU, 函数(Function) Profiler,以及Memory Analyzer(内存分析器)。但遗憾的是,这些工具大多数只能在Linux上使用,因为Qt Creator使用的工具是valgrind, 其在Windows下是

Spring 路由匹配机制详解:时间复杂度从 O(n) 降至 O(log n)

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇

MySQL:安装和MySQL基础

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

11、ArrayList和linkedList的区别

ArrayList和linkedList的区别 Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。 Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数据前移). 缺点: 数组初始化必须指定初始化的长度, 否则报错. 例如: List—是一个有序

HashMap底层实现原理

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