获得徽章 0
我是学生 @北京石油化工学院
#青训营笔记创作活动# 一个 SlotTable 是由若干个 Group 组成的。
从 Group 前的留白可以推出,SlotTable 是一个树状结构。
从我随便圈的一些地方可以看出,这个 SlotTable 还真是存放了“各种”数据,有我们的 remember(mutableState),有 LaunchedEffect,有 CompositionLocal 等等,还有各种 lambdaImpl。
还有几个值得关注的字段:

aux - 字面意思应该是辅助数据,可以看到 remember、LaunchEffect 之类的老朋友。
slots - 字面意思是插槽,从这个命名来看,这应该是从属于 Group 的更小的数据结构,它应该是记录了实际的数据,例如 remember 作为辅助信息记录在 aux 中,而 remember 的 mutableState 就放在 slots 里。

作者:彭泰强
链接:juejin.cn
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
展开
评论
#青训营笔记创作活动#
前后端分离项目中在不使用代理的情况下当我们使用API返回文档流下载文件要从headers 中的 Content-Disposition 获取文件名时,需要设置 Access-Control-Expose-Headers:Content-Disposition 这是因为在使用CORS方式跨域是,浏览器只会返回默认的Header,分别为:Cache-control , Content-Language,Content-Type , Expires ,Last-Modified, Pragma ; 而Access-Control-Expose-Headers 响应报头指示哪些报头可以公开; 如果你想要客户端能够访问其他的报头,则必须使用 Access-Control-Expose-Headers 列出他们;
展开
评论
#青训营笔记创作活动# 堆与栈区别
堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,主要有如下几种区别:
(1)管理方式不同。栈由操作系统自动分配释放,无需我们手动控制;堆的申请和释放工作由程序员控制,容易产生内存泄漏;

(2)空间大小不同。每个进程拥有的栈的大小要远远小于堆的大小。理论上,程序员可申请的堆大小为虚拟内存的大小,进程栈的大小 64bits 的 Windows 默认 1MB,64bits 的 Linux 默认 10MB;

(3)生长方向不同。堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内存地址由高到低。

(4)分配方式不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是由操作系统完成的,比如局部变量的分配。动态分配由alloca函数进行分配,但是栈的动态分配和堆是不同的,他的动态分配是由操作系统进行释放,无需我们手工实现。

(5)分配效率不同。栈由操作系统自动分配,会在硬件层级对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是由C/C++提供的库函数或运算符来完成申请与管理,实现机制较为复杂,频繁的内存申请容易产生内存碎片。显然,堆的效率比栈要低得多。

(6)存放内容不同。栈存放的内容,函数返回地址、相关参数、局部变量和寄存器内容等。当主函数调用另外一个函数的时候,要对当前函数执行断点进行保存,需要使用栈来实现,首先入栈的是主函数下一条语句的地址,即扩展指针寄存器的内容(EIP),然后是当前栈帧的底部地址,即扩展基址指针寄存器内容(EBP),再然后是被调函数的实参等,一般情况下是按照从右向左的顺序入栈,之后是被调函数的局部变量,注意静态变量是存放在数据段或者BSS段,是不入栈的。出栈的顺序正好相反,最终栈顶指向主函数下一条语句的地址,主程序又从该地址开始执行。堆,一般情况堆顶使用一个字节的空间来存放堆的大小,而堆中具体存放内容是由程序员来填充的。
展开
评论
#青训营笔记创作活动# 服务器使用的并发模型?
参考《Linux高性能服务器编程》P130-P136
1. 前置知识
IO操作:IO即Input和Output的简写,狭义上是读写硬盘的操作。广义上则是指不需要CPU参与的都是IO操作。在计算机科学中指计算机之间或人与计算机之间的信息交换。如两台计算机通过网卡进行交互、向硬盘写入数据或者读取硬盘数据、读取鼠标或者键盘输入、读写文件、访问数据库等等,都是IO操作。IO操作一般CPU消耗很少,但是耗时较长,任务的大部分时间都在等待IO操作完成(IO速度远低于CPU和内存的速度),所以当出现IO操作时,CPU都会异步的去执行其它事情。
2. 半同步/半异步模式
同步异步(区别于线程同步、IO模型(事件处理模式)):按顺序依次执行程序就是同步,当程序的执行是由信号、中断等来驱动执行,则为异步。
展开
评论
#青训营笔记创作活动#
https的SSL连接过程?
1. 客户端提交https请求。
2. 服务器响应客户,并把证书公钥发给客户端。
3. 客户端验证证书公钥的有效性。
4. 有效后,会生成一个会话密钥。
5. 用证书公钥加密这个会话密钥后,再发送给服务器。
6. 服务器收到公钥加密的会话密钥后,用私钥来解密,得到会话密钥。
7. 客户端与服务器双方利用这个会话密钥加密要传输的数据进行通信。
展开
评论
#青训营笔记创作活动#
12、https协议为什么是安全的?
https = http + TLS/SSL。
TLS/SSL协议位于应用层协议和TCP之间,构建在TCP之上,由于TCP协议保证数据传输的可靠性,任何数据到达TCP之前,都需要经过TLS/SSL协议的处理。
https是加密传输协议,可以保障客户端到服务器端的数据传输的安全。用户通过http协议访问网站时,浏览器和服务器之间是明文传输的,这就意味着用户填写的密码、账号、交易信息等机密信息都是明文的,随时可能被泄漏、窃取、篡改,被第三方者加以利用。安装SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的 "SSL加密通道(SSL协议)",实现高强度双向加密传输,防止传输数据被泄漏或者被篡改。
展开
评论
#青训营笔记创作活动#
codedeex挺好用一插件,免费使用,性价比极高,对小白非常友好
评论
#青训营笔记创作活动#
我大学本科想直接就业,我到底该干什么,需要学什么
评论
我是学生 @北京石油化工学院
下一页
个人成就
文章被阅读 717
掘力值 64
收藏集
0
关注标签
5
加入于