Mark

2018学习笔记--html学习笔记之基础知识

孤街浪徒 提交于 2021-01-10 12:40:07
一、通用标签 1. <body></body>为主题标签,主要用于存放网页内容。 属性:bgcolor 主题背景颜色 text字体颜色 为body添加属性时,将属性写在<body> 例如 < body bgcolor ="black" text ="purple" > 效果为 2.格式控制类:<b></b>加粗 <i></i>斜体 <u></u>下划线 <br>换行  空格 前三个文字处理文字嵌套其中,后两个放在所需要的位置即可。另外,可以多层使用。 例如 < b > 伤情最是晚凉天,憔悴斯人不堪怜, </ b > < i > 邀酒摧肠三杯醉,寻香惊梦五更寒。 </ i >< br > < u > 钗头凤斜卿有泪,荼蘼花了我无缘, </ u >< br >        小楼寂寞新雨月,也难如钩也难圆。 效果为 3.内容容器: ①<hi>~<h2>为标题标签 使用方法为<h1></h1>其中的内容作为标题,1-6为标题级别,视觉上就是字体大小。 < h1 > 定场诗 </ h1 > < h2 > 马东 </ h2 > < h3 > 马季之子 </ h3 > < h4 > 郭德纲经常用 </ h4 > < h5 > 怎么用 </ h5 > < h6 > 用嘴说 </ h6 > 效果为 ②<p></p>段落分割标签 对其中的文字自动分为一个段落。 ③<div></div>层标签

手艺人舍bpftrace而取systemtap的代价和思考

☆樱花仙子☆ 提交于 2021-01-10 11:42:24
上个礼拜我就想喷eBPF了,由于周末时间实在太紧,就准备拖延一周,但还是立了个flag,先发了个朋友圈: ebpf就像牛皮藓一样,已经遍布在linux内核的各个角落,每个调用点都看上去很随意,毫无规划,让人觉得好像自己觉得哪里需要这么一个调用点并不很难… 但实际上如果你真的去尝试在某处加一个ebpf调用点时,就会觉得这件事和清除牛皮藓的过程非常类似,修改散落在各个目录的多个文件,还得重新编译,大概率失败,还要重新做一次,很难一次做干净,当你好不容易成功了,会有一种“不过如此”的嗟叹… 我曾将ebpf比做扩散的癌细胞,这个比喻没有给人密集恐惧的效果,所以我换成了牛皮癣。该存在ebpf调用点的地方一个也没有,没必要ebpf的地方到处都是,这些点还在持续增加,迄至5.11内核,ebpf已经有大三十个点了,依然在毫无规划地疯长着… eBPF是个创新,但人们明显狂热过度了,ebpf增加调用点也过于随意,太业务导向了,损坏了内核的内聚性,远远比不上当初netfilter的五个hook点以及qdisc这种经过良好设计的机制,另外还有一个问题,netfilter的五个hook点上如果部署了ebpf点,其实就能解决大部分性能问题,然而直到现在都没有,感觉是社区矫枉过正了,真的彻底把netfilter当成了旧时代的象征,把马杀掉的同时,轮子也不要了 人们都像虫子一样在这里你争我抢,吃的都是良心

Java之JVM的深入探究(五)--垃圾回收器

萝らか妹 提交于 2021-01-09 21:48:34
预计阅读时间: 9 分钟 我们在上一篇中已经详细的探究了关于JVM的垃圾回收的几种算法,从中我们知道了不同的算法有这不同的优缺点的,然而实际在Java的JVM的并不是单纯的使用其中的某一种算法来实现垃圾回收的,而是将不同的垃圾回收算法包装在不同的垃圾回收器当中,这样用户就可以根据自身的需求,有选择性的使用不同的垃圾回收器,以便让自己的java程序性能到达最佳。 垃圾回收器概述: 垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、分代收集算法等)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别,本文主要介绍HotSpot虚拟机中的垃圾收集器。 在探究垃圾回收器之前我们先来回忆下之前探究过的关于JVM内存模型中的Java堆的知识,先来看一下Java堆的结构图如下: java堆内存结构包括:新生代和老年代,其中新生代由一个伊甸区和2个幸存区组成,2个幸存区是大小相同,完全对称的,没有任何差别。我们把它们称为S0区和S1区,也可以称为from区和to区。 JVM的垃圾回收主要是针对以上堆空间的垃圾回收,当然其实也会针对元数据区(永久区)进行垃圾回收,在此我们主要针对堆内存空间的垃圾回收进行探究。 垃圾收集器组合: 下面我们介绍几种常见的垃圾回收器: 1、>>串行收集器: (1)特点:   –它仅仅使用单线程进行垃圾回收   –它是独占式的垃圾回收

