自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Mininet+Ryu安装教程(Ubuntu16.04+python 3.6)

本文记录mininet+ryu环境搭建Ryu安装教程Ubuntu16.04内置python版本为2.7和3.5,安装过程遇到各种问题,于是自行安装了3.6版本,教程很多,此处不赘述。#使用python3.6 记得装依赖sudo apt install python3.6-dev然后依次执行如下命令#更新apt-git sudo apt-get update#安装gitsudo apt-get install git#安装pip sudo apt-get install python

2022-01-30 00:59:19 1188 2

原创 2021-09-14

链表删除倒数第n个节点(双指针法)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) :

2021-09-14 16:23:00 212

原创 字节跳动-系统架构-北京-一面面经

1、自我介绍2、介绍当前实习期间所做的工作3、UDP可靠传输项目,问的很深4、拥塞控制算法听过BBR吗5、了解quick吗,做完UDP可靠传输的项目有没有去对比过和quick之间的实现差异6、DNS解析的过程7、HTTP1.0 1.1 2.0之间的区别8、常见的状态码9、了解服务端给客户端返回内容时做压缩的算法吗10、linux常用命令11、进程和线程12、线程同步的方式13、进程间通信方式14、C++中const关键字15、常量指针和指针常量16、在继承时,调用构造函数的顺序

2021-09-01 16:25:32 624

原创 百度—Java研发工程师—一面面经

1、自我介绍2、项目(高并发秒杀、UDP可靠传输)项目挖的比较深3、ThreadLocal4、进程间通信的方式5、数据库中加锁机制6、举一个数据库中死锁的例子7、MySQL中遇到死锁会如何处理8、MySQL索引 索引分类9、索引可以用哪些数据结构实现,B+树相比其他有什么优势,B+树搜索最差情况下会退化为什么?10、分析一下用跳表做索引11、两个栈实现一个队列...

2021-09-01 15:41:02 221

原创 递归+回溯 解决全排列和子集问题

全排列问题题目描述:给定一个不含重复数字的数组 nums ,返回其所有可能的全排列 。你可以按任意顺序返回答案。如给定[1,2,3],返回[1,2,3] [1,3,2] [2,1,3] [2,3,1] [3,2,1] [3,1,2]class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int&gt

2021-08-30 14:56:42 149

原创 阿里-支付宝-Java研发工程师-一面面经

前言这次面试是本人第一次面阿里,给人的感觉还是挺特别的,阿里的面试相比其他公司感觉考查的贴切实际,不是简单的去考八股文或是写算法题,而是更加注重实际能力的考查,思考问题的深度等,总之感觉还是挺难的,这次暴露出来的不足:①Java基础②设计模式③项目思考的深度1、自我介绍2、spring里AOP的作用是什么3、Java中线程池的几个主要参数4、Java中的HashMap5、自己的Java代码量6、对数据库中的索引的了解7、自己有实际去测过不使用索引和使用索引速度差能达到多少吗?8、

2021-08-14 15:05:01 257 1

原创 小米-Java研发工程师-一面面经

