集思书源、用友一面凉经

之前面的问的 比较少就放一起了

集思书源

  1. Tcp的三次握手和四次挥手没有最后一次会怎样?
    • 缺少第三次握手会触发服务端超时重传机制,重传SYN-ACK报文,直到接收到第三次握手或达到最大重传次数
    • 缺少第四次握手服务端会重发FIN报文,重传次数由tcp_orphan_retries参数控制
  2. 什么是粘包和拆包
    • 粘包:发送方发送多个数据包,接收方合并处理无法区分边界
    • 拆包:大数据包因网络MTU限制被分片传输,接收方需重组
  3. HTTP如何解决粘包
    • 固定长度:通过Content-Length明确数据长度,接收方按长度读取
    • 分隔符:用空行分隔请求头和请求体,解析边界
    • 分块传输:HTTP/1.1中,Transfer-Enconding:chunked将数据分块,每块带长度表识,接收方按块解析
  4. java如何将数据写到磁盘中
字节流:
try (FileOutputStream fos = new FileOutputStream("file.txt")) {  
    fos.write("数据".getBytes());  
} catch (IOException e) { e.printStackTrace(); }  
字符流:
try (FileWriter writer = new FileWriter("file.txt")) {  
    writer.write("数据");  
} catch (IOException e) { e.printStackTrace(); }  
NIO(通道 + 缓冲区):
try (FileChannel channel = new FileOutputStream("file.txt").getChannel()) {  
    ByteBuffer buffer = ByteBuffer.wrap("数据".getBytes());  
    channel.write(buffer);  
} catch (IOException e) { e.printStackTrace(); }  

用友

  1. 线程创建方式
    • 继承Thread类、重写Runnable方法、重写Callable方法、使用线程池创建
  2. 常见数据库(Mysql)引擎
  • Innodb:支持事务、行级锁,适合高并发读写
  • MyISAM:不支持事务,表级锁,适合读多写少场景
  • Memory:数据存内存,读写快,适合临时数据
  1. Redis常见数据类型、持久化方案、使用场景
  • 常见数据类型:String、Hash、List、Set、Zset、Bitmap、HyperLogLog、Geospatial
  • 持久化
    • RDB:定时快照,恢复快,可能丢失数据
    • AOF:记录写操作,数据完整,文件大
  • 场景:缓存热点数据、计数器(incr)、消息队列、排行榜(Zset)
  1. Spring框架常用注解
  • 组件扫描与管理注解:@Component、@Repository、@Service、@Controller
  • 依赖注入:@Autowried、@Qualifier
  • 配置类与Bean注解:@Configuration、@Bean、@Import
  • 事务注解:@Transactional
  1. SpringMVC执行流程
    1. 客户端发送请求至DispatcherServlet
    2. DispatcherServlet通过HandlerMapping找到对应的Controller
    3. 执行Controller逻辑,返回ModelAndView
    4. ViewResolver解析视图,渲染数据
    5. 返回响应给客户端
  2. Linux常用指令
  • 文件:ls、cd、rm、mkdir
  • 文本:cat、grep
  • 权限:chmod、chown
  • 进程:ps、kill
  • 网络:ping、ifconfig/ip
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务