精华内容
下载资源
问答
  • 代表是按位复制不安全,所以Rust编译器不允许它实现Copy。 所以,对于Rust而言,可以实现Copy trait类型,则表示它拥有复制语义,在赋值或传入函数等行为时,默认会进行按...
  • Excel筛选单元格时,遇到不连续区域(即中间有空白单元格)会识别不到后续内容; 合并单元格后,除首行外,其余行值会被自动清空,从而导致在筛选单元格时候,只会显示合并单元格第一个单元格以及其对应行中...

    前言

    Excel小窍门,让办公更便捷。

    情景

    合并单元格后,单一筛选时只会显示对应的第一行数据。

    案发现场.gif)]

    原因

    Excel筛选单元格时,遇到不连续区域(即中间有空白单元格)会识别不到后续内容;

    合并单元格后,除首行外,其余行的值会被自动清空,从而导致在筛选单元格的时候,只会显示合并单元格的第一个单元格以及其对应行中的数据。

    有了问题,自然就有解决问题的办法,接下来就讲一下如何将合并区域一起晒出来~

    show time~

    方法

    (一)添加辅助列

    复制合并列区域,在表格最后一列粘贴,作为辅助列;

    添加辅助列

    (二)选中合并区域,取消合并

    A列有数据的区域取消合并后,直接按F5,进行条件选择
    取消合并列

    (三)定位空值

    F5 👉👉👉定位条件👉👉👉空值
    定位空值

    (四)输入公式,智能填充

    定位到空值后直接输入**“=”进入公式状态,然后按“↑”,之后按住CTRL不放按回车键Enter**
    智能填充

    (五)对填充区域进行值粘贴、借助辅助列使用格式刷

    复制填充后的区域,直接进行值粘贴,避免之后筛选时因公式错乱导致excel崩溃;
    值粘贴
    选中辅助列,点击格式刷,选中A列,之后可以将辅助列删除。
    情景实现

    福利一

    表中的成绩是通过函数自动补全滴,函数:=RANDBETWEEN(最小值,最大值)

    填充后,数据会在区间内随机选取。

    福利二

    汇总列的求和也是通过快捷键得到的,在数据区域任选一个单元格先按住CTRL+A进行全选操作,再按住ALT和=,智能汇总。
    自动求和



    本期分享就告一段落了,下期再会~

    展开全文
  • 因 此在赋值后应该及时销毁或者初始化 L2,以免发生可预见错误。 比较 使用 Contains 方法。 ArrayList Array1=new ArrayList(); Array1.Add("as"); bool b1=Array1.Contains("as"); MessageBox.Show(b1....
  • 1. 标记清除 - 位置不连续 产生碎片 2. 拷贝算法(复制算法) - 没有碎片,浪费空间 3. 标记压缩(标记整理算法) - 没有碎片,效率偏低 4. 分代收集算法 - 没有碎片,比较复杂 标记-清除算法 标记清除算法...

    1、什么是垃圾?

    没有任何引用指向的一个对象或者多个对象(循环引用)

    2、如何定位垃圾?

    1. 引用计数  -- 缺点处理不了相互引用的对象
    2. 根可达算法

    3、常用垃圾回收算法

    1. 标记清除 - 位置不连续 产生碎片
    2. 拷贝算法(复制算法) - 没有碎片,浪费空间
    3. 标记压缩(标记整理算法) - 没有碎片,效率偏低
    4. 分代收集算法 - 没有碎片,比较复杂

    标记-清除算法

    标记清除算法(Mark-Sweep)是最基础的一种垃圾回收算法,它分为2部分,先把内存区域中的这些对象进行标记,哪些属于可回收标记出来,然后把这些垃圾拎出来清理掉。就像上图一样,清理掉的垃圾就变成未使用的内存区域,等待被再次使用。

    缺点:内存碎片

    上图中等方块的假设是 2M,小一些的是 1M,大一些的是 4M。等我们回收完,内存就会切成了很多段。我们知道开辟内存空间时,需要的是连续的内存区域,这时候我们需要一个 2M的内存区域,其中有2个 1M 是没法用的。这样就导致,有多的内存的,却用不了。

    复制算法

    复制算法(Copying)是在标记清除算法上演化而来,解决标记清除算法的内存碎片问题。它将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。保证了内存的连续可用,内存分配时也就不用考虑内存碎片等复杂情况,逻辑清晰,运行高效。

    缺点:内存使用效率不高,浪费

    标记整理算法

    标记整理算法(Mark-Compact)标记过程仍然与标记-清除算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,再清理掉端边界以外的内存区域。

    标记整理算法一方面在标记-清除算法上做了升级,解决了内存碎片的问题,也规避了复制算法只能利用一半内存区域的弊端。

    缺点:对内存变动更频繁,需要整理所有存活对象的引用地址,在效率上比复制算法要差很多。

    分代收集算法(Generational Collection)

    一般是把 Java 堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。在新生代中,每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。而老年代中因为对象存活率高、没有额外空间对它进行分配担保,就必须使用标记-清理或者标记 — 整理算法来进行回收内

    存模型与回收策略

    Java 堆(Java Heap)是JVM所管理的内存中最大的一块,堆又是垃圾收集器管理的主要区域,这里我们主要分析一下 Java 堆的结构。

    Java 堆主要分为2个区域-年轻代与老年代,其中年轻代又分 Eden 区和 Survivor 区,其中 Survivor 区又分 From 和 To 2个区。

    Eden 区

    IBM 公司的专业研究表明,有将近98%的对象是朝生夕死,所以针对这一现状,大多数情况下,对象会在新生代 Eden 区中进行分配,当 Eden 区没有足够空间进行分配时,虚拟机会发起一次 Minor GC,Minor GC 相比 Major GC 更频繁,回收速度也更快。

    通过 Minor GC 之后,Eden 会被清空,Eden 区中绝大部分对象会被回收,而那些无需回收的存活对象,将会进到 Survivor 的 From 区(若 From 区不够,则直接进入 Old 区)。

    Survivor 区

    Survivor 区相当于是 Eden 区和 Old 区的一个缓冲,类似于我们交通灯中的黄灯。Survivor 又分为2个区,一个是 From 区,一个是 To 区。每次执行 Minor GC,会将 Eden 区和 From 存活的对象放到 Survivor 的 To 区(如果 To 区不够,则直接进入 Old 区)

    两个 Survivor 区就是解决内存碎片化。

    因为 Survivor 有2个区域,所以每次 Minor GC,会将之前 Eden 区和 From 区中的存活对象复制到 To 区域。第二次 Minor GC 时,From 与 To 职责兑换,这时候会将 Eden 区和 To 区中的存活对象再复制到 From 区域,以此反复。

    Old 区

    老年代占据着2/3的堆内存空间,只有在 Major GC 的时候才会进行清理,每次 GC 都会触发“Stop-The-World”。内存越大,STW 的时间也越长,所以内存也不仅仅是越大就越好。由于复制算法在对象存活率较高的老年代会进行很多次的复制操作,效率很低,所以老年代这里采用的是标记 — 整理算法。

    除了上述所说,在内存担保机制下,无法安置的对象会直接进到老年代,以下几种情况也会进入老年代。

    大对象

    大对象指需要大量连续内存空间的对象,这部分对象不管是不是“朝生夕死”,都会直接进到老年代。这样做主要是为了避免在 Eden 区及2个 Survivor 区之间发生大量的内存复制。当你的系统有非常多“朝生夕死”的大对象时,得注意了。

    长期存活对象

    虚拟机给每个对象定义了一个对象年龄(Age)计数器。正常情况下对象会不断的在 Survivor 的 From 区与 To 区之间移动,对象在 Survivor 区中每经历一次 Minor GC,年龄就增加1岁。当年龄增加到15岁时,这时候就会被转移到老年代。当然,这里的15,JVM 也支持进行特殊设置。

    动态对象年龄

    虚拟机并不重视要求对象年龄必须到15岁,才会放入老年区,如果 Survivor 空间中相同年龄所有对象大小的总合大于 Survivor 空间的一半,年龄大于等于该年龄的对象就可以直接进去老年区,无需等你“成年”。

    这其实有点类似于负载均衡,轮询是负载均衡的一种,保证每台机器都分得同样的请求。看似很均衡,但每台机的硬件不通,健康状况不同,我们还可以基于每台机接受的请求数,或每台机的响应时间等,来调整我们的负载均衡算法。

    4、常用垃圾回收器

    1.8默认的垃圾回收:PS + ParallelOld
    1. Serial 年轻代 串行回收
    2. PS 年轻代 并行回收
    3. ParNew 年轻代 配合CMS的并行回收
    4. SerialOld 
    5. ParallelOld
    6. ConcurrentMarkSweep 老年代 并发的, 垃圾回收和应用程序同时运行,降低STW的时间(200ms)
    7. G1(10ms)
    8. ZGC (1ms) PK C++
    9. Shenandoah
    10. Eplison

    5、JVM内存分代模型(用于分代垃圾回收算法)

    1. 部分垃圾回收器使用的模型
    2. 新生代 + 老年代 + 永久代(1.7)/ 元数据区(1.8) Metaspace
       1. 永久代 元数据 - Class
       2. 永久代必须指定大小限制 ,元数据可以设置,也可以不设置,无上限(受限于物理内存)
       3. 字符串常量 1.7 - 永久代,1.8 - 堆
       4. MethodArea逻辑概念 - 永久代、元数据
    3. 新生代 = Eden + 2个suvivor区 
       1. YGC回收之后,大多数的对象会被回收,活着的进入s0
       2. 再次YGC,活着的对象eden + s0 -> s1
       3. 再次YGC,eden + s1 -> s0
       4. 年龄足够 -> 老年代 (15 CMS 6)
       5. s区装不下 -> 老年代
    4. 老年代
       1. 顽固分子
       2. 老年代满了FGC Full GC
    5. GC Tuning (Generation)
       1. 尽量减少FGC
       2. MinorGC = YGC
       3. MajorGC = FGC

     

    展开全文
  • excel使用

    2012-11-25 17:06:01
    (6) 不连续单元格填充同一数据选中一个单元格,按住Ctrl键,用鼠标单击其他单元格,就将这些单元格全部都选中了。在编辑区中输入数据,然后按住Ctrl键,同时敲一下回车,在所有选中单元格中都出现了这一数据。...
  • 如何复制位图到剪贴板 物理坐标和逻辑坐标有什么区别,它们是如何转换 什么是COLORREF 如何画一个1/4圆 如何画箭头 如何避免屏幕闪烁 如何产生复杂线条 如何显示JPG和GIF图像 怎样定制通用打印对话框CPrintDialog...
  • 2. 空间问题: 标记清除后会产生大量不连续的内存碎片, 空间碎片太多可能会导致在运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收集。 所以它一般用于"垃圾不太多的区域,比如老...

    一、怎么判断是垃圾

    • 引用计数
    • 可达性分析

    二、如何回收

    1. 分带收集算法

    1.1 标记-清除(老年代)

    该算法会有两个问题:
    1. 效率问题,标记和清除效率不高。
    2. 空间问题: 标记清除后会产生大量不连续的内存碎片, 空间碎片太多可能会导致在运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收集。

    所以它一般用于"垃圾不太多的区域,比如老年代"。

    1.2 复制(新生代)

    该算法的核心是将可用内存按容量划分为大小相等的两块, 每次只用其中一块, 当这一块的内存用完, 就将还存活的对象(非垃圾)复制到另外一块上面, 然后把已使用过的内存空间一次清理掉.
    优点:不用考虑碎片问题,方法简单高效。
    缺点:内存浪费严重。
    当发生MinorGC时, 将Eden和Survivor中还存活着的对象一次性地拷贝到另外一块Survivor上, 最后清理掉Eden和刚才用过的Survivor的空间. 当Survivor空间不够用(不足以保存尚存活的对象)时, 需要依赖老年代进行空间分配担保机制, 这部分内存直接进入老年代。

    1.3 标记-整理算法(老年代)

    标记清除算法会产生内存碎片问题, 而复制算法需要有额外的内存担保空间, 于是针对老年代的特点, 又有了标记整理算法. 标记整理算法的标记过程与标记清除算法相同, 但后续步骤不再对可回收对象直接清理, 而是让所有存活的对象都向一端移动,然后清理掉端边界以外的内存.

    1.4 方法区回收(永久代)

    在方法区进行垃圾回收一般”性价比”较低, 因为在方法区主要回收两部分内容: 废弃常量和无用的类. 回收废弃常量与回收其他年代中的对象类似, 但要判断一个类是否无用则条件相当苛刻:
    1. 该类所有的实例都已经被回收, Java堆中不存在该类的任何实例;
    2. 该类对应的Class对象没有在任何地方被引用(也就是在任何地方都无法通过反射访问该类的方法);
    3. 加载该类的ClassLoader已经被回收.

    2. 分区收集算法

    面介绍的分代收集算法是将对象的生命周期按长短划分为两个部分, 而分区算法则将整个堆空间划分为连续的不同小区间, 每个小区间独立使用, 独立回收. 这样做的好处是可以控制一次回收多少个小区间. 在相同条件下, 堆空间越大, 一次GC耗时就越长, 从而产生的停顿也越长. 为了更好地控制GC产生的停顿时间, 将一块大的内存区域分割为多个小块, 根据目标停顿时间, 每次合理地回收若干个小区间(而不是整个堆), 从而减少一次GC所产生的停顿.

    三、7种垃圾收集器

    1. Serial 收集器

    Serial收集器是一个单线程的收集器,只会使用一个CPU或者一条收集线程去完成垃圾收集工作,当收集器进行垃圾收集的时候会暂停其他所有工作线程,直到收集完毕。
    优点:简单而高效,对于单核环境来说,Serial收集器由于没有线程交互的开销,可以获得更高的单线程收集效率
    对于运行在Client模式下的虚拟机是一个很好的选择
    适用新生代收集,采用复制算法

    2. Serial Old 收集器

    Serial Old是Serial收集器的老年代版本。同样是单线程收集器,采用标记-整理算法

    3. ParNew 收集器

    ParNew收集器是Serial收集器的多线程版本,目前只有它可以跟CMS收集器配合工作
    适用新生代收集,采用复制算法

    4. Parallel Old 收集器

    Parallel Old是Parallel Scavenge收集器的老年代版本。使用多线程和标记-整理算法

    5. Parallel Scavenge 收集器

    之前的收集器目的在于尽可能的缩短垃圾收集的时候用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量。
    适用新生代收集,采用复制算法

    6. CMS收集器

    CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于标记-清除算法。CMS内存回收过程是与用户线程一起并发执行的。

    • 初始标记:STW,单线程,由于是从GCRoot寻找直达的对象,速度快
    • 并发标记:与应用线程一起运行,是CMS最主要的工作阶段,通过直达对象,扫描全部的对象,进行标记
    • 重新标记:STW,修正并发标记时由于应用程序还在并发运行产生的对象的修改,多线程,速度快,需要全局停顿
    • 并发清除:与应用程序一起运行,为何采用清除算法?CMS主要关注低延迟,因而采用并发方式,清理垃圾时,应用程序还在运行,如何采用压缩算法,则涉及到要移动应用程序的存活对象,此时不停顿,是很难处理的,一般需要停顿下,移动存活对象,再让应用程序继续运行,但这样停顿时间变长,延迟变大,所以CMS采用清除算法。

    缺点:

    • 对于CPU资源非常敏感
    • 无法处理浮动垃圾
    • 标记-清除算法导致内存碎片产生

    7. G1收集器

    G1收集器是一款面向服务端应用的垃圾收集器,具备以下特点:

    • 并行与并发
    • 分代收集:G1不需要其它垃圾收集器配合就能独立管理整个GC堆
    • 空间整合:整体采用标记-整理算法,从分区上面来看基于复制算法
    • 可预测的停顿

    G1将整个堆划分为多个大小相等的独立区域(Region),避免在整个堆中进行全区域的垃圾收集。
    建立可预测的时间模型
    Region之间的对象引用以及其它收集器中的新人代与老年代之间的对象引用,虚拟机都是使用Remembered Set.
    在CMS中,也有RSet的概念,在老年代中有一块区域用来记录指向新生代的引用。这是一种point-out,在进行Young GC时,扫描根时,仅仅需要扫描这一块区域,而不需要扫描整个老年代。

    四、几种GC概念

    minor gc:清理新生代
    major gc:清理老年代
    full gc:清理整个堆

    对于Minor GC,其触发条件非常简单,当Eden区空间满时,就将触发一次Minor GC
    Full GC触发条件:
    1、调用System.gc()
    2、老年代空间不足
    3、空间分配担保失败
    4、JDK1.7及以前的永久代空间不足
    5、Concurrent Mode Failure

    五、问题

    1.大多数老年代收集器使用了标记-复制算法,为什么CMS收集器使用了标记-清除算法
    CMS收集器主要关注低延迟,尽可能减少GC时间。如果采用标记-整理方法,移动存活对象的时候需要停顿,导致延迟变大。

    2.FUll GC会触发哪些区域进行回收
    老年代的垃圾回收(又称Major GC)通常使用“标记-清理”或“标记-整理”算法。整堆包括新生代和老年代的垃圾回收称为Full GC。

    3.什么时候触发FULL GC

    1. Perm空间不足;
    2. CMS GC时出现promotion failed和concurrent mode failure(concurrent mode failure发生的原因一般是CMS正在进行,但是由于老年代空间不足,需要尽快回收老年代里面的不再被使用的对象,这时停止所有的线程,同时终止CMS,直接进行Serial Old GC);
    3. 统计得到的Young GC晋升到老年代的平均大小大于老年代的剩余空间;
    4. 主动触发Full GC(执行jmap -histo:live [pid])来避免碎片问题。
    展开全文
  • 如何把单元格中数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后字符 怎样删去﹕后文字 怎样只取“.”之后文字﹖ 获取单元格内容中字符串 如何提取一串数字中几位...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何把单元格中数字提取出来(字符串中不连续) 数字在字符串中不连续如何提取数字 用如何提取“-”前后字符 怎样删去﹕后文字 怎样只取“.”之后文字﹖ 获取单元格内容中字符串 如何提取一串数字中几位...
  • 可支持的区域包括美国, 法国和日本。有关所有区域的信息, 请参阅 Oracle8i National Language Support Guide。 值范围: 任何有效的地区名。 默认值: 根据操作系统而定 nls_timestamp_format: 说明: 与 NLS_TIME_...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     11.1.20 复制连续的单元格区域  11.2 处理工作簿和工作表  11.2.1 保存所有工作簿  11.2.2 保存和关闭所有工作簿  11.2.3 隐藏除选区之外的区域  11.2.4 同步工作表  11.3 VBA技巧  11.3.1 切换布尔类型...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     11.1.20 复制连续的单元格区域  11.2 处理工作簿和工作表  11.2.1 保存所有工作簿  11.2.2 保存和关闭所有工作簿  11.2.3 隐藏除选区之外的区域  11.2.4 同步工作表  11.3 VBA技巧  11.3.1 切换布尔类型...
  • word使用技巧大全

    热门讨论 2011-03-18 20:37:53
    如何在其它计算机上打印含有本机特有字体文件 28 ★在Word中打印海报 28 ★Word复印机缩放功能 29 ★Word复印机缩放功能 29 ★将图片移到合适位置 30 ★Ctrl在绘图中作用 30 ★去除绘图时出现画布 30 ...
  • GetCharacterPlacement 该函数用于了解如何用一个给定字符显示一个字串 GetCharWidth 调查字体中一个或多个字符宽度 GetFontData 接收一种可缩放字体文件数据 GetFontLanguageInfo 返回目前选入指定设备...
  • 这是高级用户和任何需要导出一系列连续照片功能。 混合模式 Polarr 中有一个滑块,可以使文本编辑功能强大。单个滑块可让您控制12种混合模式并实时预览混合效果。在上面GIF中检查一下。 刷子 画笔遮罩工具...
  • • 从生产配件编号中提取连续的数字编码 • 利用MATCH 函数提取连续数值 • 查询并汇总各产品销售额 • 利用MATCH函数汇总最后3 天的产品销售额 • 利用RANK函数实现按班级进行动态排名 • 利用COUNT函数统计培训...
  • 同时,在将复制的结点random指向原始链表结点randomnext时候,需要先判断一下,原始链表结点next是否为None,为None再指向。 面试题27:二叉搜索树与双向链表:按照左右子树分治,递归实现。根左边连接...
  • 实例10:删除连续的重复段落和不连续的重复段落 7 实例11:删除连字符及其后面的相关内容 8 实例12:删除特定的英文部分 9 实例13:删除相邻的相同重复字词 9 实例14:删除重复的词组 9 实例15:删除答案部分 10 ...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧36 复制自动筛选后数据区域 12 技巧37 使用高级筛选获得重复记录 12 技巧38 工作表保护与解除保护 12 技巧39 奇偶页打印 12 第3章 Wordbook(工作簿)对象 12 技巧40 工作簿引用方法 12 40-1 使用工作簿...
  • 关于区域的更多信息 5-5 绝对和相对引用 5-7 应用项目开发基本步骤 5-8 部署应用项目操作过程 5-8 设置FactoryTalk Directory 5-8 创建一个应用项目 5-9 重命名一个应用项目 5-10 删除一个应用项目 5-10 组织...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧36 复制自动筛选后数据区域 91 技巧37 使用高级筛选获得重复记录 93 技巧38 工作表保护与解除保护 94 技巧39 奇偶页打印 97 第3章 Wordbook(工作簿)对象 99 技巧40 工作簿引用方法 99 40-1 使用工作簿...
  • EXCEL--实用技巧

    2009-06-13 09:57:06
    按下组合键“Shift+F8”,激活“添加选定”模式,此时工作簿下方的状态栏中会显示出“添加”字样,以后分别单击不连续的单元格或单元格区域即可选定,而不必按住Ctrl键不放。 十四.奇特的F4键 Excel中有一个快捷键的...
  • 22. 快速选定不连续单元格 17 23. 根据条件选择单元格 17 24. 复制或移动单元格 18 25. 完全删除EXCEL中单元格 18 26. 快速删除空行 19 27. 回车键粘贴功能 19 28. 快速关闭多个文件 20 29. 选定多个工作表 20 ...
  • Hystrix会在某个服务连续调用N次响应情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务。 Hystrix间隔时间会再次检查此服务,如果服务恢复将继续提供服务。 Hystrix Dashboard和Turbine 当...
  • 确保移动工作人员会话连续性 91 维护会话活动 92 配置会话可靠性 92 配置自动客户端重新连接 93 为场配置默认自动客户端重新连接设置 94 为服务器配置“Auto Client Reconnect”(自动客户端重新连接)设置 95 ...
  • 22. 快速选定不连续单元格 17 23. 根据条件选择单元格 17 24. 复制或移动单元格 18 25. 完全删除EXCEL中单元格 18 26. 快速删除空行 19 27. 回车键粘贴功能 19 28. 快速关闭多个文件 20 29. 选定多个工作表 20 ...
  • Excel技巧大全

    2015-05-06 07:21:37
    22. 快速选定不连续单元格 11 23. 根据条件选择单元格 11 24. 复制或移动单元格 12 25. 完全删除Excel中单元格 12 26. 快速删除空行 12 27. 回车键粘贴功能 12 28. 快速关闭多个文件 12 29. 选定多个工作表 12 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
关键字:

如何复制不连续的区域