后端

剑指offer(第2版)

4/75 03.找出数组中重复的数字 03 try1: 遍历 超时 class Solution: def findRepeatNumber(self, nums: List[int]) -> int: for i in range(len(nums)-1): for j in range(i+1,len(nums)): # 第一

神秘的volatile关键字

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

使用Wireshark解密HTTPS数据包

1、Linux操作系统 解密https数据包需要设置SSLKEYLOGFILE变量,推荐写入配置文件中。 echo "export SSLKEYLOGFILE=~/.ssl.key" >> ~/.bashrc source ~/.bashrc 使用tcpdump命令抓取https的数据包。 tcpdump -i eth0 tcp and port 443 -s0 -nn -w fir

CPU使用率高问题排查方案

引言 Java程序在实际生产过程中经常遇到CPU使用率高的问题,那么应该如何排查问题的原因呢,本文大概描述一下排查方法。 一、排查占用CPU的进程 使用top命令,在大写打开的情况下按P键或者在大写没有打开的情况下按 shift+P键,会按照CPU使用率的高低进行排序,查找使用率最高的进程获取进程PID。 二、查找实际占用最高CPU的线程 使用命令top -H -p PID,此处PID就是上一步获

MySQL:安装和MySQL基础

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

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

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

LeetCode - #73 矩阵置零

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

HashMap底层实现原理

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

11、ArrayList和linkedList的区别

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

JVM

1. JVM体系结构 JVM体系结构 堆和栈的关系 “对象的引用”在栈里面 真正对象的“数据”在堆里面 2.类加载器及双亲委派机制 类加载器 作用:加载class文件 类是模板,对象是具体的 public class Test { public static void main(String[] args) { //类是模板,对象是具体的