六面字节,终究是错付了。整理下问到的八股文吧
操作系统:
讲讲操作系统的I/O模型
I/O多路复用
生产者消费者模型
线程和进程有什么区别
计网:
https和http有什么区别
http状态码 讲讲2xx和3xx分别是什么状态
线上500了如何排查
三次握手,四次挥手
为什么会有close-wait
讲讲从输入url到页面加载完毕经过哪些过程
DNS寻址
tcp如何实现拥塞控制的
mysql:
讲讲mysql的事务,ACID
隔离级别有哪些?有什么不同
快照读和当前读
锁有哪些,记录锁和间隙锁区别
索引机制,为什么常用B+树而不是hash
b树和b+树区别
最左匹配原则?索引覆盖?
log有哪些,分别有什么用
redis:
redis支持哪些数据结构?
sds怎么实现的
讲讲跳表。为什么不用红黑树?跳表有什么优点?时间复杂度是多少?
分布式限流器怎么实现?布隆过滤器怎么实现?
bitmap可以用来做什么?
缓存和数据库一致性怎么解决?
java相关:
java反射如何实现的?
OOM如何排查?死锁如何排查?
volatile有什么用,如何实现的
锁升级流程讲讲
hashmap的put怎么执行的,java8有什么变化,为什么线程不安全?
hashtable呢?
concurrentHashmap为什么线程安全?怎么扩容的?java8有什么变化
线程池的参数?拒绝策略有哪些?自己实现一个阻塞队列
讲讲动态代理
泛型了解吗?为什么有泛型擦除?
其他就是做题和项目了
苏州某互联网公司,java一年经验面经分享:
一面:
1.线程和进程区别
2.简述一个http请求,从请求发出到springboot服务的处理过程。
3.如何优化一个sql查询?
4.mysql索引有哪几种?导致索引失效的原因有哪些?
5.mysql如何保证冗余的一致性?
6.mysql行锁和表锁
7.叙述一下你所负责项目的主线流程
8.你的项目中,redis的使用场景?
9.redis有哪几种数据类型?
10.redis有哪些部署方式?
二面:
1.HashMap底层原理?为什么hash值要右移16位做异或运算?如何定位桶的下标?为什么hashmap长度一定是2的n次方?
2.CurrentHashMap是如何保证线程安全的?
3.用过分布式锁吗?redis的分布式锁你是怎么实现的?
4.是否用过带返回值的异步方法?
5.cache相关的注解用过吗?
6.redis中有十万库存,部署了200个服务集群,如何保证秒杀场景下的性能和数据一致性?
7.你的项目有几个微服务?这样拆分是否合理?如果是你,你会怎么拆分?
8.注册中心挂了,服务之间还能正常调用吗?
9.你的项目是私有化部署还是公有化部署?后台部署了几个实例?
10.redis是单线程的吗?讲一下底层实现?
三面:
hr面。
#Java# #程序员# #面试# #工作#
美团前端(21k)一面题目:
1.讲一下计算机网络的三次握手?
2.TCP 和 UDP 的区别?
3.讲一下 SSL?
4.密钥交换时,前端和后端的详细过程是什么?
5.DNS 解析过程?
6.进程和线程的区别?
7.进程在内存中是如何分配的?
8.线程池了解吗?
9.用户线程和内核线程的区别?
10.堆和栈的区别?
11.堆常见的应用场景?
12.git rebase 和 git merge 的区别?
是不是很基础?
#职场# #程序员#
进程、线程、协程为何而生?看这个就明白了。
顺丰二面问题
1、数据库分库分表,手写订单号生成算法
2、nginx多线程与多进程,负载均衡算法
3、MySQL 常用的存储引擎有哪些,有哪些隔离级别,索引类型有哪些,
B树和B+树的区别,binlog是什么结构,如何做主从复制读写分离
4、手写一个单例模式
5、手写算法将十进制数字转换为二进制数字
【Node.js实战之Node多进程与JXcore 打包深入运用】Jxcore是一个支持多线程JS发布版本的节点,基本上不需要对现有代码进行任何更改,可以直接在多线程中运行,具有线程安全性。本文主要介绍jxcore的封装功能,点击了解详情:网页链接
一个开源的Windows增强版任务管理器
Process Hacker,一个开源的进程浏览器和内存编辑器,支持查看管理进程、服务、线程、模块、句柄以及内存区域数据等。
具有如下特色:
1、可以完全的控制进程,隐藏的进程也逃不过你的掌控
2、可以删除你想删掉的被锁定的文件
3、实时了解你的磁盘访问信息
软件完全开源免费的,感兴趣的朋友可以关注下载试用下!
每日运维知识题:简述Apache两种工作模式,以及它们之间的区别?
答:
1)prefork MPM使用多个子进程,每个子进程只有一个线程来处理一个http请求,直到这个TCP连接被释放。root主进程在最初建立startserver个子进程后,等待1秒钟,创建2个进程,再等待1秒钟,再创建4个进程,直到满足最小空闲进程的数量,这就是预派生的由来。这种模式可以不必在请求到来时再产生新的进程,从而提高了访问效率。
(2)worker模式使用多个子进程,每个子进程负责接收请求,该进程下多个线程来处理请求。由于线程之间共享地址空间,所以内存消耗小,而且资源利用率高,但是一个线程的崩溃会牵连到其他线程,所以一个程序在运行时必须被系统识别为每个线程都是安全的。
(3)woker和prefork的切换,cd /usr/sbin ,mv httpd httpd.prefork,mv httpd.worker httpd,service http restart
为什么Python运行速度慢?
在并发上,它没办法利用多核优势搞并发,所以它慢,比如说我开了一个进程,在进程里面有很多线程,在一个进程中的线程是无法利用电脑的CPU的多核优势的。
那我能不能换呢?比如我就开多进程,不开线程,又比如我就要用线程的话,那我在多个进程中再用多个线程就好了。
场景不同方案也是不同的,所以这个地方来说,你说Python慢是解释不通的。
传统 CGI 架构,每次 HTTP 请求会创建一个 OS 进程来进行处理,由操作系统的进程机制来实现安全隔离;而 WAGI 中 ,每次 HTTP 请求会在一个独立的线程来中调用 WASI 应用,应用之间利用 WebAssembly 虚拟机实现安全隔离。
阿里巴巴中间件当 Knative 遇见 WebAssembly