首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
aqqqqwq
门头沟学院 Java
发布于北京
关注
已关注
取消关注
@程序员世杰:
腾讯科技 后端软件开发 一面 纯八股拷打
面试公司:腾讯科技面试岗位:后端软件开发工程师面试过程:一面(50min)面试总结:算法题占了很多时间,后面基本上全是问八股,项目方面鲜有涉及。面试官还是挺好的,中间会给一点引导,但自己操作系统和Linux命令部分准备的不够充分,回答的稀烂。问八股文问到我头晕,真正工作上用得到这些八股文么?自我介绍(5 min)手撕两道算法题(30 min)a. 旋转字符串b. 删除链表中重复元素Linux常用命令有哪些awk命令有了解过嘛平时怎么查看日志有没有用过命令查看程序运行的栈信息netstat命令怎么使用?用来干啥?Linux网络抓包用什么命令来实现?top命令用过嘛?如何查看僵死进程?进程,线程和协程有什么区别?进程和线程的区别在哪里?进程之间的通信方式有哪些?除了管道还有什么通信方式?前端发起请求之后到达后端,中间过程是什么?笔者整理答案,以供参考1. 自我介绍 (5 min)2. 手撕两道算法题 (30 min)a. 旋转字符串public String rotateString(String s, int k) { int n = s.length(); k = k % n; // 处理k大于字符串长度的情况 return s.substring(n - k) + s.substring(0, n - k);}b. 删除链表中重复元素public ListNode deleteDuplicates(ListNode head) { ListNode current = head; while (current != null && current.next != null) { if (current.val == current.next.val) { current.next = current.next.next; } else { current = current.next; } } return head;}3. Linux常用命令有哪些常用的Linux命令有:ls、cd、pwd、cp、mv、rm、mkdir、rmdir、cat、less、grep、find、chmod、chown等。这些命令可以帮助我们完成文件和目录管理、权限设置等操作。ls:列出目录内容作用:显示目录中的文件和子目录示例:ls -l 显示详细信息cd:改变当前目录作用:切换到指定目录示例:cd /home/user/Documents 切换到Documents目录pwd:显示当前目录路径作用:显示当前工作目录的绝对路径示例:pwd 输出 /home/usercp:复制文件或目录作用:将文件或目录复制到指定位置示例:cp source.txt destination.txt 复制source.txt到destination.txtmv:移动或重命名文件或目录作用:移动(剪切)文件或目录,或重命名示例:mv file.txt /home/user/ 移动文件到指定目录mv oldname.txt newname.txt 重命名文件rm:删除文件或目录作用:删除文件或目录示例:rm file.txt 删除文件rm -r /home/user/old_directory 递归删除目录及其内容mkdir:创建目录作用:创建一个新的目录示例:mkdir new_directory 创建名为new_directory的目录rmdir:删除空目录作用:删除一个空目录示例:rmdir empty_directory 删除名为empty_directory的目录cat:连接并显示文件内容作用:读取并显示文件内容示例:cat file.txt 显示file.txt的内容less:分页显示文件内容作用:以分页形式查看文件内容示例:less file.txt 分页查看file.txt的内容(使用 q 退出)grep:文本搜索工具作用:在文件中搜索匹配的文本示例:grep "pattern" file.txt 在file.txt中搜索"pattern"find:查找文件或目录作用:在目录树中搜索文件或目录示例:find /home/user -name "*.txt" 在/home/user目录下查找所有扩展名为.txt的文件chmod:更改文件权限作用:更改文件或目录的权限示例:chmod 755 script.sh 将script.sh的权限设置为-rwxr-xr-x用数字表示权限:所有者读写执行(7),所属用户组读执行(5),其他用户读执行(5)chown:更改文件所有者作用:更改文件或目录的所有者和所属组示例:chown user:group file.txt 更改file.txt的所有者为user,所属组为group4. awk命令有了解过嘛有了解过,awk是一种强大的文本处理工具,它的主要作用是对文本文件中的数据进行筛选、提取和处理。使用格式基本格式:awk 'pattern { action }' filepattern:要匹配的模式(可以是正则表达式)action:对匹配行执行的操作,用大括号括起来file:输入文件常用实例简单打印每行awk '{ print }' file.txt打印文件file.txt的每一行。打印某个字段awk '{ print $1 }' file.txt打印file.txt每一行的第一个字段。字段定界符awk -F, '{ print $1 }' file.csv指定字段分隔符为逗号,打印file.csv每一行的第一个字段。模式匹配awk '/pattern/ { print }' file.txt打印file.txt中包含指定模式pattern的行。条件处理awk '$3 > 100 { print $1, $3 }' file.txt打印文件file.txt中第三个字段大于100的行的第一个和第三个字段。计算总和awk '{sum += $1} END {print sum}' file.txt计算file.txt中第一个字段的总和。5. 平时怎么查看日志cat:显示整个日志文件内容cat /var/log/syslog适用于小型日志文件,但对于大型日志文件,可能会一次性输出太多内容。tac:反向显示整个日志文件内容tac /var/log/syslog适用于查看最新的日志条目,因为它从文件的末尾开始显示。more 和 less:分页显示日志文件more /var/log/syslogless /var/log/syslogless 更为强大,允许你在文件中前后移动,q 退出查看。tail:查看日志文件的最后几行tail /var/log/syslogtail -n 50 /var/log/syslog # 查看最后50行tail -f /var/log/syslog # 实时查看(跟踪)日志的新增行tail -f 对于监控服务实时输出非常有用。head:查看日志文件的前几行head /var/log/sysloghead -n 20 /var/log/syslog # 查看前20行grep:搜索日志文件中的特定模式grep "ERROR" /var/log/sysloggrep -i "error" /var/log/syslog # 忽略大小写grep "ERROR" /var/log/syslog | less # 分页查看搜索结果awk:筛选和处理日志文件中的特定字段awk '/ERROR/ {print $0}' /var/log/syslog # 搜索含“ERROR”的行awk '{print $1, $2, $3}' /var/log/syslog # 打印前3个字段logrotate:管理日志文件的轮替6. 有没有用过命令查看程序运行的栈信息有,用过gdb和pstack来查看程序的栈信息。gdb是一个强大的调试工具,而pstack可以直接输出运行进程的栈信息。使用 gdb 调试器GNU Debugger(gdb)是一个强大的工具,可以用来查看正在运行的程序的栈信息。以下是使用 gdb 查看栈信息的步骤:找到进程ID(PID): 使用 ps 命令找到要调试的进程的PID。ps aux | grep program_name附加到正在运行的进程: 使用 gdb 附加到进程。sudo gdb -p PID显示栈回溯: 在 gdb 提示符下,输入 bt(backtrace)命令来查看栈信息。(gdb) bt退出gdb:(gdb) quit使用 pstack 命令pstack 用于显示给定 PID 的栈回溯信息。安装: 在大多数Linux发行版中,你可以通过包管理器安装 pstack。sudo apt-get install psmisc # Ubuntu/Debiansudo yum install psmisc # CentOS/RHEL使用 pstack:sudo pstack PID使用 /proc 文件系统你可以通过 /proc 文件系统手动查看进程的栈信息。找到进程ID(PID): 使用 ps 命令找到要调试的进程的PID。ps aux | grep program_name查看栈内容: 使用 cat 或 hexdump 查看 /proc/[PID]/stack 文件。cat /proc/PID/stack该文件也可以通过 hexdump 以更易读的方式查看:hexdump -C /proc/PID/stack7. netstat命令怎么使用?用来干啥?netstat命令用于显示网络相关信息,例如网络连接、路由表、接口状态等。常用参数包括netstat -an查看所有网络连接,netstat -tuln查看所有监听端口。8. Linux网络抓包用什么命令来实现?可以使用tcpdump或wireshark来实现网络抓包。tcpdump是一个命令行工具,而wireshark提供图形界面,更加直观。9. top命令用过嘛?如何查看僵死进程?用过,top命令用于显示系统的资源使用情况。在top界面中可以按z来高亮显示僵死进程,或直接使用ps -aux | grep Z命令来查看。10. 进程,线程和协程有什么区别?进程是资源分配的基本单位,线程是CPU调度的基本单位,而协程是一种用户态的轻量级线程。进程之间相互独立,线程共享进程的资源,而协程通过用户程序自己来调度,通常比线程更加高效。进程(Process)独立的内存空间:每个进程都有自己的独立的内存空间,不共享内存。高开销:进程之间的上下文切换和进程的创建、销毁开销较大。资源独立性:进程之间互相独立,不会因为一个进程的崩溃影响到另一个进程。操作系统调度:由操作系统来进行调度和管理。使用场景用于需要完全隔离的任务运行,例如不同用户运行的应用程序。多进程模型适用于多核CPU充分利用资源。线程(Thread)共享内存空间:同一进程内的所有线程共享内存,可以直接访问相同的数据段。低开销:线程创建、销毁和上下文切换的开销比进程小。资源共享:因为线程共享进程的资源,所以一个线程的崩溃可能会影响到整个进程。操作系统调度:线程由操作系统的线程调度器进行调度,但与进程相比,调度的粒度通常更细。使用场景在同一个应用程序内需要并发执行的多个任务,例如多线程的Web服务器。适合I/O密集型和需要频繁上下文切换的场景。协程(Coroutine)用户态切换:协程的切换在用户态进行,不需要内核态切换,开销更小。非抢占式调度:协程由程序自身控制调度,不会被其他协程打断。协作式多任务:协程通过“协作”进行上下文切换,显式地挂起和恢复。共享内存空间:像线程一样,共享进程的内存空间,但因为是协作式的,数据共享的冲突更易控制。使用场景I/O密集型任务,例如网络编程中的异步I/O处理。需要大量并发但不需要多核心的运算的场景。对比总结属性进程 (Process)线程 (Thread)协程 (Coroutine)内存独立性独立共享共享创建销毁开销大较小最小上下文切换开销大较小最小调度方式操作系统调度,抢占式操作系统调度,抢占式用户态调度,协作式编程复杂度独立性高,易管理,不需同步需处理同步和锁,复杂度较高需显式挂起和恢复,代码可读性好使用场景多个独立的任务,需隔离的任务单个应用的并发任务,如Web服务器高并发I/O密集型任务,如网络编程12. 进程之间的通信方式有哪些?进程间通信(IPC)方式有:管道(Pipe)、消息队列(Message Queue)、共享内存(Shared Memory)、信号量(Semaphore)、套接字(Socket)等。1.匿名管道(Pipes)只能在有亲缘关系的进程(如父子进程)之间通信。2.命名管道(Named Pipe 或 FIFO)可以在任何无亲缘关系的进程之间通信。3.消息队列(Message Queues)多个发送者和多个接收者之间通信,具有有序性和持久性需求。消息是按照发送顺序存储并读取的。即使接收进程尚未启动,消息依然可以被发送。4.共享内存(Shared Memory)多个进程访问时需要处理同步问题。需要高效大数据量传输和频繁通信的场景。5.信号(Signals)事件通知,例如时间到时的闹钟信号,用户中断信号等。可以中断进程的当前操作,处理信号后返回。6.套接字(Sockets)可以在同一台机器上或通过网络在不同机器间通信。支持TCP/UDP协议,适用于复杂的网络应用。7.信号量(Semaphores)进程间的同步和控制,例如进程对共享资源的互斥访问。信号量可以是一个计数器,用于多个进程间同步。14. 前端发起请求之后到达后端,中间过程是什么?1.客户端发起请求2.DNS解析浏览器检查缓存,如果没有找到需要的IP地址,会向本地DNS服务器请求。本地DNS服务器如果没有对应的IP地址,会向根DNS服务器查询,直到获取到目标服务器的IP地址,并返回给浏览器。3.建立TCP连接使用目标服务器的IP地址和端口号,通过三次握手(TCP三次握手)建立一个TCP连接。4.发送HTTP请求浏览器通过已建立的TCP连接,发送HTTP请求(包括请求行、请求头、请求体等)。5.网络传输请求通过网络传输,包括可能的路由跳转、负载均衡、CDN(内容分发网络)等。使用HTTPS时,会在这里进行SSL/TLS握手,建立加密连接。6.服务器接收请求后端服务器接收到请求包。Web服务器(如Nginx、Apache等)处理基础的请求任务,如负载均衡、静态资源提供等。7.应用服务器处理请求Web服务器将请求转发给应用服务器(如Tomcat、Node.js等)。中间件(如Spring、Express等)处理路由和中间件函数,如验证、日志记录等。8.业务逻辑处理应用服务器依据请求路径和参数,将请求分发到对应的业务处理逻辑中。可能会进行数据库查询、调用其他API服务、业务逻辑运算等操作。9.数据库及外部系统交互如果需要数据库查询,应用服务器会构造SQL语句或者请求ORM(对象关系映射)框架。数据库接收请求并返回结果。可能还会调用其他微服务或第三方API,并处理响应结果。10.构建响应应用服务器完成业务处理后,构建HTTP响应,包括状态码、响应头和响应体。响应体可能是HTML页面、JSON数据、XML数据等。11.发送响应应用服务器将HTTP响应通过TCP连接发送回客户端。12.客户端接收响应浏览器接收到HTTP响应。浏览器检查HTTP状态码,根据状态码决定后续处理。13.处理和渲染如果响应是HTML,浏览器启动HTML解析器解析页面。如果响应是JSON数据,JavaScript代码处理数据并更新DOM或执行其他操作。进行后续资源的请求和加载(如CSS、JS文件)。14.关闭连接
点赞 36
评论 11
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-31 14:08
门头沟学院 Java
hr也不想干了
点赞
评论
收藏
分享
07-29 22:39
山东大学 嵌入式软件工程师
算法岗必知的50个PyTorch面试问题
在GitHub上看到了一个资源库,整理了很多Pytorch面试题和答案,涵盖了从基础概念到高级应用,包括张量操作、自动微分、神经网络构建、优化器使用等关键知识点。准备 AI/ML 岗位面试的同学,真的应该留意一下。 PyTorch 基础1. 什么是PyTorch,它与其他深度学习框架(如TensorFlow)有何不同?2. 解释PyTorch中的张量概念。3. 在PyTorch中,张量和变量之间有什么区别?4. 如何将NumPy数组转换为PyTorch张量?5. PyTorch张量中的`.grad`属性有什么作用?6. 解释CUDA是什么以及它与PyTorch的关系。7. PyTorch中的自...
面试问题记录
点赞
评论
收藏
分享
07-17 12:05
已编辑
京东零售_即时零售_java后台(实习员工)
后端暑期第一个offer!
收到京东的意向书,实习5个多月了,也该撤退了,可以安心做毕设,备战秋招了
点赞
评论
收藏
分享
06-13 21:08
门头沟学院 Java
黑马付费实习
有人了解么,传至公司含金量如何,是个上市公司,会不会被懂的企业直接刷,这个是技术栈,499实习15天,没有实习经历,主要是想丰富一下简历,现在在刻苦学了,有cet6没有项目
头顶尖尖的程序员:
项目流出了,而且不是带你完全做,只是负责其中一小部分模块
点赞
评论
收藏
分享
08-02 15:59
字节跳动_后端开发
从字节实习转正失败到拿校招offer|这6个月教会我的事
最近刷到好多26届学弟学妹在问实习转正的事,但平常工作日实在太累了 所以在周末分享一下作为去年在字节实习了半年最后“翻车”的25届后端开发er,将踩过的坑和悟到道理整理出来——转正失败不代表你不行,反而是最珍贵的成长课💡先说说我的故事:在字节实习6个月,分配的需求均独立上线且未出现事故,由于初入社会不懂人情世故并且和老板不在一个base地 老板仅觉得我符合预期 缺乏亮点 达不到校招生的要求 hc给了外面校招生 当时的我躲在会议室哭到窒息,觉得自己像个笑话。但转折是——离职后春招重新面了3轮技术面,最后还是拿到了字节后端校招offer✨经历带给我的成长如果你还在实习中并且非常希望转正留在组内:...
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
1.1W
2
...
虾皮秋招一面
3573
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
3467
4
...
觉得研发高人一等的这辈子有了
2768
5
...
百度提前批 三面
2032
6
...
最强本科✌
1759
7
...
也是逆天了
1451
8
...
被猿辅导挂了简历,但我想说...
1405
9
...
虾皮一面凉经
1368
10
...
上班一周,工资还没拿,先欠公司两千
1338
创作者周榜
更多
正在热议
更多
#
找工作如何保持松弛感?
#
92389次浏览
1122人参与
#
Offer比较,你最看重什么?
#
194489次浏览
1325人参与
#
中兴秋招
#
207914次浏览
2306人参与
#
秋招被确诊为……
#
167182次浏览
801人参与
#
参加过提前批的机械人,你们还参加秋招么
#
86764次浏览
1417人参与
#
投格力的你,拿到offer了吗?
#
87870次浏览
586人参与
#
虾皮求职进展汇总
#
251232次浏览
1890人参与
#
你最希望上岸的公司是?
#
136364次浏览
709人参与
#
计算机专业还有必要去大厂卷吗
#
38822次浏览
184人参与
#
柠檬微趣工作体验
#
7026次浏览
40人参与
#
26届的你,投了哪些公司?
#
52666次浏览
532人参与
#
地平线求职进展汇总
#
52789次浏览
371人参与
#
通信硬件岗投递时间线
#
19076次浏览
69人参与
#
简历上的经历如何包装
#
33316次浏览
877人参与
#
我对___祛魅了
#
54902次浏览
472人参与
#
你跟室友的关系怎么样?
#
8739次浏览
126人参与
#
你遇到最难的面试题目是_
#
18031次浏览
211人参与
#
一人推荐一个值得去的通信/硬件公司
#
191851次浏览
1888人参与
#
我想象的实习vs现实的实习
#
290618次浏览
2246人参与
#
工作中哪个瞬间让你想离职
#
66512次浏览
584人参与
#
你的秋招第一面感觉怎么样
#
77983次浏览
595人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务