掘友等级
获得徽章 14
#代码情诗#
死生契阔,与子成说;
执子之手,与子偕老。
#每天一个知识点# go 中的return 不是原子操作 分为给返回值赋值和RET指令(返回返回值) defer操作在赋值和RET指令之间 先赋值再defer操作再RET指令(如果有defer操作的话) defer 后如果是函数,函数的参数会算好赋值进去,延迟的只是defer的函数
#每天一个知识点# Go语言局部变量分配在栈还是堆?
局部变量的作用域是否逃出函数的作用域,要是没有,那么就放在栈上;
要是变量的作用域超出了函数的作用域,那么就自动放在堆上。
#每天一个知识点# go 什么是channel,为什么它可以做到线程安全?
Channel是Go中的一个核心类型,可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯
(communication),Channel也可以理解是一个先进先出的队列,通过管道进行通信。
Golang的Channel,发送一个数据到Channel和从Channel接收一个数据都是原子性的。而且Go的设计思想就是:不要通过共享内存来通信,而是通过通信来共享内存,前者就是传统的加锁,后者就是Channel。也就是说,设计Channel的主要目的就是在多任务间传递数据的,这当然是安全的。
#每天一个知识点# go cap()和len()函数的区别?
len() 可以用来查看数组或slice的长度
cap()可以用来查看数组或slice的容量
在数组中由于长度固定不可变,因此len(arr)和cap(arr)的输出永远相同
在slice中,len(sli)表示可见元素有几个(也即直接打印元素看到的元素个数),而cap(sli)表示所有元素有几个
#每天一个知识点# springcloud是一个微服务框架,并提供全套分布式系统解决方案。支持配置管理,熔断机制,leader选举,服务治理,分布式session,微代理,控制总线,智能路由,一次性token。
#每天一个知识点# ArrayList 和 LinkedList 的区别是什么?
ArrayList是动态数组的数据结构实现,查找和遍历的效率较高;
LinkedList 是双向链表的数据结构,增加和删除的效率较高;
#每天一个知识点# 依赖注入有三种能注入的数据类型,分别是基本类型和String类型、其他bean类型(在配置文件中或者注解配置过的bean)、集合类型。
依赖注入的方式有三种,分别为使用构造函数注入、使用set方法注入、使用注解注入。
#每天一个知识点# TCP协议相关的内容可以分为五个部分:TCP报文、TCP连接、Socket编程、可靠传输机制与流量控制、拥塞控制。本篇文章记录可靠传输机制与流量控制部分的内容。
#每天一个知识点# synchronized关键字是Java中用于实现线程同步的关键字。它可以修饰方法或代码块,用于控制对共享资源的访问,确保多个线程之间的操作按照一定的顺序执行。
下一页