写在开头:转眼间三月份也过去了,2022年其实已经过去了四分之一了,着手准备我的三月份技术总结和第一季度总结了。 总体来说这一季度进步我还是很满意,学习了很多新的内容内容,也遇到了很多问题,下面从季度的角度总结一下我都学了哪些内容? 快乐是写完之后认为有了新技术的提升,痛苦是有那么两周做梦脑子里都在跑代码,想泛型,各种类型的写法、vue3的规范...到今天为止我已经提了我vite + vue3 + ts的项目了,等待大佬们的审核。 Vue3投入业务我觉得我比较幸运,相比同期进入单位的同事,我早早的上了新的技术。当然这也看心态,有人觉得都是写代码,用什么都一样,学新东西要投入成本,本质上还都是响应式原理,修改数据改变视图。 那这个月的总结就到这里了,写个月见!
如果你对数据结构还不熟悉,可以阅读 Redis学习总结(1)。 (2)Redis采用了多路复用机制,使其在网络I/O操作中能够并发处理大量的客户端请求,从而实现高吞吐率。 3 基本的IO模型 在网络处理程序中,都会存在一些潜在的阻塞点,比如:常见服务端Socket程序中的accept() 和 recv() 函数。 开销:在车站吃喝拉撒睡 3天,其他事一件没干。 非阻塞式IO模型 老周去火车站买票,隔12小时去火车站问有没有退票,三天后买到一张票。 开销:往返车站6次,路上6小时,其他时间做了好多事。 4 总结 本文总结了Redis单线程的几个核心要点: (1)Redis单线程的基本认知,即Redis只是对网络I/O和数据读写采用了单线程。 (3)Redis单线程为何很高效,即Redis使用了高性能的多路复用IO模型。 参考资料 极客时间,蒋德钧《Redis核心技术与实战》
最近,在写vue3 + ts 项目,分享用到的一些技术点 1. :label="item.majorName" :value="String(item.majorId)" /> </el-select> 3.
最近,在写vue3 + ts 项目,分享用到的一些技术点 1. :label="item.majorName" :value="String(item.majorId)" /> </el-select> 3.
主线程创建的时候会默认创建Looper、HandlerThread则是内置Looper,除此之外其他的线程创建时是不会创建Looper的,需手动创健线程自己的Looper。
答:SMTP,POP3 1:多态是如何实现绑定的? 多态的绑定可以分为运行是多态和编译时多态 ● 编译时的多态性 编译时的多态性是通过重载来实现的。 所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数 3:指针和引用有什么区别? (1)引用在创建时必须初始化,指针可以不初始化,引用不可以为NULL,指针可以。 (3)引用初始化后不能被改变,指针可以改变所指的对象. 4.OSI的七层网络结构和TCP/IP的五层结构。 答:应用层:为应用程序提供服务。 表示层:处理在两个通信系统中交换信息的表示方式。 3)枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。
本文重点介绍其中基于3DMM模型的核心技术及其研究进展。 作者&编辑 | 言有三 1. (3) 基于图像的建模技术(image based modeling),顾名思义,是指通过若干幅二维图像,来恢复图像或场景的三维结构,这些年得到了广泛的研究。 ? 难点和展望 从1999年被提出,至今3DMM模型已经有超过20年的历史,技术已经发展到从早期基于传统的优化方法到如今基于深度学习模型的系数回归,不过当前的3DMM模型还面临着许多的挑战。 对此有的方法通过增加局部模型[13]进行了改进,而最新的生成对抗网络技术[14]也开始被用于纹理建模。 ? (3) 遮挡脸的信息恢复。 另一方面,3DMM模型也与许多新的技术开始结合,比如与生成对抗网络模型一起进行人脸的数据增强[17],姿态编辑[17],人脸的特征恢复[18],对于提升人脸识别模型在具有挑战性的大姿态以及遮挡场景下的性能中具有非常重要的意义
gmt_created: 2011-03-15 14:50:25 server_name: LoadTest gmt_modified_microsecond: 1300172398493 3、
书籍分享 AngularJS权威指南 常用链接 AngularJS API文档 AngularJS 用户手册文档 博客整理 1 初识AngularJs 2 初识AngularJs(续) 3 我的第一个
private RateLimiter rateLimiter; public Action() { rateLimiter = new RateLimiter(3)
然后,可以从 NIO 的3个核心组件/特性为 NIO 带来的一些改进来分析。如果,你把这些都回答上了我觉得你对于 NIO 就有了更为深入一点的认识,面试官问到你这个问题,你也能很轻松的回答上来了。 (3)Selector(选择器):用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。即用选择器,借助单一线程,就可对数量庞大的活动I/O通道实施监控和维护。 key.channel(); ByteBuffer byteBuffer = ByteBuffer.allocate(1024); // (3)
[u3gbtc34oa.jpeg] 感受过找工作的艰辛,一次又一次的面试总会让你压力倍增,焦头烂额,无迹可寻, 但是最终还是会有柳暗花明的时刻,这个过程还是很让人煎熬同时比较愉悦的,时间、空间都在逼着你不断进步 技术总结 [sl7t45tpf3.png] 今年后半年开始写技术文章,对自己工作经验总结及技术积累输出。 作为一个技术人,工作越久感觉技术能力的空间提升越困难, 通过此方式可以逼着自己不断学习,积累更多的知识,同时认识更多优秀的人来带动自己。 分布式 【理论篇】浅析分布式中的 CAP、BASE、2PC、3PC、Paxos、Raft、ZAB nginx 【Nginx】如何搭建Nginx+Keepalived双机热备环境? [sl7t45tpf3.png]
(3) 虚拟DLL劫持:释放一个恶意的DLL来代替合法应用程序加载的丢失/不存在的DLL (4) DLL重定向:更改DLL搜索的路径,比如通过编辑%PATH%环境变量或 .exe.manifest/.exe.local
CSS3总结 一、选择器 1.通用选择器 E~F:E后边所有和E同级的F 2.属性选择器 E[att^=’val’]:att属性中以val开头的 E[att$=’val’]:以val结尾的 E[att* =’val’]含有val的选择器 3.伪类选择器 E:nth-child(n):选中E的父亲的第n个孩子并且该孩子必须是E否则选不中 E:nth-of-type(n):选中所有的E再从中选出第N个E 二 10px 10px 10px 2.边框 border-p_w_picpath:url() (10% 10% 10% 10%|10 10 10 10) (stretch | repeat | round) 3. top,red 0%,blue 100%); -webkit-mask-p_w_picpath:-webkit-radial-gradient(50% 50px,red 0%,blue 100%); 3. 命令 -webkit-backface-visibility:hidden; -webkit-transform-style:preserve-3d;
turtle 2 turtle.setup (650, 350, 200, 200)#turtle的绘图窗体turtle.setup(width, height, startx, starty) 3 turtle.circle(-40, 80) 12 turtle.circle(40,80/2) 13 turtle.fd(40) 14 turtle.circle(16,180) 15 turtle.fd(40* 2/3) (默认旋转角度为360度,默认圆心为距离海龟左侧 r 距离的位置) 3、turtle角度坐标系 ?
]] [ 5. 9. 0. 16.] 24 sorted 排序 例子: ll=[8,0,3,6,1,0,5,3,8,9] print sorted(ll,reverse=True) #降序 print sorted(ll,reverse=False) #升序 结果: [9, 8, 8, 6, 5, 3, 3, 1, 0, 0][0, 0, 1, 3, 3, 5, 6, 8, 8, 9] 25 print A[:,1] #获取3*3个0-1之间的数字 rr=random.rand(3,3) print rr print (rr-0.5) print 2.0*(rr-0.5 )随机获取3*3个0-1之间的数字 27、arange 例子: delta = 0.25 x = arange(-3.0, 3.0, delta) print x 结果: [-3 6, 1, 2, 3] 1 42 53 6 print ll[3:6]+ll[0:3]这行代码实现指定位置的元素进行交换。
?
orininated path :32768 other 0 ) 2 largest local-preefernce (BGP default local-preference )default 100 3 CODE ------------------------------------------------------------------------------------ 0 | 1 |2 | 3 -Optional 1-------- 0 Non-transitive ; 1 =Transitive 2--------- 0 Complete; 1 =Partial 3- Attr len Field) 1 origin WK M 2 as_path WK M 3 weight 4 route-map OUT: 1 prefix-list 2 filter-list 3 router-map IGP: 1 distribute-list 2 route-map
value都存储于磁盘中; (2)以追加的方式写入磁盘,即写操作是有序的,这样可以减少磁盘的寻道时间,是一种高吞吐量的写入方案,在更新数据时,也是把新数据追加到文件的后面,然后更新一下数据的文件指针即可; (3) 当旧数据占到一定比例时,会触发合并的动作,即将多个data文件合并减少磁盘文件个数和搜索时间(由于更新写入可能存在多个value,但是只有最新的一条数据是有效的); Bitcask的存储结构 Bitcask的分为3中文件 存储结构图如下: 说明: 1 -> 加载到内存的文件; 2 -> 存储在磁盘上的文件; 3 -> 存储在磁盘文件上的格式; 4 -> hint的文件格式; data文件的存储格式: crc32(4byte value_size = 0 if value is None else len(value) ts = datetime.now() crc = crc32('{0}{1}{2}{3}
如果发现了满足上述条件的 DLL,先判断该 DLL 是 32 位还是 64 位,如果是 32 位将该 DLL 的前三个字节改为 "\x31\x0c\xc2",64 位就改前 5 个字节,修改的 DLL 位于 3 注册表回调和关机回调与锁首没有太大的关联就不分析了 常见锁首姿势总结 3 环锁首 1、注册表锁首 修改 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer 3、通过注入动态链接库等手段入侵到浏览器进程中,修改命令行 4、通过修改快捷方式中的参数 0 环锁首 1、与上述例子相似,进程创建回调函数记录进程信息,映像加载回调函数修改命令行,这种绕过比较简单直接把浏览器的名字改一下就行了