八股(One Day one)

news/2024/12/26 19:00:25/

        最近老是看到一些面试的视频,对于视频内部面试所提到的八股文,感觉是知道是什么,但是要说的话,却又不知道该怎么说(要不咋称之为八股文呢),所以就想到写一篇八股文总结的博客,以便进行学习和复习。

        目前的计划安排是一天完成一道,具体是哪个主题的不一定,尽可能做到一天一道,慢慢丰富起内容。


golang基础

1、golang中new和make的作用,以及他们的区别

自己想的(可以忽略),直接看下面标准答案:

new:new的作用就是传入一个类型,创建一个对象,并返回这个对象的指针。

make:make就是为slice、map、chan、channel初始化空间

区别:没啥区别呀,就不是一个东西😥。(呃呃呃,自己脑子里的就是不靠谱)

标准回答:

new函数的作用

  • 在 Go 语言中,new是一个内置函数。它的主要作用是分配内存,并且将这块内存初始化为零值,然后返回指向这块内存的指针

make函数的作用

  • make也是 Go 语言中的一个内置函数,但它和new有不同的用途。make主要用于创建切片(slice)、映射(map)和通道(channel)这三种复合类型,并且返回一个初始化后的(非零值)对象。
  • 对于切片,make会分配一个底层数组,并返回一个切片对象,这个切片对象包含了长度(len)和容量(cap)信息。例如,make([]int, 2)会创建一个长度为2int类型切片,其底层数组已经被分配并且元素被初始化为int类型的零值(也就是0)。
  • 对于映射,make会创建一个空的映射,这个映射可以用于存储键 - 值对。例如,make(map[string]int)会创建一个键为string类型,值为int类型的空映射。
  • 对于通道,make会创建一个通道,可以用于在不同的goroutine之间进行通信。例如,make(chan int)会创建一个int类型的通道。

newmake的区别

  • 功能用途不同
    • new主要用于分配内存并返回指向该内存的指针,它可以用于任何类型,只要你想得到一个指向该类型零值的指针。而make主要用于初始化并返回切片、映射和通道这三种复合类型,它返回的是一个已经初始化的非零值对象
  • 返回值类型不同
    • new返回的是一个指针,类型是*TT是你传入的类型)。例如new(int)返回*int。而make返回的是切片、映射或通道本身,例如make([]int, 5)返回[]int类型的切片,make(map[string]int)返回map[string]int类型的映射,make(chan int)返回chan int类型的通道。
  • 内存初始化不同
    • new只是将分配的内存清零,也就是将值初始化为该类型的零值。而make对于切片会分配底层数组并初始化元素;对于映射会创建一个空的可以存储键 - 值对的数据结构;对于通道会创建一个可以用于通信的通道对象,这些初始化过程比new的简单清零操作更复杂。

        


操作系统


数据结构


计算机网络


Linux


Mysql


Redis


分布式



http://www.ppmy.cn/news/1557926.html

相关文章

Java字符操作:Character类的使用技巧

在本文中,我们将探讨Java中的Character类及其使用方法。 Java Character类 当我们处理字符时,最常用的是基本数据类型char。例如: char ch a;// Unicode表示的大写希腊字母Omega char uniChar \u039A; // 字符数组 char[] charArray { a…

重温设计模式--迭代器模式

文章目录 迭代器模式(Iterator Pattern)概述迭代器模式的结构迭代器模式UML图C 代码示例应用场景 迭代器模式(Iterator Pattern)概述 定义: 迭代器模式是一种行为型设计模式,它提供了一种方法来顺序访问一个…

Windows电脑部署SD 3.5结合内网穿透随时随地生成高质量AI图像

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 在数字化创意时代,AI技术的发展为我们带来了无限可能。尤其是对于那些追求高效和高…

电脑不小心删除了msvcr120.dll文件怎么办?“缺失msvcr120.dll文件”要怎么解决?

一、文件丢失与损坏的常见原因及解决办法 1. 不小心删除系统文件 常见情况:有时在清理电脑垃圾文件时,可能会不小心删除一些重要的系统文件,如msvcr120.dll等。解决办法: 恢复文件:如果刚删除不久,可以尝…

【C++ 基础】内存管理

动态内存 内存一般可分为四个区域 <一> 全局数据区(静态区) 全局变量和静态变量存放在此. 里面细分有一个常量区, 字符串常量和其他常量也存放在此. 该区域是在程序结束后由操作系统释放. <二> 代码区 这个区域存放函数体的二进制代码.也是由操作系统进行管理的…

案例分析-THC7984设计问题报告

目录 简介 配置信息 结论: 简介 使用的环境 AD芯片:THC7984 VGA信号:通过电脑主机产生1024x768 60HZ信号。 配置信息 AD数字数字产生通过FPGA接收。 AD寄存器配置(第一个数数据,第二个是地址): iic_write_reg 1 0x1e iic_write_reg 02 0x5

【功能安全】硬件架构度量

目录 01 硬件架构度量介绍 02 硬件架构度量相关说明 03 硬件架构度量示例 04 硬件架构度量模板 01 硬件架构度量介绍 GBT 34590 2022 part5

Jenkins 持续集成部署

Jenkins的安装与部署 前言 当我们在实施一个项目时&#xff0c;从新代码中获得反馈的速度越快&#xff0c;问题越早得到解决&#xff0c;获得反馈的一种常见方法是在新代码之后运行测试&#xff0c;但这就导致了当代码正在编译并且正在运行测试时&#xff0c;开发人员无法在测…