今天的面试官贼友好,整个面试过程非常轻松,爱了爱了1、自我介绍2、问项目,简历上的项目挨个问了一遍3、最长回文子串采用中心扩散法class Solution {public: int getLongestPalindrome(string A, int n) { if(n <= 1) return n; int left = 0, right = 0, longest = 1; for(int i = 0; i < n;.

2021-08-09 21:24:34 370

原创 网易游戏-后台开发工程师-技术中心-一面面经

前言网易游戏的这场面试,总体体验不是很好,感觉面试官没怎么准备,约好的视频面,面试官说他那边麦克风用不了,临时变成电话面,然后问的问题感觉也是现想的,不是提前有所准备,而是蹦出来的那种,而且问完一个问题直接就又问一个新的问题,没有深入的追问,更神奇的是一面竟然就挂了,郁闷。此次面试主要发现的问题是自己对linux知识的缺乏1、自我介绍2、目前工作内容、技术栈3、MySQL事务4、C++ 构造函数、析构函数、子类调用析构函数会调用父类的析构函数吗5、C++ STL中vector和list的使用

2021-08-08 17:20:43 581

原创 2021-08-01

缺失的第一个正数给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n),并且只使用常数级别额外空间的解决方案。本题如果不要求使用常数级别额外空间,我们可以简单的遍历数组,并使用哈希表存储每个正整数然后再找出第一个没有出现的正整数。进一步考虑,我们使用哈希表的原因在于哈希表能够存储元素位置和值的关系,基于此,我们发现我们也可以利用自身的数组来做这件事,具体方式为将值x放在数组的x-1处,然后从头遍历,找到第一个num[i]!=i-1的值即可

2021-08-01 16:58:53 321

原创 字节跳动--国际化电商--后端开发工程师--一面面经

前言谨以本文记录下自己被字节面试官按在地上摩擦的面试经历????1、自我介绍2、从技术角度讲一下实习期间所做的内容3、对当前所在项目数据存储原理的了解、存量还是分片4、MySQL主从复制原理、同步复制、半同步复制、异步复制场景5、MySQL数据库写入数据过程 undo redo log这块儿记忆有点混乱了,待梳理后补充6、C++、Java、python的区别,java执行效率为什么比C++低区别自己查下java执行效率低的原因:①面向对象,对象创建、删除等需要额外开销②平台无

2021-07-28 17:02:18 1539

原创 Java并发编程——简单聊天室实现

前言最近在面试中经常被问到有没有java多线程知识以及多线程编程的经验,因而促成了本次总结,本文是一个简单整合,搜集了以下几篇博客:1、java多线程编程基本知识:Java并发编程——如何创建线程以及Thread类的使用1️⃣java中创建线程的方式:继承Thread类、实现Runnable接口1、需要重写run()方法:将自定义业务逻辑存储在run方法,让线程运行2、实现Runnable接口相比继承Thread类有如下优势: <1>、可以避免由于Java的单继承特性而带来的

2021-07-25 16:42:35 274

原创 牛客网刷题笔记——树

文章目录求二叉树的层序遍历在二叉树中寻找最近的公共祖先二叉树的先序、中序、后序遍历二叉树根节点到叶子节点之和为指定值的路径二叉树所有路径和求二叉树最大深度判断二叉树是否为平衡二叉树升序数组转化为平衡二叉树根据先序遍历结果和中序遍历结果重建二叉树合并二叉树二叉搜索树第K个节点二叉树的镜像二叉树是否对称求二叉树的层序遍历给定一个二叉树,返回该二叉树层序遍历的结果实现思路:BFS, 用队列保存每一层节点1️⃣先将根节点入队2️⃣当队列不为空①求出当前队列len(即当前层)②取出前len个节点,值存起

2021-07-24 17:13:43 395

原创 2021-秋招-提前批-美团-移动端-二面面经

1、自我介绍2、对移动端的了解3、线程的状态、进入等待队列的情况、如何从等待队列进入就绪态简单来说可以分为五种:创建、就绪、运行、等待、结束处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权,停止执行,此时进入阻塞状态,直到其进入到就绪状态,才有机会再次被CPU调用以进入到运行状态。根据阻塞产生的原因不同,阻塞状态又可以分为三种:1.等待阻塞:运行( running )的线程执行 o . wait ()方法, JVM 会把该线程放 入等待队列(waitting queue )中。2.

2021-07-24 12:50:00 292 1

原创 2021-秋招-提前批-美团-移动端-一面面经

1、算法题:用两个栈实现一个队列本题看起来很简单,实际上也并不复杂,但其实还是有点考验思维,我们知道栈的特点是先进后出,队列的特点是先进先出,为了实现队列,我们可以使用两个栈,具体操作如下1、push时,向stack1中push2、pop时,我们需要将stack1中的元素压入stack2以调换顺序,但不能简单的每次pop时直接将stack1中的元素都压进stack2,考虑如下场景:[“PSH1”,“PSH2”,“POP”,“PSH3”,POP"],如果简单按照之前逻辑,输出就为1,3,但预期是1,

2021-07-22 19:34:57 259

原创 牛客网刷题笔记——链表

反转链表描述输入一个链表,反转链表后,输出新链表的表头。输入: {4,1,2,3}返回值: {3,2,1,4}本题看似是一道很简单的题,很多人刷题之路可能是从这道题开始,但如果不看题解,能独立想清楚却并不是那么容易,此题考查的是通过对链表指针的操作,实现链表反转。建议看完实现思路后,自己画一遍过程。实现思路使用三个指针,来实现1、cur指针指向待反转链表的第一个节点2、pre指针指向已反转链表的最后一个节点3、nex指针用以保存待反转链表的下一个节点实现过程:1、记录下一个节点

2021-07-18 17:13:58 240

原创 Redis 数据结构底层原理及其应用场景

前言以下总结主要参考该两篇博客,讲的十分详细,强烈推荐redis 详解Redis五种数据结构的底层实现五大类数据类型应用场景string 数据类型,因为string 类型是二进制安全的,可以用来存放图片,视频等内容,另外由于Redis的高性能读写功能,而string类型的value也可以是数字,可以用作计数器(INCR,DECR),比如分布式环境中统计系统的在线人数,秒杀等。hash 数据类型,value 存放的是键值对,比如可以做单点登录存放用户信息。list 数据类型,可以实现

2021-07-14 11:27:21 85

原创 《图解HTTP》——HTTPS 加密通信机制

前言本文用于总结HTTPS 相关知识,阅读本文 需要有以下先导知识:1 HTTP协议2 数字证书3 对称加密与非对称加密4 加密算法使用HTTP协议进行通信的不足及可能的解决措施1 ️通信使用明文可能会被窃听 => 加密处理防止被窃听 (通信加密、内容加密)2 ️不验证通信方的身份就可能遭遇伪装 => 查明对手的证书3 ️无法证明报文完整性,可能已遭篡改 => 散列值、数字签名HTTP+ 加密 + 认证 + 完整性保护=HTTPS...

2021-07-13 14:43:03 511

原创 浏览器中输入一个URL到获取到响应的完整过程

2021-07-12 16:42:50 167

原创 高并发秒杀系统

2021-07-12 16:23:57 80

原创 计算机网络五层协议职能概述

2021-07-12 15:54:01 120

原创 《图解HTTP》随记

《图解HTTP》随记1、无状态协议HTTP协议本身是一种无状态协议,协议本身并不保留之前的一切的请求或响应报文的信息,这是为了更快的处理大量事务,确保协议的可伸缩性而特意把HTTP协议设计的如此简单的,为了实现期望的保存状态的功能,引入了Cookie技术。Cookie技术Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态,Cookie会根据从服务器发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再次往服务器发送请求

2021-07-04 12:25:05 76 1

原创 排序算法专题总结——桶排序

算法介绍桶排序的意思是为每个值设立一个桶,然后桶内记录这个值出现次数,然后对桶排序 本文将使用C++ STL中的map和vector来做简易实现例题 给定一个数组,求前K个最频繁的数字代码实现#include<iostream>#include<vector>#include<map>#include<algorithm>using namespace std;bool cmp(const pair<int,int>

2021-07-03 19:31:59 112 2

原创 排序算法专题总结——归并排序

前言归并排序算法是典型的分治算法,现将数组自上而下递归的拆分为n个只有一个元素的数组(此时自然有序),然后再底向上合并每个数组,思路很简单,实现起来也很简单,但如果不动手做一遍,面试现场让你先写,可能会很懵逼,血的教训如果有对实现细节还不清楚的童鞋,可以移步这里示例代码//归并排序#include<iostream>#include<vector>using namespace std;void merge(vector<int>& num

2021-07-03 17:12:56 94

原创 排序算法专题总结——快速排序

前言 在所有的排序算法中,快速排序以其优越的性能(O(nlogn))被我们熟知,算法原理看似很简单: 0️⃣找一个基准值(一般为最左边的值),然后通过单趟扫描后将待排序数组分成两部分 1️⃣一部分都小于等于基准值 2️⃣另一部分都大于等于基准值 3️⃣两边分别递归执行直到结束示例代码#include<iostream>#include<vector>using namespace std;void quicksort(vector<int>&

2021-07-03 16:08:30 404

原创 LeetCode刷题笔记——二分法

前言咕咕了一周的算法专题今日起正式回归啦,今天总结一个看起来好像很简单,但实际上有点难的二分法算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务,需分具体场景使用例题Sqrt(69)题目描述 给定一个非负整数,求它的开方,向下取整。解题思路 很简单,直接看代码吧参考代码int my_sqrt(int num){ if(num==0) return 0; int l = 1, r = num, mid, sqrt;

2021-06-28 20:44:08 139

原创 LeetCode刷题笔记——滑动窗口

前言本文用的算法思路与上一节(双指针)一致,但由于这部分题目理解起来较难,所以单独写一篇例题Minimum Window Substring(76)题目描述 给定两个字符串S和T,求S中包含T所有字符的最短连续子字符串,同时要求时间 复杂度为O(n)输入输出样例 Input:S="ADOBECODEBANC" T="ABC" Output:BANC解题思路本题使用滑动窗口来求解,使用两个指针left和right,均自左向右移动,且left<=right1、开始时left指

2021-06-19 15:20:42 200

原创 LeetCode刷题笔记——双指针

文章目录算法解释例题Two sum(167)题目描述输入输出样例解题思路参考代码Merge Sorted Array(167)题目描述输入输出样例解题思路参考代码Linked List Cycle(142)题目描述解题思路Floyd判圈法参考代码算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务,需分具体场景使用例题Two sum(167)题目描述 在一个增序的整数数组里找到两个数,使他们的和为定值,已知有且只有一对解输入输出样例 Input:array=[2,7

2021-06-18 18:50:15 462

原创 LeetCode刷题笔记——贪心算法

LeetCode刷题笔记——贪心算法前言 本人腾讯TEG大三实习生,之前数次面试字节后端开发实习生,都被按在地上摩擦,主要原因还是刷题太少,之前应对面试简单刷了一些题,也基本忘完了,故此决定系统刷一下LeetCode题目,主要参考书目为LeetCode101自2021/6/17,将每日更新本人刷题笔记~欢迎交流~算法解释 贪心算法,顾名思义,就是每一步操作都保证局部最优,从而使得最后的结果为全局最优的一种思想例题Assign Cookies(455)题目描述 有一群孩子和一堆饼干,

2021-06-17 20:45:39 516

原创 死锁产生的原因及解决方案

死锁产生的原因以及解决方法一.什么是死锁?死锁是由于两个或以上的线程互相持有对方需要的资源,导致这些线程处于等待状态,无法执行。二.产生死锁的四个必要条件1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。3.不剥夺:一个线程在释放资源之前,其他的线程无法剥夺占用。4.循环等待:发生死锁时,线程进入死循环,永久阻塞。三.产生死锁的原因1.竞争不可抢占性资源    p1已经打开F1,想

2021-04-12 19:42:24 1314

原创 阿里云服务器快速搭建网站(官网教程)

1. 登录云服务器在购买ECS服务器后,系统会创建一个ECS实例。每一个ECS实例对应一台已购买的云服务器。您可以通过电脑上自带的终端工具访问云服务器,进行应用部署和环境搭建。在ECS实例列表页面,选择实例的所属地域。找到目标实例,然后在操作列选择【更多】> 【密码/密钥】 > 【重置实例密码】,然后在弹出的对话框设置ECS实例的登录密码。在弹出的页面,单击【立即重启】使新密码生效。在ECS实例列表页面,复制ECS实例的公网IP地址。打开电脑上的命令行终端工具。

2021-03-22 11:19:03 4503

原创 IDEA打包项目为jar包并部署在阿里云服务器使其一直处于运行状态

IDEA打包项目为jar包并部署在阿里云服务器使其一直处于运行状态步骤:1、在pom.xml中导入依赖<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</ar

2021-02-04 12:16:35 870

原创 阿里云服务器部署个人网页并绑定域名

阿里云服务器部署个人网页并绑定域名上一篇博文中介绍了阿里云linux服务器安装XAMPP本文将继续介绍如何在阿里云服务器部署个人网页并绑定域名,流程如下①前期准备:租用阿里云服务器和域名,相关教程很多,本处不再赘述②编写个人网页,然后通过XFTP将文件传到云服务器上,放在之前安装XAMPP的目录下的htdocs目录下③启用Apache服务④登录阿里云,进入控制台,选择域名控制台,然后选择要解析的域名⑤绑定域名**主机记录:**www :将域名解析为www.example.com,填写www

2021-01-28 21:18:58 720

原创 WireShark捕获TCP和HTTP报文并分析

WireShark捕获TCP和HTTP并分析文章目录WireShark捕获TCP和HTTP并分析1、搭建web服务器&制作简单的web页面2、使用Wireshark捕获与web服务器的交互过程的步骤2.1在阿里云服务器中打开XAMPP,点击start按钮,启动Apache服务2.2打开本机wireshark,选择WLAN网卡2.3打开浏览器输入39.102.89.87,打开web服务器页面 端口为802.4wireshark捕获到交互过程3.1TCP协议简述3.2TCP包首部3.3TCP/IP 报

2021-01-26 23:33:29 5843

原创 阿里云linux服务器安装XAMPP

阿里云linux服务器安装XAMPP①首先在官网 下载对应版本的安装包②使用Xftp连接远程主机并将安装包发送到opt文件夹下③使用XShelll连接远程主机并进入到opt目录下,执行以下语句赋予 755 权限,防止因为权限不足,无法安装 chmod -R 755 xampp-linux-*-installer.run④下载XManager⑤执行 以下语句,完成安装sudo ./xampp-linux-*-installer.run⑥执行 以下语句, 手动启动XAMPP服务/opt/l

2021-01-26 00:12:15 330

原创 ucore_lab4_内核线程管理

lab4:内核线程管理文章目录lab4:内核线程管理练习零:填写已有实验练习一:分配并初始化一个进程控制块实现思路关键数据结构alloc_proc实现回答问题练习2:为新创建的内核线程分配资源函数定义do_fork实现回答问题练习三:阅读代码,理解 proc_run 函数和它调用的函数如何完成进程切换的。回答问题实验结果练习零:填写已有实验本实验依赖实验1/2/3。请把你做的实验1/2/3的代码填入本实验中代码中 有“LAB1”,“LAB2”,“LAB3”的注释相应部分。同样使用meld工具,比

2021-01-26 00:08:18 225

原创 ucore_lab3_虚拟内存管理

lab3:虚拟内存管理文章目录lab3:虚拟内存管理练习零:填写已有实验练习一:给未被映射的地址映射上物理页页面异常关键数据结构vma_structmm_structpage fault处理流程do_pgfault()函数回答问题练习二:补充完成基于FIFO的页面替换算法页错误异常页面换入部分页面换出部分回答问题实验结果练习零:填写已有实验本实验依赖实验1/2。请把你做的实验1/2的代码填入本实验中代码中有“LAB1”,“LAB2”的注释 相应部分lab3 依赖 lab1 和 lab2,我们需要

2021-01-26 00:06:12 322 1

原创 ucore_lab2_物理内存管理

文章目录练习0:填写已有实验练习1:实现 first-fit 连续物理内存分配算法**算法介绍**算法实现练习二:实现寻找虚拟地址对应的页表项实现细节回答问题练习三:释放某虚地址所在的页并取消对应二级页表项的映射实现细节回答问题练习0:填写已有实验本处采用meld工具进行比较,使用方法:①打开meld工具②选择需要比对的文件/文件夹③点击compare开始进行比较,不同的文件用星星标出练习1:实现 first-fit 连续物理内存分配算法算法介绍该算法从空闲分区链首开始查找,直至找到一个能满

2021-01-26 00:03:08 389

原创 基于UDP服务实现可靠传输

基于UDP服务实现可靠传输文章目录基于UDP服务实现可靠传输0 作业要求1 实现思路1.1 TCP实现可靠传输的机制1.1.1 报文分析1.1.2 连接管理1.1.3 确认应答1.1.4 超时重传1.1.5 滑动窗口1.1.6 GBN&SR1.1.7 拥塞控制1.1.8 累积确认1.1.9 差错检测1.2 基于UDP服务实现可靠传输协议设计1.2.1 对UDP报文进行封装1.2.2 面向连接1.2.3 确认应答1.2.4 滑动窗口1.2.5 超时重传1.2.6 差错检测1.2.7 拥塞控制2、C+

2020-12-25 21:57:59 7893 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除