后端

神秘的volatile关键字

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

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

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

static关键字(重点)

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

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

JAVA笔记

八、类的特性 类的私有成员与公共成员与缺省访问控制符 private:私有成员修饰符,无法从该类的外部访问到该类内部的成员,而只能被该类自身访问和修改,而不能被任何其他类获取或引用,从而达到对数据的最高级别保护 public:公共访问控制符,该成员可以被所有其他类所访问,会造成安全性和数据封装性的下降,所以一般应减少公共成员的使用。 可以在公共成员方法内加上判断代码,可以杜绝错误数据的输入。 缺省

linux的TCP连接数量最大不能超过65535个吗,那服务器是如何应对百万千万的并发的?

首先,问题中描述的65535个连接指的是客户端连接数的限制。 在tcp应用中,server事先在某个固定端口监听,client主动发起连接,经过三次握手后建立tcp连接。那么对单机,其最大并发tcp连接数是多少呢? 如何标识一个TCP连接 在确定最大连接数之前,先来看看系统如何标识一个tcp连接。系统用一个4四元组来唯一标识一个TCP连接:{localip, localport,remoteip,