- 博客(28)
- 收藏
- 关注
原创 Java调优工具和问题排查
1、top命令找到cpu消耗最高的进程PID2、找到消耗最高的线程IDtop -H -p 进程PID3、printf ‘0x%x\n’ 线程PID4、jstack 进程PID | grep 16进制线程PID -A 20
2024-03-22 19:34:09
243
原创 【Grpc框架】
在gRPC(Google Remote Procedure Call)框架中,服务器端的服务方法通常有两个参数:一个是客户端传递的请求request,另一个是StreamObserver类型的responseObserver。错误处理:如果在服务方法执行过程中发生错误,可以通过responseObserver的onError()方法来通知客户端发生了错误。调用结束:服务方法完成处理后,通过调用responseObserver的onCompleted()方法来表示调用已正常结束。
2024-03-13 15:17:13
525
原创 淘宝自动抢购脚本
淘宝自动抢购脚本抢购脚本是通过Selenium来完成自动登录,和自动点击的操作的。Selenium是一个用于Web应用程序测试的工具,Selenium可以直接运行在浏览器中,通过后台控制操作浏览器,完成购买操作。教程需要安装python环境,安装python环境可参考链接安装python完后记得配置环境和安装Pycharm编辑器(安装Pycharm可参考)一、安装Selenium库Selenium模块是Python的第三方库,可以通过pip进行安装:pip3 install selen
2022-03-19 12:31:54
59485
36
原创 java容器面经
Arraylist 与 LinkedList 区别1. 是否保证线程安全:ArrayList和LinkedList都是不同步的,也就是不保证线程安全;2. 底层数据结构:Arraylist底层使用的是**Object数组**;LinkedList底层使用的是双向链表数据结构(JDK1.6之前为循环链表,JDK1.7取消了循环。)3.插入和删除是否受元素位置的影响:①ArrayList采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。比如:执行add(E e)方法的时候,Arra
2022-02-21 23:54:12
383
原创 Spring面经
Spring:Spring 是一种轻量级开发框架,它是很多模块的集合,这些模块是:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。Spring框架提供面向切面编程,可以很方便地对程序进行拦截,监控地声明式事务,比如日记管理,事务管理。而且只需要通过配置就可以完成对事务地管理,无需对手编程,还支持其他框架,另外一点就是IOC,将对象地创建权交给Spring容器进行管理,不需要自己去new一个对象出来。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
2022-02-20 22:41:33
255
原创 操作系统面经
用户态 内核态根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:用户态(user mode) : 用户态运行的进程可以直接读取用户程序的数据。系统态(kernel mode):可以简单的理解系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。##系统调用我们运行的程序基本都是运行在用户态,如果我们调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了!也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必
2022-02-20 10:30:08
3891
原创 数据库面经
ACID 隔离的原子 一致的持久隔离性 并发事务互不影响原子性 事务的操作要么都执行,要么都不执行。一致性 保持数据库的约束完整性持久性 事务发生了,对数据库的影响是持久的,不会回滚。脏读(读取未提交数据)A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。不可重复读(前后多次读取,数据内容不一致)事务A在执行读取操作,由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而在事务A第一次读取数据,比如此时读取了小明的年龄为20岁,事
2022-02-19 21:47:31
626
原创 计算机网络
TCP/IP四层协议应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议运输层运输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。传输控制协议 TCP(Transmission Control Protocol)–提供面向连接的,一对一的,
2022-02-15 11:50:42
1420
原创 java面经
什么是线程和进程进程是系统进行资源分配和调度的基本单位,而线程是CPU资源分配的最小单位。因为cpu资源比较特殊,它是分配到线程的,占用cpu运行的是线程。一个进程中有多个线程,多个线程共享进程中的堆和方法区资源,每个线程有自己的程序计数器、虚拟机栈和本地方法栈。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。一个 Java 程序的运行是 main 线程和多个其他线程同时运行。Java中创建线程
2022-01-06 16:29:02
458
原创 leetcode-考察排序的算法题
题目215 数组中的第K个最大元素 考察快速排序class Solution { // 快速排序 巧妙解法 int res; public int findKthLargest(int[] nums, int k) { quickSort(nums,0,nums.length - 1,nums.length - k + 1); return res; }//另一个种实现 记这个版本 private void quickSo
2021-11-03 16:21:23
153
原创 回溯算法总结
回溯算法一、回溯算法框架回溯算法的框架:result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择二、相关题目1.全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。代码如下(示
2021-10-28 11:51:14
416
原创 剑指offer-笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档剑指offer笔记前言总结前言第 6 天搜索与回溯算法(简单)剑指 Offer 32 - I. 从上到下打印二叉树剑指 Offer 32 - II. 从上到下打印二叉树 II剑指 Offer 32 - III. 从上到下打印二叉树 III广度优先搜索 二叉树第 7 天搜索与回溯算法(简单)剑指 Offer 26. 树的子结构深度优先搜索剑指 Offer 27. 二叉树的镜像深度优先搜索&广度优先搜索剑指
2021-10-18 17:09:09
395
原创 leetcode热题HOT-100道题
leetcode刷题记录题目题目题目寻找重复的子树序列化二叉树 只能前序或后续遍历 利用map记录每个根节点的序列化字串 若系列化字串数量大于2就是重复的子树题目
2021-10-09 20:13:27
914
原创 字符串算法题
1 替换空格-剑指offer请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。方法一public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer result = new StringBuffer(); for(int i = 0;i < str
2021-08-12 10:25:21
302
原创 Dijkstra算法
Dijkstra算法思路代码Dijkstra 是单源最短路算法思路Dijkstra 思路是维护一个集合 s ,集合内的点是已经确定最短路的点,可以视为一个大整体,每次操作找出与集合相邻的点中距离起点最近的点加入集合中,并确定它的最短路为它的上家的最短路+该边权值,存在 dis 中代码void dijkstra(){ memset(dis,127/3,sizeof(dis));//初始化 v[1]=1; dis[1]=0; for(int i=1;i<=n;+
2021-08-02 11:44:31
105
原创 位运算知识
位运算知识与运算根据 与运算 定义,设二进制数字 n ,则有:若 n & 1 = 0,则 n 二进制 最右一位 为 0 ;若 n & 1 = 1,则 n 二进制 最右一位 为 1 。下面展示一些 移位操作。>> 右移 >>> 右移,左边空出的位以0填充>>>= 右移赋值,左边空出的位以0填充 无符号右移n&(n−1)(n - 1) 解析: 二进制数字 n 最右边的 1 变成 0 ,此 1右边的 0都变成 1 。n
2021-06-23 21:34:33
240
原创 python虚拟环境
创建虚拟环境conda create -n ENV python==3.6这样就创建了一个名字为ENV,基于python版本3.6的一个虚拟环境了。注意,这里和pip建立的虚拟环境不同,pip建立的虚拟环境会直接在当前目录下生成一个虚拟环境的目录,激活虚拟环境也需要指定这个目录才行。而conda安装的虚拟环境,只会把虚拟环境的目录生成在anaconda安装目录下的env目录下。所以,conda创建的虚拟环境有一个很大的优点就是不用指定虚拟env的路径,不过前提是你需要把conda的环境变量早早设置好.
2021-05-21 17:12:34
162
原创 动态规划-背包问题
文章目录前言一、0-1背包二、使用步骤1.引入库2.读入数据总结前言最近在学习各种背包问题 动态规划知识 记个博客录一下一、0-1背包问题描述:一共有N件物品,第i(i从1开始)件物品的重量为w[i],价值为v[i]。在总重量不超过背包承载上限W的情况下,能够装入背包的最大价值是多少?分析:二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport
2021-04-07 15:04:40
1066
原创 linux命令-文件权限管理
文件权限管理ls(list files)ls命令可以查看Linux系统上的文件、目录和设备的权限。ls -l /boot/上述ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。第1位表示存档类型,d表示目录,-表示一般文件。第2~4位表示当前用户的权限(属主权限)。第5~7位表示同用户组的用户权限(属组权限)。第8~10位表示不同用户组的用户权限(其他用户权限)。第11位是一个半角句号.,表示SELinux安全标签。用户权限每组三位,rwx分别表示读、写、执行权限,
2021-03-18 10:10:22
791
原创 Vim知识和常用命令
Vim常用的知识一、vim的几种模式二、vim的模式转换一、vim的几种模式normal mode(即正常模式)command mode(即命令模式)insert mode(即插入模式或编辑模式)visual mode(可视模式)二、vim的模式转换vim不同模式之间的切换操作打开vim之后的界面,就是正常模式。正常模式切换到命令模式,按shift+:即可。正常模式切换到输入模式,正常按i即可。下面快捷键也可以从正常模式进入输入模式:i: 在当前光标所在字符的前面,转为输入模式I:
2020-12-01 19:23:22
136
1
原创 图神经网络知识
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档图神经网络前言一、图神经网络基本知识二、图游走类算法图卷积神经网络图注意力网络图采样算法前言图神经网络的基本知识 最近在打卡图神经网络7天训练营 总结一下 废话不多说 先来张图一、图神经网络基本知识图可以分为无向图 vs 有向图无权图 vs 有权图同构图 vs 异构图图可以用邻接矩阵 邻接表 边集表示二、图游走类算法图游走类模型最开始参考的就是 NLP 领域中的 Word2vec模型,Word2vec 模型自行了解
2020-11-29 02:13:25
471
原创 linux常用命令
Linux 常用命令文章目录Linux 常用命令一、用户管理二、进程管理二、文件管理二、tar zip压缩命令一、用户管理创建用户adduser usernamepassword username切换用户 su - usernameroot 用户切换到普通用户su - wzx再输入wzx用户密码普通用户也可以通过su exit切回root用二、进程管理查询所有进程:ps aux 或者 ps -efps -ef 用标准的格式显示进程:ps aux 用BSD的格式来显示进程:查询
2020-09-03 15:29:39
137
原创 linux安装anaconda3
linux安装anaconda3从anaconda官网下载相应版本的anaconda3运行.sh文件执行命令,修改后的文件生效启动python文件测试从anaconda官网下载相应版本的anaconda3wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh运行.sh文件bash Anaconda3-2019.10-Linux-x86_64.sh按照默认一直yes就行 最后把环境写入.bashrc文件执行命
2020-08-28 10:18:33
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人