Java之JVM的深入探究(四) --垃圾回收算法

杀马特。学长 韩版系。学妹 提交于 2021-01-09 21:48:07
预计阅读时间: 9 分钟 首先,谈一下什么是GC(Garbage Collection)。说起GC,大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,早在1960年Lisp这门语言中就使用了内存动态分配和垃圾回收技术。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中那些内存需要回收呢?我们接着往下看。 由前面的文章介绍我们都了解JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而 Java堆区和方法区则不一样 ,这部分内存的分配和回收是动态的,正是垃圾收集器所需关注的部分。 需要注意的是:垃圾收集器在对堆区和方法区进行回收前,首先要确定这些区域的对象哪些可以被回收,哪些暂时还不能回收,这就要用到判断对象是否存活的算法! 我们在介绍垃圾回收算法之前需要先了解一个词“stop the world”,JVM为了执行垃圾回收,会暂时java应用程序的执行,等垃圾回收完成后,再继续运行。如果你使用JMeter测试过java程序

跟着B站UP主小姐姐去华为坂田基地采访扫地僧

ぐ巨炮叔叔 提交于 2021-01-09 05:23:29
摘要: 谁说程序员就只能写代码呢!华为扫地僧的才艺是完全可以solo出道的那种。 忍不住想要和你们分享下我9月份的快乐呀!Mark下最近完成的一件超了不起的事情!我去你们口中别人家的公司—华为啦!这次采访了十位技术大佬,他们也是传说中的华为扫地僧! 我超级开心这次被邀请去采访华为的技术大牛们!紧张又激动! 老实讲,三天的拍摄简直忙到飞起,每天的感觉就是累、很累、非常累,坚持拍完的我都忍不住要为自己打Call!虽然累,但是超级开心呀!因为作为一个程序媛,碰上了真正的程序员大神,能从前沿技术、职业发展等各个方面学习到非常多。成就感满满! 之前,很多人在我的视频下回复“还是好好写你的代码吧”,采访完华为的大牛后我只想再次强烈地表示,程序员也是爱折腾自己喜欢的事情,千万不要给自己的生活设框。这些华为扫地僧,有的是摇滚老炮,有的是陶笛小王子,才艺是完全可以solo出道的那种。谁说程序员就只能写代码呢! Get ready with me,接着往下看叭~ 这次,我们来到的是华为深圳坂田基地。进去的第一感觉就是满眼绿。沿路两旁绿植覆盖面积很大。最主要的是,华为坂田基地的地标研发中心大楼,也是绿色的。华为本身就很强调绿色运营、绿色世界的理念。你们也来感受下。 华为坂田基地中地区的命名,都是科学家的姓名,这是一种对科技大神的某种致意。也希望这种科学精神能代代相传。 作为一个爱学习的程序媛

浅谈JVM

牧云@^-^@ 提交于 2021-01-09 01:49:26
Java GC的工作原理 Garbage Collection简称为GC,是垃圾回收的意思、内存处理器是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃。Java语言提供的GC功能可以自动的检测对象是否超过作用域,从而达到自动回收内存的目的,java语言没有提供释放已分配内存的显示操作方法,资源回收工作全部交由GC来完成,程序员不能精确的控制垃圾回收的时机。 GC在实现垃圾回收时的基本原理: Java的内存管理实际就是对象的管理,其中包括对像的分配和释放。对于程序员来说,分配对象使用new关键字,释放对象时只是将对象赋值为null,让程序员不能够再访问到这个对象,该对象被称为“不可达”。 GC将负责回收所有“不可达”对象的内存空间 。 System.gc()和Runtime.gc()会做什么事情? 这两个方法用来提示JVM要进行垃圾回收。但是,立即开始还是延迟进行垃圾回收是取决于JVM的。 如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存? 不会,在下一个垃圾回收周期中,这个对象将是可被回收的。 GC算法 1)引用计数法 Reference Counting: 2)根搜索算法 GC Roots Tracing 3)标记-清除算法 Mark-Sweep: 4)标记整理算法 Mark-Compact: 5)复制算法 Copying

Java_垃圾回收算法

