华为OD技术面八股文真题_C++_3

华为OD技术面八股文真题_C++_3

文章目录

变量的声明和定义的区别

  • 变量的声明是告诉编译器变量的名称和类型,不分配存储空间;
  • 变量的定义会为变量分配存储空间并建立实体。
  • 一个变量可以在多个地方声明,但只能在一个地方定义。 使用 extern 修饰的变量通常是声明,表示该变量在其它文件中定义,但 如果 extern 变量带初始化,则该语句仍然属于定义。

内存泄露是什么意思?怎么避免内存泄露

内存泄漏是指程序在动态申请内存后,后续失去对该内存的控制,导致这块内存无法被释放,从而造成内存资源浪费的现象。内存被申请了,却释放不了

内存泄漏的危害如下:

  1. 程序内存占用不断增大,导致系统可用内存减少,性能下降。
  2. 严重时可能导致程序崩溃。
  3. 服务长期运行最终会导致宕机。

常见避免内存泄漏的方案:

  1. RAII(资源获取即初始化)使用对象生命周期自动管理资源。
  2. 尽量使用智能指针/STL容器代替裸指针。
  3. new/delete,malloc/free保证成对出现。
  4. delete将指针置空。

怎么排查内存泄漏,遇到内存泄漏情况,一般怎么解决

  1. 通过监控系统观察系统中运行中内存是否持续上涨,且无法回落。其次在测试环境稳定复现<

Read more

【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机

【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机

【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机 我的主页:寻星探路个人专栏:《JAVA(SE)----如此简单!!! 》《从青铜到王者,就差这讲数据结构!!!》 《数据库那些事!!!》《JavaEE 初阶启程记:跟我走不踩坑》 《JavaEE 进阶:从架构到落地实战 》《测试开发漫谈》 《测开视角・力扣算法通关》《从 0 到 1 刷力扣:算法 + 代码双提升》 《Python 全栈测试开发之路》没有人天生就会编程,但我生来倔强!!! 寻星探路的个人简介: 导读:为什么每个大厂程序员都必须精通 JVM? Java 程序的运行效率、系统的稳定性、甚至高并发下的抗压能力,都与 JVM 密切相关。如果你只会写业务代码而不懂 JVM,就像只会开车而不懂发动机原理的赛车手。当遇到 OutOfMemoryError(内存溢出)

By Ne0inhk
Java Web开发基础与Servlet核心技术

Java Web开发基础与Servlet核心技术

Java Web开发基础与Servlet核心技术 15.1 学习目标与重点提示 学习目标:掌握Java Web开发的核心概念与Servlet技术的使用方法,包括Web应用的结构、Servlet的定义与使用、HTTP请求与响应的处理、会话管理、过滤器与监听器的使用,学会在实际开发中处理Web应用问题。 重点:Web应用的结构(目录结构、配置文件)、Servlet的定义与使用(Servlet接口、HttpServlet类、注解配置)、HTTP请求与响应的处理(Request、Response对象)、会话管理(Session、Cookie)、过滤器与监听器的使用、Web开发的实际应用场景。 15.2 Web开发概述 Java Web开发是用于处理Web应用的机制。 15.2.1 Web开发的定义 定义:Web开发是用于处理Web应用的机制。 作用: * 实现Web应用的开发。 * 实现客户端与服务器之间的通信。 * 实现动态网页的生成。 * 实现Web应用的部署与维护。 ✅ 结论:Web开发是用于处理Web应用的机制,作用是实现Web应用的开发、客户端与服务器之间的通

By Ne0inhk
Java 时间类(上):JDK7 及以前时间类 Date、SimpleDateFormat、Calendar 最全总结

Java 时间类(上):JDK7 及以前时间类 Date、SimpleDateFormat、Calendar 最全总结

🏠个人主页:黎雁 🎬作者简介:C/C++/JAVA后端开发学习者 ❄️个人专栏:C语言、数据结构(C语言)、EasyX、JAVA、游戏、规划、程序人生 ✨ 从来绝巘须孤往,万里同尘即玉京 文章目录 * Java 时间类(上):JDK7 及以前时间类 Date、SimpleDateFormat、Calendar 最全总结 🕒 * 📝 文章摘要 * 一、时间相关基础知识点 ⏱ * 1. 时间标准 * 2. 时间单位与换算 * 二、Date 时间类 📅 * 1. 概述 * 2. 构造方法 * 3. 成员方法 * 4. 代码示例 * 三、SimpleDateFormat 格式化与解析 ✍️ * 1. 作用

By Ne0inhk
【Java 开发日记】为什么要有 time _wait 状态,服务端这个状态过多是什么原因?

【Java 开发日记】为什么要有 time _wait 状态,服务端这个状态过多是什么原因?

目录 为什么要有 TIME_WAIT 状态? 原因一:可靠地终止TCP连接(确保最后的ACK能到达对方) 原因二:让旧连接的重复报文段在网络中自然消失(防止影响新连接) 服务端 TIME_WAIT 状态过多是什么原因? 原因一:服务端使用了短连接,并且是它主动关闭连接 原因二:客户端的非正常行为 原因三:负载均衡器的健康检查 总结 面试回答 为什么要有 TIME_WAIT 状态? TIME_WAIT,俗称2MSL等待状态,是TCP连接主动关闭一方(通常是客户端,但也可能是服务端)在发送最后一次ACK确认报文后,会进入的一个状态。它需要等待2倍的最大报文段生存时间后,才会最终进入CLOSED状态,释放连接资源。 设计TIME_WAIT状态主要有两个核心原因,它们是确保TCP协议可靠性的基石: 原因一:可靠地终止TCP连接(确保最后的ACK能到达对方) 这是最主要的原因。让我们回顾一下TCP四次挥手的正常流程: 1. 主动关闭方(假设为A)

By Ne0inhk