ondragover 该事件在拖动元素在放置目标上时触发 ondragstart 该事件在用户开始拖动元素时触发 ondrop 该事件在拖动元素放置在目标区域时触发 多媒体(Media)事件...oncanplaythrough 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。...使用 onwheel 事件替代 ononline 该事件在浏览器开始在线工作时触发。 onoffline 该事件在浏览器开始离线工作时触发。...2 button 返回当事件被触发时,哪个鼠标按钮被点击。 2 clientX 返回当事件被触发时,鼠标指针的水平坐标。 2 clientY 返回当事件被触发时,鼠标指针的垂直坐标。...2 screenX 返回当某个事件被触发时,鼠标指针的水平坐标。 2 screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。
metaKey 返回当事件被触发时,"meta" 键是否被按下。 relatedTarget 返回与事件的目标节点相关的节点。 screenX 返回当某个事件被触发时,鼠标指针的水平坐标。...screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。 shiftKey 返回当事件被触发时,"SHIFT" 键是否被按下。...ondragleave 该事件在拖动元素离开放置目标时触发 ondragover 该事件在拖动元素在放置目标上时触发 ondragstart 该事件在用户开始拖动元素时触发 ondrop 该事件在拖动元素放置在目标区域时触发...oncanplaythrough 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。...使用onwheel 事件替代 ononline 该事件在浏览器开始在线工作时触发。 onoffline 该事件在浏览器开始离线工作时触发。
image.png 没错,这个程序是运行在Windows上的,并且需要插入USBKey才能正常工作,这就意味着,不能简单的使用命令行进行运维管理。...由于各种未知的原因,比如网络不稳定,或者USBKey插入时间过长产生了一些莫名其妙的错误,那么就需要人工去重启一下服务或重新登录一下账号,而且,这个工作有时候是在夜间操作的,这相当于要24小时待命啊,虽然故障频率不高...接下来我们会迎来第二个坑,如果USBKey正常工作,那么用户名里的的内容是自动填写好的,如图: image.png 这个用户名是从USBKey里读出来的,读取是需要时间的,因此我们可以在这里不停的向这个文本框发送...,然后再使用SendMessage,ListView的数据会写到这个内存块,最后我们通过 ReadProcessMemory 来读取获取到列表的数据 这里就是为什么32位不能读64位程序的内容的原因了,...我们先来预览几个外挂的截图吧: 外挂工作中..... image.png 当发生稳定性异常时,会通过bearychat的Incoming服务发送报警 image.png image.png ---- 版权申明
图1 复杂一点的方法就是,单击Excel左上角的“文件——选项”,在“Excel选项”对话框中,单击左侧的“加载项”选项卡,在右侧下方的“管理”下拉列表中选择“Excel加载项”,单击其右侧的“转到”按钮...当单击“浏览”按钮以查找加载项时,会在此处添加键。...然后,会在Excel中得到一个指向已安装加载项的指针,该加载项没有随附的xlam文件。每次Excel启动时,都会弹出一个找不到加载项的警告消息框,如下图6所示。...图6 因此,为什么代码会显示一个如下图7所示的消息框。 图7 如果一切顺利并且用户首先解压了zip文件,则代码会询问用户是否要安装加载项,如上图5所示。...最后一行关闭加载项打开的所有工作簿。为什么?因为当没有活动工作簿时你无法打开加载项对话框,显然这也会阻止Excel通过VBA将新加载项添加到列表中。
ondblclick: 当双击页面时调用事件句柄。 oncontextmenu: 在点击鼠标右键打开上下文菜单时触发。 onmousedown: 鼠标按钮被按下时触发。...onmouseenter: 当鼠标指针移动到元素上时触发。 onmouseleave: 当鼠标指针移出元素时触发 onmousemove: 鼠标被移动。...ononline: 该事件在浏览器开始在线工作时触发。 onoffline: 该事件在浏览器开始离线工作时触发。 onshow: 该事件当元素在上下文菜单显示时触发。...ondragleave: 该事件在拖动元素离开放置目标时触发。 ondragover: 该事件在拖动元素在放置目标上时触发。 ondragstart: 该事件在用户开始拖动元素时触发。...oncanplaythrough: 事件在视频/音频可以正常播放且无需停顿和缓冲时触发。 ondurationchange: 事件在视频/音频的时长发生变化时触发。
ZGC内存布局图: ? 染色指针 HotSpot的垃圾收集器,有几种不同的标记实现方案。 把标记直接记录在对象头上(Serial 收集器)。...目前Linux下64位指针的高18位不能用来寻址,但剩余的46位指针所能支持的64TB内存仍然鞥呢够充分满足大型服务器的需要。鉴于此,ZGC将其高4位提取出来存储四个标志信息。...把染色指针中的标志位看作是地址的分段符,那只要将这些不同的地址段都映射到同一物理内裤空间,经过多重映射转换后,就可以使用染色指针正常进行寻址了。 多重映射下的寻址: ?...并发标记(Concurrent Mark): 与G1、Shenandoah一样,并发标记是遍历对象图做可达性分析的阶段,前后也要经过类似于G1、Shenandoah的初始标记、最终标记的短暂停顿,而且这些停顿阶段所做的事情在目标上也是相类似的...ZGC默认支持NUMA架构,在创建对象时,根据当前线程在哪个CPU执行,优先在靠近这个CPU的内存进行分配,这样可以显著的提高性能,在SPEC JBB 2005 基准测试里获得40%的提升。
为什么这么说?一是因为QT文档给出了比较详细的例子,二是QT的结构比较优雅,设计风格统一。但是在动手之前,我们要从哪里下手?虽然QT文档给出了一个比较详细的例子,但由于功能较多,所以看起来比较费劲。...这一步很简单:先在源代码的文件夹中建立一个子文件夹,比如命名为images.然后在工程中添加一个资源文件。打开这个资源文件,在右边下部可以看到一个添加的按钮,点击添加前缀,如图: ?...这个提示信息出现在什么时候呢?就是当你的鼠标放在系统托盘图标上时,它就会出现。一般设置为程序名称。第5行到第13行设置上下文菜单项。这里总共设置了四项。分别为缩小、放大、还原窗口和推出程序。...每一个菜单项在创建后,我们就将其触发信号连接到指定的槽函数。第14到20行将创建好的菜单项添加到上下文菜单中去,搞定。第21行将这个系统托盘显示出来。这一句很重要,不能忘记。...这时功能基本完成,程序在一启动时就可以在系统托盘区看到托盘图标。但是如果在上述构造函数中没有加showMessage()这个函数,将不会出现托盘气球提醒。我们就模仿程序后台运行时的提醒效果吧。
这个选项可以在图1中看到。 要请求文本查询计划,请使用SET SHOWPLAN_TEXT ON语句。打开文本版本将关闭图形版本,不会执行任何查询。...例如,当WHERE子句被评估时,也就是说,当一个Filter操作被执行时,行被一次评估一个;不是一次全部。在下一行到达过滤器操作之前,行可以移动到下一个操作。...这个计划的每个操作的相对成本告诉我们,排序操作是总成本的5%,而表扫描是95%的工作。 因此,如果我们想提高这个查询的性能,我们应该解决表扫描,而不是排序; 这就是为什么建议索引。...图3 - JOIN的查询计划 快速查看计划告诉我们一些事情: 两个表都在同一时间被扫描。 大部分的工作都花在扫描表格上。 更多的行或SalesOrderHeader表比出联系人表。...这就是为什么创建非聚簇索引(每个都包含列)都使我们以前的例子受益。实际上,如果将鼠标放在最近查询中的“合并连接”图标上,则会使用两个适当排序的输入流匹配行,并利用它们的排序顺序。会出现。
比如,当发送消息的线程监测到有别的窗口SendMessage一个消息到来时,他直接调用窗口处理过程(重入),并将处理结果返回(这个过程不需要消息循环中GetMessage等的支持)。...5、在MFC窗口中制作一个逃跑按钮(鼠标永远捕捉不到),该如何实现?...方法一: 创建一个类MyButton, 让该类从CButton类派生 在该子类中处理鼠标移动事件, 鼠标移动到该按钮上, 计算随机位置, 移动按钮 在窗口中拖放一个CButton按钮, 给该按钮关联一个...指针使用时要在前加 * ,引用可以直接使用。 引用在定义时就被初始化,之后无法改变;指针可以发生改变。 即引用的对象不能改变,指针的对象可以改变。 没有空引用,但有空指针。...那么当我把模板声明和实现分开的时候,这个即时过程因为编译器只能通过代码include“看到”头文件而找不到模板实现代码,所以会产生链接问题。这也是为什么几乎都会建议模板类和声明和实现都写在头文件。
继续切其他图标,从图中也可看出每个切图左上角都有一个数字,这个数字就是切图的编号,表示当且切图时第几个切图。 ? (2)上面的切图也暴露除了几个疑问,我先把上图的底部放大一点,能看清楚些。...图片的右下角有一个区域,区域左上角有一个数字为30的编号,这个区域也是一个切图,30是我们看到的最大数字,这说明了其实我们一共切了30个图。明明我们只切了8个图片,为什么一下子又变成了30个切图?...(3) 然后在工具栏中选中“切片工具”,此刻工具菜单栏中多了一个“基于参考线的切片”按钮。点击这个按钮。设计图中自动生成了几个切片,切片工具基于参考线自动生成切图。...由于自动切图时PS会把每个图层都导出,所有花的时间可能比较长,需要耐心等待。当自动切图执行完成后,我们可以在目标目录下看到导出的所有图片。...总结:如果我们在设计图层时就按照*.文件类型命名,那么在设计完图层时切图工作也就完成了。
“闪退”,这是正常现象。...注意当运行到调用函数的地方的时候,会跳过函数体的内部的运行细节而直接运行到函数返回后的结果。 Ctrl + F10 键 直接运行到光标所在位置(光标所在位置不表示鼠标指针所在位置。。...想要做到这一点我们只需要把鼠标指针移到想要查看的光标上,光标旁边就会出现他的值了: 当然,如果想查看一个数组各个元素的值,我们可以把鼠标放在数组名上,就会出现这样的下拉界面: 就可以方便的看到了各个数值了...关闭Debug模式 在Debug模式下,点击窗口的红叉叉实际上是关闭不了的,我们当然可以在菜单中选择停止调试,但是这样显然很cuo(第二声)(实际上按按钮的行为都很cuo(第二声),所以我把我的按钮那一栏都直接取消了...,是不是看上去非常干净0.0),快捷的做法是按shift + F5 这样就可以结束Debug模式而到正常的码代码的模式了。
我们来看下面这张图: ? 乍一看总感觉歪歪扭扭,这也跟多个不同图标组合有关,非对称的图标会在视觉上造成偏重的感觉。我们再看放大图: ? 其实单从图标上看,已经是对齐的了。...但是我想说的不是这个问题,而是这张图里面的两个按钮,确实在垂直方向上错开了 1px,我们来看放大图: ? 问题已经很明显了,显然,这里也是个重灾区。...结尾元素的边框 当多个列表元素中间有边框相隔时,往往有些童鞋会忘记去掉结尾的边框。这里也是重灾区: ? 这张图乍一看像是加了个阴影特效,貌似效果还不错。但是有些设计的配色,就不一定有这么好的效果了。...我们来看看放大图: ? 所以,在有多个列表元素并带有边框时,大家就要注意一下第一个元素(有的时候是左侧边框或者上边框)和最后一个元素了。...对于最常见的按钮,中间带文字的,也是很容易对不齐的。 比如这个: ? 在视觉效果上已经比较居中了,我们看看放大效果: ? 从技术上来说,这个已经算是垂直居中了。
单链表只能顺着节点的指针依次找下去,而不能往回找。...首先说说没有环的情况,没有环的情况是比较简单的,就是正常的遍历链表,只要链表的某个节点的 next 指针指向了 NULL,那么就说明到达链表的结尾,也就不存在环了。...当指针 cur 指向地址 0x0002 时,这个地址在 地址列表 中是可以找到的,那么就说明该链表是有环的。 这种方法要使用另外一种数据结构,然后通过查表的方法来判断链表是否有环。...通过上面的图可以看出,通过 快慢指针 可以判断出链表是否有环。 代码实现 判断链表是否有环,我在实现时使用了第二种方法,因为第一种方式需要使用另外的数据结构进行记录并查表。...提交结果 在写完 hasCycle 函数体后,点击右下角的 “执行代码”,然后观察 “输出” 和 “预期结果” 是否一致,一致的话就点击 “提交” 按钮。
软件使用 Unicode 编码,可以在英文、日文等外文 Windows 系统下正常使用,并且软件带有中、日、英多国语言界面,可自由切换。...(图1-1,定时执行专家 – 主窗口) 二、适用人群及应用场景 – 每天工作在电脑前面的白领 – IT系统管理人员、IT系统运维人员、程序开发人员 – 办公室人员 – 有定时提醒、定时执行需求的实验室...-3); (2)在设置对话框打开(勾选)“开机启动”、“程序启动时主窗口最小化到Windows系统任务栏托盘”、“最小化窗口时隐藏本程序在Windows系统任务栏托盘的图标……” 3个选项; (3)点击...* [注] 不勾选“点击主窗口关闭按钮,最小化并隐藏主窗口”, 在点击“关闭”按钮的时候,会关闭程序。勾选之后,关闭程序需要在托盘里的“定时执行专家”图标上右键选择“退出”。...这个状态下如果想要退出程序,需要在程序主窗口显示在桌面的时候,在托盘里的“定时执行专家”图标上右键选择“退出”。结合“开机启动”选项和本选项,可以做到隐藏自动启动,用户无察觉。
mouseenter 当鼠标指针移动到元素上时触发。 mouseleave 当鼠标指针移出元素时触发 mousemove 鼠标被移动。 mouseover 鼠标移到某元素之上。...scroll 当文档被滚动时发生的事件。 unload 用户退出页面。...该事件在拖动元素离开放置目标时触发 dragover 该事件在拖动元素在放置目标上时触发 dragstart 该事件在用户开始拖动元素时触发 drop 该事件在拖动元素放置在目标区域时触发 多媒体...canplay 事件在用户可以开始播放视频/音频(audio/video)时触发。 canplaythrough 事件在视频/音频(audio/video)可以正常播放且无需停顿和缓冲时触发。...offline 该事件在浏览器开始离线工作时触发。 popstate 该事件在窗口的浏览历史(history 对象)发生改变时触发。
分代GC和逃逸分析 Java垃圾收集器有更多的工作要做,因为它分配了更多的对象。为什么?我们刚刚讲过了。如果没有值对象和真正的指针,在分配大型数组或复杂的数据结构时,它将总是以大量的对象告终。...这个论点是这样的:因为Go没有压缩垃圾收集器,内存会随着时间的推移而碎片化。当内存被分割时,你将到达一个点,将一个新对象装入内存将变得困难。...当您有了值类型、转义分析、指针、多核处理器和现代分配器时,Java设计背后的许多假设都被抛到了脑后。它们不再适用。...程序吞吐量:由于GC必须为每个周期做大量工作,这从程序本身窃取CPU时间,降低了它的速度。 当您有一个并发GC时,这并不适用。...当多个服务一起工作时,高延迟将导致吞吐量下降。Java对高吞吐量和高延迟GC的偏好适用于单块世界。它不再适用于微服务世界。
【先进后出】 alloc 在堆上申请一块空间返回一个指针,这个指针在栈上,申请的空间在堆上, 这里指的局部变量不是对象地址,而是这个对象的指针在栈上。...当创建一个NSCFConstantString对象时,会检测这个字符串内容是否已经存在,如果存在,则直接将地址赋值给变量;不存在的话,则创建新地址,再赋值。...一个问题:为什么我们在定义NSString时使用Copy而不是 Strong strong和retain同义, weak和assign同义, 为什么要采用这种说法, 似乎是ARC出现后为了消除引用计数的观念而采用的做法...符号表生成后就不会再改,因此指针可以改变其指向的对象(指针变量中的值可以改),而引用对象则不能修改。 下面图就是反映传指针的逻辑 ? ?...至于视图能够正常显示应该是[self.view addSubview:svc.view]之后self.view中有强引用的指针指向svc.view 所以视图不会挂,但是这个svc已经被销毁了 小结 通过以上的描述和比较
如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。) 场景 有一天给研究生上课,几个学生分别上讲台展示仿真建模作业。...可以看到,目录下面有一个mindemap2slide文件,在我这里图标是个小机器人。把小机器人拖动到macOS的dock上面,成为一个快捷按钮。 到此为止,准备工作完全就绪了。...我们把它拖拽到dock中那个小机器人图标上。请参看以下gif动图。 如果提示权限错误,那是因为你的macOS安全设置级别比较高。...这就是为什么你不能在安装的时候选择其他的目录。否则傻乎乎的Automator小机器人根本就找不到Python脚本了。 如果你对实现的技术细节感兴趣,可以查看源代码。...这个脚本陆续写了很长时间,其中Markdown到幻灯的转换还是我刚学Python的时候写的。如果你发现其中有很多蹩脚的代码,那很正常。我这个懒人实在懒得改了,能凑合着用就好。欢迎你帮我改进。
技巧:要看某个函数首先找到这个函数的入口,最好先找入口事件,从页面最初渲染的函数进去才好一步步往下走。打断点时在函数内部打,不要在外部打断点! 初始化函数常为生成一个DOM...?...法一 1.在227行打上断点 2.点击加载更多按钮 3.单击一次“逐语句执行“按钮,js代码执行到228行 4.用鼠标选中i++ 5.选中以后,鼠标悬浮在目标上方,你就看到上图的结果。?...5、总结1.没打断点时在console输入i,i只是一个局部变量,浏览器会把所有的js全部解析完成,console并不能访问到局部变量,只能访问到全局变量,所以console会报错i未定义。...2.当js打上断点时,console解析到了局部变量i所在的函数内,这时i能够被访问。...6、断点调试实战小程序断点调试实例(重点介绍--打断点的思路) 1.首先看动态效果图、发现一个规律:第一次点击的新闻详情没问题,控制台正常输出对应的index,但是点击的第二个却会报错 。
由于我们的main函数不被其他函数调用(注意:不是不可调用,是一般情况下不调用,如果你想挨骂的话…),所以就不能像其他函数一样,在程序运行中获取参数数据,那为什么还要有这个参数呢,实际上,这个参数是程序运行时...总不能在代码中固定一个路径吧,大家计算机名字都不一样,这样肯定行不通,于是我们在代码中开始写到cout<<“请输入数据保存的路径”; 然后开始读取用户输入的路径,那么有没有进一步提升用户体验的写法?...3.程序代码区、文字常量区、静态区(全局区)、堆区、栈区 为什么说这个,原因在图中: ? ...我查找了大量的有关博文,大多数有关博文都有怎么一张图,如果说以前,我可能会同意,但是现在我对图中栈区的向下增长有一些疑惑,就拿我们刚开始数组死循环的内存分配来说,内存两种分配模式,递增,递减,所以我觉得这个图还有待考证...当自定义函数中无返回值时,可以使用该写法。相当于使用了break。 return 0; 当函数有返回值时,使用该写法。
领取专属 10元无门槛券
手把手带您无忧上云