ぃ、小莉子 提交于 2021-01-08 20:13:27
参考:《深入理解JAVA虚拟机》第二版 3.3 垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,只是介绍几种算法的思想及其发展过程。 3.3.1 标记-清除算法 最基础的收集算法是“标记-清除”(Mark-Sweep)算法。 算法分为 标记和清除 两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。后续的收集算法都是基于这种思路并对其不足进行改进而得到的。 它的主要不足有两个: 一个是效率问题,标记和清除两个过程 的效率都不高 ; 一个是空间问题,标记清除之后会产生 大量不连续的内存碎 片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。 3.3.2 复制算法 为了解决效率问题,“复制”(Copying)的收集算法出现了,它将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。 这样使得每次都是对整个半区进行内存回收,不用考虑内存碎片等复杂情况,实现简单,运行高效。这种算法的代价是将 内存缩小为了原来的一半 ,未免太高了一点。 现在的商业虚拟机都采用这种收集算法来回收新生代,IBM研究表明,新生代中的对象98%是“朝生夕死”的

Java 虚拟机 最易理解的 全面解析

。_饼干妹妹 提交于 2021-01-06 20:56:52
先上一个最容易理解的类实例化的内存模型案例截图: 转载自: https://www.zybuluo.com/Yano/note/321063 周志明著的《深入理解 Java 虚拟机》的干货~如有错误,欢迎指出 O(∩_∩)O 转载请保留以上信息。 JDK 是什么 JRE 是什么 Java历史版本的特性 Java Version SE 50 Java Version SE 6 Java Version SE 7 Java 8 运行时数据区域包括哪些 程序计数器线程私有 Java 虚拟机栈线程私有 本地方法栈线程私有 Java 堆线程共享 方法区线程共享 运行时常量池 Java 中对象访问是如何进行的 如何判断对象是否死去 什么是引用计数法 引用计数法的缺点 什么是根搜索算法 Java 的4种引用方式 强引用 软引用 弱引用 虚引用 有哪些垃圾收集算法 标记-清除算法Mark-Sweep 什么是标记-清除算法 有什么缺点 复制算法Copying- 新生代 优点 缺点 应用 标记-整理算法Mark-Compact-老年代 分代收集算法 Minor GC 和 Full GC有什么区别 Java 内存 为什么要将堆内存分区 堆内存分为哪几块 分代收集算法 内存分配有哪些原则 Young Generation Space 采用复制算法 Tenure Generation Space采用标记

iptables 常用命令示例

家住魔仙堡 提交于 2021-01-06 11:32:48
一、常用命令示例: 1、命令 -A, --append 范例:iptables -A INPUT -p tcp --dport 80 -j ACCEPT 说明 :新增规则到INPUT规则链中,规则时接到所有目的端口为80的数据包的流入连接,该规则将会成为规则链中的最后一条规则。 2、命令 -D, --delete 范例:iptables -D INPUT -p tcp --dport 80 -j ACCEPT 或 : iptables -D INPUT 1 说明: 从INPUT规则链中删除上面建立的规则,可输入完整规则,或直接指定规则编号加以删除。 3、命令 -R, --replace 范例: iptables -R INPUT 1 -s 192.168.0.1 -j DROP 说明 取代现行第一条规则,规则被取代后并不会改变顺序。 4、命令 -I, --insert 范例:iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT 说明: 在第一条规则前插入一条规则,原本该位置上的规则将会往后移动一个顺位。 5、命令 -L, --list 范例: iptables -L INPUT 说明:列出INPUT规则链中的所有规则。 6、命令 -F, --flush 范例: iptables -F INPUT 说明: 删除INPUT规则链中的所有规则。

delete后加 limit是个好习惯么?

混江龙づ霸主 提交于 2021-01-03 11:52:14
前言 在业务场景要求高的数据库中,对于单条删除和更新操作,在delete和update后面加limit 1绝对是个好习惯。 比如,在删除执行中,第一条就命中了删除行,如果SQL中有limit 1;这时就return了,否则还会执行完全表扫描才return。效率不言而喻。 那么,在日常执行delete时,我们是否需要养成加 limit 的习惯呢?是不是一个好习惯呢? 在日常的SQL编写中,你写delete语句时是否用到过以下SQL? delete from t where sex = 1 limit 100 ; 你或许没有用过,在一般场景下,我们对 delete 后是否需要加 limit 的问题很陌生,也不知有多大区别,今天带你来了解一下,记得mark! 写在前面,如果是清空表数据建议直接用 truncate ,效率上truncate远高于delete,应为truncate不走事务,不会锁表,也不会生产大量日志写入日志文件; truncate table table_name 后立刻释放磁盘空间,并重置auto_increment的值。delete删除不释放磁盘空间,但后续insert会覆盖在之前删除的数据上。 下面只讨论delete场景,首先,delete后面是支持limit关键字的,但仅支持单个参数,也就是[limit row_count]