精华内容
下载资源
问答
  • 1.1 什么是复合选择器 在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 复合选择器可以更准确、更高效的选择目标元素(标签...

    CSS 02

    1. CSS复合选择器

    1.1 什么是复合选择器

    在 CSS 中,可以根据选择器的类型把选择器分为基础选择器复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。

    • 复合选择器可以更准确、更高效的选择目标元素(标签)
    • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的
    • 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等

    1.2 后代选择器(重要)

    后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

    语法:

    元素1 元素2 { 样式声明 }
    

    上述语法表示选择元素 1 里面的所有元素 2 (后代元素)。

    例如:

    ul li { 样式声明 } /*选择ul里面所有的li标签元素*/
    
    • 元素1 和 元素2 中间用空格隔开
    • 元素1 是父级,元素2 是子级,最终选择的是元素2
    • 元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可
    • 元素1 和 元素2 可以是任意基础选择器

    1.3 子选择器(重要)

    **子元素选择器(子选择器)**只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素.

    语法:

    元素1 > 元素2 { 样式声明 }
    

    上述语法表示选择元素1 里面的所有直接后代(子元素) 元素2

    例如:

    div > p { 样式声明 } /*选择div里面所有最近一级p标签*/
    
    • 元素1 和 元素2 中间用 大于号 隔开
    • 元素1 是父级,元素2 是子级,最终选择的是元素2
    • 元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器

    1.4 并集选择器(重要)

    并集选择器可以选择多组标签, 同时为他们定义相同的样式。通常用于集体声明

    并集选择器是各选择器通过**英文逗号(,)**连接而成,任何形式的选择器都可以作为并集选择器的一部分。

    语法:

    元素1,元素2 { 样式声明 }
    

    上述语法表示选择元素1 和 元素2

    例如:

    ul,div {样式声明} /*选择ul和div标签元素*/
    
    • 元素1 和 元素2 中间用逗号隔开
    • 逗号可以理解为和的意思
    • 并集选择器通常用于集体声明

    1.5 伪类选择器

    伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

    伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

    1.6 链接伪类选择器

    1. 链接伪类选择器注意事项

      ① 为了确保生效,请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active。

      ② 因为 a 链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式

    2. 链接伪类选择器实际工作开发中的写法

      /*a是标签选择器 所有的链接*/
      a {
      	color: gray;
      }
      /*:hover是链接伪类选择器 鼠标经过*/
      a :hover {
      	/*鼠标经过的时候,由原来的灰色变成了红色*/
      	color: red;
      }
      

    1.7 :focus伪类选择器

    :focus 伪类选择器用于选取获得焦点的表单元素。

    焦点就是光标,一般情况 类表单元素才能获取,因此这个选择器也主要针对于表单元素来说。

    input:focus {
    	backgroud-color:yellow;
    }
    

    1.8 复合选择器总结

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9penJNg3-1603287714004)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20201021211011310.png)]

    2. CSS的元素显示模式

    2.1 什么是元素显示模式

    作用:网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页

    元素显示模式就是元素(标签)以什么方式进行显示,比如div自己占一行,比如一行可以放多个span。

    HTML 元素一般分为块元素行内元素两种类型。

    2.2 块元素

    常见的块元素有h1-h6、p、div、ul、ol、li等,其中div标签是最典型的块元素

    特点:

    1. 比较霸道,自己独占一行。
    2. 高度,宽度、外边距以及内边距都可以控制。
    3. 宽度默认是容器(父级宽度)的100%。
    4. 是一个容器及盒子,里面可以放行内或者块级元素。

    注意:

    • 文字类的元素内不能使用块级元素
    • p标签主要用于存放文字,因此p里面不能放块级元素,特别是不能放div
    • 同理,h1-h6等都是文字类块级标签,里面也不能放其他块级元素

    2.3 行内元素

    常见的行内元素有 a strong b em i del s ins u span 等,其中span标签是最典型的行内元素

    特点:

    1. 相邻行内元素在一行上,一行可以显示多个。
    2. 高、宽直接设置是无效的。
    3. 默认宽度就是它本身内容的宽度。
    4. 行内元素只能容纳文本或其他行内元素。

    注意:

    • 链接里面不能再放链接
    • 特殊情况链接a里面可以放块级元素,但是给 a转换一下块级模式最安全

    2.4 行内块元素

    在行内元素中有几个特殊的标签 —— img input td ,它们同时具有块元素和行内元素的特点。 有些资料称它们为行内块元素

    特点:

    1. 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。一行可以显示多个(行内元素特点)。
    2. 默认宽度就是它本身内容的宽度(行内元素特点)。
    3. 高度,行高、外边距以及内边距都可以控制(块级元素特点)。

    2.5 元素显示模式总结

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pA68aRdt-1603287714022)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20201021212040041.png)]

    2.6 元素显示模式转换

    特殊情况下,我们需要元素模式的转换,简单理解: 一个模式的元素需要另外一种模式的特性

    • 转换为块元素:display:block;
    • 转换为行内元素:display:inline;
    • 转换为行内块:display: inline-block;

    2.7 一个小技巧 单行文字垂直居中的代码

    解决方案: 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

    案例:简洁版小米侧边栏

    <!DOCTYPE html>
    <html lang="zh-CN">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>案例六-小米商场旁栏</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            .box {
                background-color: #938782;
                padding-top: 20px;
                width: 230px;
                height: 440px;
            }
    
            li {
                list-style: none;
            }
    
            a {
                font-size: 14px;
                display: block;
                text-decoration: none;
                color: #fff7f2;
                height: 42px;
                width: 210px;
                line-height: 42px;
                /* text-indent: 2em; */
                padding-left: 20px;
            }
    
            a:hover {
                background-color: #ff6700;
            }
        </style>
    </head>
    
    <body>
        <div class="box">
            <ul>
                <li><a href="#">手机 电话卡</a></li>
                <li><a href="#">电视 盒子</a></li>
                <li><a href="#">笔记本 显示器</a></li>
                <li><a href="#">家电 插线板</a></li>
                <li><a href="#">出行 穿戴</a></li>
                <li><a href="#">智能 路由器</a></li>
                <li><a href="#">电源 配件</a></li>
                <li><a href="#">健康 儿童</a></li>
                <li><a href="#">耳机 音响</a></li>
                <li><a href="#" class="last">生活 箱包</a></li>
            </ul>
        </div>
    </body>
    
    </html>
    

    3. CSS的背景

    3.1 背景颜色

    background-color 属性定义了元素的背景颜色。

    background-color:颜色值; 
    

    一般情况下元素背景颜色默认值是 transparent(透明),我们也可以手动指定背景颜色为透明色

    background-color:transparent; 
    

    3.2 背景图片

    background-image 属性描述了元素的背景图像。实际开发常见于 logo 或者一些装饰性的小图片或者是超 大的背景图片, 优点是非常便于控制位置. (精灵图也是一种运用场景)

    background-image : none | url (url) 
    

    注意:背景图片后面的地址,千万不要忘记加 URL, 同时里面的路径不要加引号

    3.3 背景平铺

    如果需要在 HTML 页面上对背景图像进行平铺,可以使用 background-repeat 属性。

    background-repeat: repeat | no-repeat | repeat-x | repeat-y 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ClcppOWz-1603287714028)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20201021212516146.png)]

    3.4 背景图片位置

    利用 background-position 属性可以改变图片在背景中的位置。

    background-position: x y; 
    

    参数代表的意思是:x 坐标和 y 坐标。 可以使用 方位名词 或者 精确单位

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4OFgzSX-1603287714035)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20201021212643002.png)]

    1. 参数是方位名词
      • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如 left top 和 top left 效果一致
      • 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐
    2. 参数是精确单位
      • 如果参数值是精确坐标,那么第一个肯定是 x 坐标,第二个一定是 y 坐标
      • 如果只指定一个数值,那该数值一定是 x 坐标,另一个默认垂直居中
    3. 参数是混合单位
      • 如果指定的两个值是精确单位和方位名词混合使用,则第一个值是 x 坐标,第二个值是 y 坐标

    3.5 背景图像固定(背景附着)

    background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动

    background-attachment 后期可以制作视差滚动的效果

    background-attachment : scroll | fixed 
    

    3.6 背景复合写法

    为了简化背景属性的代码,我们可以将这些属性合并简写在同一个属性 background 中。从而节约代码量. 当使用简写属性时,没有特定的书写顺序,一般习惯约定顺序为: background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;

    background: transparent url(image.jpg) repeat-y fixed top ;
    

    3.7 背景色半透明

    background: rgba(0, 0, 0, 0.3);
    
    • 最后一个参数是 alpha 透明度,取值范围在 0~1之间
    • 我们习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);
    • 注意:背景半透明是指盒子背景半透明,盒子里面的内容不受影响
    • CSS3 新增属性,是 IE9+ 版本浏览器才支持的
    • 但是现在实际开发,我们不太关注兼容性写法了,可以放心使用

    3.8 背景总结

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cOaSG5L4-1603287714038)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20201021213608791.png)]

    案例:五彩导航

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>综合案例-五彩导航</title>
        <style>
            .nav a {
                display: inline-block;
                width: 120px;
                height: 58px;
                background-color: pink;
                text-align: center;
                line-height: 48px;
                color: #fff;
                text-decoration: none;
            }
    
            .nav .bg1 {
                background: url(images/bg1.png) no-repeat;
            }
    
            .nav .bg1:hover {
                background-image: url(images/bg11.png);
            }
    
            .nav .bg2 {
                background: url(images/bg2.png) no-repeat;
            }
    
            .nav .bg2:hover {
                background-image: url(images/bg22.png);
            }
        </style>
    </head>
    
    <body>
        <div class="nav">
            <a href="#" class="bg1">五彩导航</a>
            <a href="#" class="bg2">五彩导航</a>
            <a href="#">五彩导航</a>
            <a href="#">五彩导航</a>
            <a href="#">五彩导航</a>
        </div>
    </body>
    
    </html>
    
    展开全文
  • 怎样编写一个教学案例1、什么是教学案例 (案是论)教育教学案例是含有解决某些疑难问题,某些原方法、策略运用的教育教学情境故事的描述,故事中渗透...2、案例结构(1)背景包括发生了哪些问题或困扰事件,说明...

    怎样编写一个教学案例

    1、什么是教学案例 (案是论)

    教育教学案例是含有解决某些疑难问题,某些原方法、策略运用的教育教学情境故事的描述,故事中渗透课程改革的思想和理念,展现在教育教学理论、方法指导下解决问题的方法与策略,和教师教学行为发生的变化,体现教师的教育智慧和实践性经验。在我看来, 教学案例应提取于教学,用之教学,提取于个人,用之于大家。

    2、案例结构

    (1)背景:包括发生了哪些问题或困扰事件,说明故事的发生是否有特别的原因或条件。 (2)主题和案例问题:主题是本案例的核心理念,从最有收获、最有启发的角度确定主题。案例问题是围绕着主题的各种问题,这些问题能够阐述案例的主题,揭示各种困惑,链接有关理论,启发读者的讨论和反思。 (3)情境与细节描述:环绕主题,对原始材料进行筛选,剪裁情节,有针对性地描写特定的内容,把关键细节写清楚,做到引人入胜。 (4)教学结果:教学措施的即时效果,包括学生的反映和教师的感受等。 (5)诠释与研究:多角度地解读和评析,回归到教学基本面。 (6)问题讨论:设计讨论作业单,供今后案例教学时其他教师讨论,开放而无终结。

    3、教学案例与教案、教学设计、教学实录的区别

    一般来说,与教案、教学设计的区别比较容易理解。教案和设计都是事先设想的教育教学思路,是对准备实施的教育措施的简要说明;案例则是对已发生的教育过程的反映。一个写在教之前,一个写在教之后;一个是预期,一个是结果。案例与教学实录的体例比较相近,它们的区别也体现了案例的特点和价值。同样是对教育情境的描述,教学实录是有闻必录,而案例是有所选择的。至于怎样选择,就要看案例撰写的目的和功能了。 4、写好案例的几点建议。

    (1)要具备充分的素材 案例能不能写的生动,勾起读者学习、研究的兴趣?与案例是否有鲜活的、真实的素材有关。所以我们教师要想写好案例,必须做好课堂观察,认真、细致的、全面的记下课堂的师生活动情况,然后,根据案例的主题需要,裁减素材。教师就好比一位裁缝,必须先有好的布料,然后根据衣服设计的风格量体裁衣。要想掌握充分的素材,一般老师是用笔记课堂实录的方法,其实,这种方法不大科学,毕竟手写的速度比较慢,课堂上的一些突发的、精彩的片断有时很难及时描绘。如有条件,最好摄像机记下当时的情景,然后再通过录像观察,记下课堂实录。 (2)要具有独到的思考  同一件事,可以引发不同的思考。从一定意义上来说,案例的质量是由思考水平的高低所决定的。因为,选择复杂情境也好,揭示人物心理也好,把握各种结构要素也好,都是从一定的观察角度出发,在一定的思想观点的引导下进行的。要从纷繁复杂的教育现象中发现问题、提出问题、解决问题,道出人所欲知而不能言者,这需要一双"慧眼”。具备这样的功力没有什么秘诀和捷径,只有通过长期的磨炼去领悟和掌握。案例能够直接地、形象地反映教育教学的具体过程,因而有很强的可读性和操作性,也非常适合于有丰富实践经验的第一线教师来写作。要写好案例,首先要有实践的基础和经验的积累,其次要有一定的写作技能,更重要的是加强理论学习,不断地进行实践探索。一篇好的案例,可以胜过许多泛泛而谈。说到底,好文章不是"写”出来,而是"做”出来的。

    教学案例怎么写?

    我自己就师,在学校主要给学生讲软件技术方面的知识。

    对于写教案及教学案例上也是颇有体会,下面给大家分享下我的经验。

    首先,你必须对你要讲的知识非常熟悉,若一堂课要讲哪些知识,哪些知识是重点和难点,你都不知道的话,是很难写出一份完整的教案的,也更加不可能知道要准备哪些案例了;

    其次,教学中讲授的知识点其实是很抽象的,若没有很好的案例做支撑,学生们是很难理解的,软件课尤其明显。比如软件中描述什么是对象、属性或行为时,书本上解释得比较抽象,那么我就必须以生动有趣的真实事件配合故事性的场景把他们带入其中,然后以提问的方式让他们来参与回答。通过这种互动的方式,不仅充分调用了他们的积极性,而且让他们把这几个概念记得非常牢,印象也特别深刻。

    我一般提倡的案例是观点要新颖、不落俗套,不要为了做这个案例而去随便到网上去找几个抄抄,这其实没用。我们写案例的目的是辅助学生理解这个知识,而不要把这种做案例变成一种形式化的事情,这样对学生和自己都是极大的不负责。

    我平常做教案时,都会把一堂课中要用到的知识点分解出来,把它列在纸上,然后对着这些知识点去找到对应的生活模型。因为生活中这些鲜活的例子一般人很少去举,也不会愿意花时间去想。而我这么做的话,实际上是让案例更具可读性,让学生们更加轻松的学习,不会觉得软件是很枯燥和难学的。

    所以,凡事都要自己想办法,不要自我受限,局限了自己的思维。

    如何学python编程

    好多这样的问题的建议如下,请参考:

    如果是兴趣学习或着在平时时提高办公效率的话,建议买书自学,网上现在有很多从零开始的教程书籍都还是可以的。

    如果是想当作一份工作的话,建议还是报班系统学习,遇到问题有专业人员解答,可以少走很多弯路。

    版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

    展开全文
  • 文章目录Pre案例分析业务背景这个系统到底多快会塞满新生代?触发Minor GC的时候会有多少对象进入老年代?系统运行多久,老年代大概就会填满?这个系统运行多久,老年代会触发1次Full GC?如何进行JVM优化? Pre ...

    在这里插入图片描述


    Pre

    上一篇文章我们给大家分析了一下到底什么时候会触发Minor GC,什么时候会让对象从新生代转移到老年代,包括为了新生代转移到老年代的内存足够安全,Minor GC之前要如何检查老年代的内存空间,在什么情况下会触发老年代的Full GC,老年代的垃圾回收算法是什么,这些问题都已经给大家分析清楚了。

    这篇文章,我们先接着上篇文章,给大家来一个真实的我们之前一个生产系统的老年代频繁Full GC的案例,让大家更加透彻的理解整个对象分配以及转移到老年代,以及Minor GC和Full GC的全过程。


    案例分析

    业务背景

    一个日处理上亿数据的计算系统

    先给大家说一下这个系统的案例背景,大概来说是自己研发的一个数据计算系统,日处理数据量在上亿的规模。

    为了方便大家集中注意力理解这个系统的生产环境的JVM相关的东西,所以对系统本身就简化说明了。

    简单来说,这个系统就是会不停的从MySQL数据库以及其他数据源里提取大量的数据,加载到自己的JVM内存里来进行计算处理,如下图所示。

    在这里插入图片描述
    这个数据计算系统会不停的通过SQL语句和其他方式从各种数据存储中提取数据到内存中来进行计算,大致当时的生产负载是每分钟大概需要执行500次数据提取和计算的任务。

    但是这是一套分布式运行的系统,所以生产环境部署了多台机器,每台机器大概每分钟负责执行100次数据提取和计算的任务。

    每次会提取大概1万条左右的数据到内存里来计算,平均每次计算大概需要耗费10秒左右的时间

    然后每台机器是4核8G的配置,JVM内存给了4G,其中新生代和老年代分别是1.5G的内存空间,大家看下图。

    在这里插入图片描述


    这个系统到底多快会塞满新生代?

    现在明确了一些核心数据,接着我们来看看这个系统到底多快会塞满新生代的内存空间?

    既然这个系统每台机器上部署的实例,每分钟会执行100次数据计算任务,每次是1万条数据需要计算10秒的时间,那么我们来看看每次1万条数据大概会占用多大的内存空间?

    这里每条数据都是比较大的,大概每条数据包含了平均20个字段,可以认为平均每条数据在1KB左右的大小。那么每次计算任务的1万条数据就对应了10MB的大小。

    所以大家此时可以思考一下,如果新生代是按照8:1:1的比例来分配Eden和两块Survivor的区域,那么大体上来说,Eden区就是1.2GB,每块Survivor区域在100MB左右,如下图。

    在这里插入图片描述
    基本上按照这个内存大小而言,大家会发现,每次执行一个计算任务,就会在Eden区里分配10MB左右的对象,那么一分钟大概对应100次计算任务

    其实基本上一分钟过后,Eden区里就全是对象,基本就全满了。

    所以说, 新生代里的Eden区,基本上1分钟左右就迅速填满了。


    触发Minor GC的时候会有多少对象进入老年代?

    此时假设新生代的Eden区在1分钟过后都塞满对象了,然后在接着继续执行计算任务的时候,势必会导致需要进行Minor GC回收一部分的垃圾对象。

    那么上篇文章给大家讲过这里在执行Minor GC之前会先进行的检查。

    • 首先第一步,先看看老年代的可用内存空间是否大于新生代全部对象?

    看下图,此时老年代是空的,大概有1.5G的可用内存空间,新生代的Eden区大概算他有1.2G的对象好了。
    在这里插入图片描述

    此时会发现老年代的可用内存空间有1.5GB,新生代的对象总共有1.2GB,即使一次Minor GC过后,全部对象都存活,老年代也能放的下的,那么此时就会直接执行Minor GC了。

    那么此时Eden区里有多少对象还是存活的,无法被垃圾回收呢?

    大家可以考虑一下之前说的那个点,每个计算任务1万条数据需要计算10秒钟,假设此时80个计算任务都执行结束了,但是还有20个计算任务共计200MB的数据还在计算中,此时就是200MB的对象是存活的,不能被垃圾回收掉,然后有1GB的对象是可以垃圾回收的

    大家看下图。

    在这里插入图片描述
    此时一次Minor GC就会回收掉1GB的对象,然后200MB的对象能放入Survivor区吗?

    不能!因为任何一块Survivor区实际上就100MB的空间,此时就会通过空间担保机制,让这200MB对象直接进入老年代去,占用里面200MB内存空间,然后Eden区就清空了

    大家看下图。

    在这里插入图片描述


    系统运行多久,老年代大概就会填满?

    那么大家想一下,这个系统大概运行多久,老年代会填满呢?

    按照上述计算,每分钟都是一个轮回,大概算下来是每分钟都会把新生代的Eden区填满,然后触发一次Minor GC,然后大概都会有200MB左右的数据进入老年代。

    那么大家可以想一下,假设现在2分钟运行过去了,此时老年代已经有400MB内存被占用了,只有1.1GB的内存可用,此时如果第3分钟运行完毕,又要进行Minor GC,会做什么检查呢?如下图。

    在这里插入图片描述
    此时会先检查老年代可用空间是否大于新生代全部对象?

    此时老年代可用空间1.1GB,新生代对象有1.2GB,那么此时假设一次Minor GC过后新生代对象全部存活,老年代是放不下的,那么此时就得看看一个参数是否打开了 。

    如果“-XX:-HandlePromotionFailure”参数被打开了,当然一般都会打开,此时会进入第二步检查,就是看看老年代可用空间是否大于历次Minor GC过后进入老年代的对象的平均大小。

    我们已经计算过了,大概每分钟会执行一次Minor GC,每次大概200MB对象会进入老年代。

    那么此时发现老年代的1.1GB空间,是大于每次Minor GC后平均200MB对象进入老年代的大小的

    所以基本可以推测,本次Minor GC后大概率还是有200MB对象进入老年代,1.1G可用空间是足够的。

    所以此时就会放心执行一次Minor GC,然后又是200MB对象进入老年代。

    转折点大概在运行了7分钟过后,7次Minor GC执行过后,大概1.4G对象进入老年代,老年代剩余空间就不到100MB了,几乎快满了

    如下图:

    在这里插入图片描述


    这个系统运行多久,老年代会触发1次Full GC?

    大概在第8分钟运行结束的时候,新生代又满了,执行Minor GC之前进行检查,此时发现老年代只有100MB内存空间了,比之前每次Minor GC后进入老年代的200MB对象要小,此时就会直接触发一次Full GC。

    Full GC会把老年代的垃圾对象都给回收了,假设此时老年代被占据的1.4G空间里,全部都是可以回收的对象,那么此时一次性就会把这些对象都给回收了,如下图。

    在这里插入图片描述
    然后接着就会执行Minor GC,此时Eden区情况,200MB对象再次进入老年代,之前的Full GC就是为这些新生代本次Minor GC要进入老年代的对象准备的,如下图。

    在这里插入图片描述
    按照这个运行模型,基本上平均就是七八分钟一次Full GC,这个频率就相当高了。因为每次Full GC速度都是很慢的,性能很差


    如何进行JVM优化?

    相信通过这个案例,大家结合图一路看下来,对新生代和老年代如何配合使用,然后什么情况下触发Minor GC和Full GC,什么情况下会导致频繁的Minor GC和Full GC,大家都有了更加深层次和透彻的理解了。

    对这个系统,其实要优化也是很简单的,因为这个系统是数据计算系统,每次Minor GC的时候,必然会有一批数据没计算完毕

    但是按照现有的内存模型,最大的问题,其实就是每次Survivor区域放不下存活对象。

    所以当时我们就是对生产系统进行了调整,增加了新生代的内存比例,3GB左右的堆内存,其中2GB分配给新生代,1GB留给老年代

    这样Survivor区大概就是200MB,每次刚好能放得下Minor GC过后存活的对象了,如下图所示。

    在这里插入图片描述
    只要每次Minor GC过后200MB存活对象可以放Survivor区域,那么等下一次Minor GC的时候,这个Survivor区的对象对应的计算任务早就结束了,都是可以回收的了

    此时比如Eden区里1.6GB空间被占满了,然后Survivor1区里有200MB上一轮 Minor GC后存活的对象,如下图。

    在这里插入图片描述

    然后此时执行Minor GC,就会把Eden区里1.6GB对象回收掉,Survivor1区里的200MB对象也会回收掉,然后Eden区里剩余的200MB存活对象会放入Survivor2区里,如下图。

    在这里插入图片描述

    以此类推,基本上就很少对象会进入老年代中,老年代里的对象也不会太多的。

    通过这个分析和优化,定时我们成功的把生产系统的老年代Full GC的频率从几分钟一次降低到了几个小时一次,大幅度提升了系统的性能,避免了频繁Full GC对系统运行的影响。

    但是大家在这里肯定注意到一点,就是之前说过一个动态年龄判定升入老年代的规则,就是如果Survivor区中的同龄对象大小超过Survivor区内存的一半,就要直接升入老年代。所以这里优化的方式仅仅是做一个示例说明,意思是要增加Survivor区的大小,让Minor GC后的对象进入Survivor区中,避免进入老年代。

    实际上为了避免动态年龄判定规则把Survivor区中的对象直接升入老年代,在这里如果新生代内存有限,那么可以调整"-XX:SurvivorRatio=8"这个参数,默认是说Eden区比例为80%,也可以降低Eden区的比例,给两块Survivor区更多的内存空间,然后让每次Minor GC后的对象进入Survivor区中,还可以避免动态年龄判定规则直接把他们升入老年代。

    在这里插入图片描述

    展开全文
  • 怎样编写一个教学案例1、什么是教学案例 (案是论)教育教学案例是含有解决某些疑难问题,某些原方法、策略运用的教育教学情境故事的描述,故事中渗透...2、案例结构(1)背景包括发生了哪些问题或困扰事件,说明...

    怎样编写一个教学案例

    1、什么是教学案例 (案是论)

    教育教学案例是含有解决某些疑难问题,某些原方法、策略运用的教育教学情境故事的描述,故事中渗透课程改革的思想和理念,展现在教育教学理论、方法指导下解决问题的方法与策略,和教师教学行为发生的变化,体现教师的教育智慧和实践性经验。在我看来, 教学案例应提取于教学,用之教学,提取于个人,用之于大家。

    2、案例结构

    (1)背景:包括发生了哪些问题或困扰事件,说明故事的发生是否有特别的原因或条件。 (2)主题和案例问题:主题是本案例的核心理念,从最有收获、最有启发的角度确定主题。案例问题是围绕着主题的各种问题,这些问题能够阐述案例的主题,揭示各种困惑,链接有关理论,启发读者的讨论和反思。 (3)情境与细节描述:环绕主题,对原始材料进行筛选,剪裁情节,有针对性地描写特定的内容,把关键细节写清楚,做到引人入胜。 (4)教学结果:教学措施的即时效果,包括学生的反映和教师的感受等。 (5)诠释与研究:多角度地解读和评析,回归到教学基本面。 (6)问题讨论:设计讨论作业单,供今后案例教学时其他教师讨论,开放而无终结。

    3、教学案例与教案、教学设计、教学实录的区别

    一般来说,与教案、教学设计的区别比较容易理解。教案和设计都是事先设想的教育教学思路,是对准备实施的教育措施的简要说明;案例则是对已发生的教育过程的反映。一个写在教之前,一个写在教之后;一个是预期,一个是结果。案例与教学实录的体例比较相近,它们的区别也体现了案例的特点和价值。同样是对教育情境的描述,教学实录是有闻必录,而案例是有所选择的。至于怎样选择,就要看案例撰写的目的和功能了。 4、写好案例的几点建议。

    (1)要具备充分的素材 案例能不能写的生动,勾起读者学习、研究的兴趣?与案例是否有鲜活的、真实的素材有关。所以我们教师要想写好案例,必须做好课堂观察,认真、细致的、全面的记下课堂的师生活动情况,然后,根据案例的主题需要,裁减素材。教师就好比一位裁缝,必须先有好的布料,然后根据衣服设计的风格量体裁衣。要想掌握充分的素材,一般老师是用笔记课堂实录的方法,其实,这种方法不大科学,毕竟手写的速度比较慢,课堂上的一些突发的、精彩的片断有时很难及时描绘。如有条件,最好摄像机记下当时的情景,然后再通过录像观察,记下课堂实录。 (2)要具有独到的思考  同一件事,可以引发不同的思考。从一定意义上来说,案例的质量是由思考水平的高低所决定的。因为,选择复杂情境也好,揭示人物心理也好,把握各种结构要素也好,都是从一定的观察角度出发,在一定的思想观点的引导下进行的。要从纷繁复杂的教育现象中发现问题、提出问题、解决问题,道出人所欲知而不能言者,这需要一双"慧眼”。具备这样的功力没有什么秘诀和捷径,只有通过长期的磨炼去领悟和掌握。案例能够直接地、形象地反映教育教学的具体过程,因而有很强的可读性和操作性,也非常适合于有丰富实践经验的第一线教师来写作。要写好案例,首先要有实践的基础和经验的积累,其次要有一定的写作技能,更重要的是加强理论学习,不断地进行实践探索。一篇好的案例,可以胜过许多泛泛而谈。说到底,好文章不是"写”出来,而是"做”出来的。

    教学案例怎么写?

    我自己就师,在学校主要给学生讲软件技术方面的知识。

    对于写教案及教学案例上也是颇有体会,下面给大家分享下我的经验。

    首先,你必须对你要讲的知识非常熟悉,若一堂课要讲哪些知识,哪些知识是重点和难点,你都不知道的话,是很难写出一份完整的教案的,也更加不可能知道要准备哪些案例了;

    其次,教学中讲授的知识点其实是很抽象的,若没有很好的案例做支撑,学生们是很难理解的,软件课尤其明显。比如软件中描述什么是对象、属性或行为时,书本上解释得比较抽象,那么我就必须以生动有趣的真实事件配合故事性的场景把他们带入其中,然后以提问的方式让他们来参与回答。通过这种互动的方式,不仅充分调用了他们的积极性,而且让他们把这几个概念记得非常牢,印象也特别深刻。

    我一般提倡的案例是观点要新颖、不落俗套,不要为了做这个案例而去随便到网上去找几个抄抄,这其实没用。我们写案例的目的是辅助学生理解这个知识,而不要把这种做案例变成一种形式化的事情,这样对学生和自己都是极大的不负责。

    我平常做教案时,都会把一堂课中要用到的知识点分解出来,把它列在纸上,然后对着这些知识点去找到对应的生活模型。因为生活中这些鲜活的例子一般人很少去举,也不会愿意花时间去想。而我这么做的话,实际上是让案例更具可读性,让学生们更加轻松的学习,不会觉得软件是很枯燥和难学的。

    所以,凡事都要自己想办法,不要自我受限,局限了自己的思维。

    如何学python编程

    好多这样的问题的建议如下,请参考:

    如果是兴趣学习或着在平时时提高办公效率的话,建议买书自学,网上现在有很多从零开始的教程书籍都还是可以的。

    如果是想当作一份工作的话,建议还是报班系统学习,遇到问题有专业人员解答,可以少走很多弯路。

    版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

    展开全文
  • 无论有什么样的背景和经验,软件开发专家认为你需要有一些成功项目的知识:产品,员工,客户,计划。当然,知道这些仅仅是开始。在实际操作中我们还是经常被问题绊倒。在这个案例研究中,我会通过详细说明一个新产品...
  • 无论有什么样的背景和经验,软件开发专家认为你需要有一些成功项目的知识:产品,员工,客户,计划。当然,知道这些仅仅是开始。在实际操作中我们还是经常被问题绊倒。在这个案例研究中,我会通过详细说明一个新产品...
  • 火龙果软件工程技术中心 本文内容包括:软件开发中典型的质量问题什么是ODC?我们的案例项目的背景你如何采用ODC?ODC分析案例行动计划以及ODC各阶段的建议注释参考资料本文来自于RationalEdge:通过测试人员在软件...
  • 一、案例背景 许多朋友在首次购车时,一般会比较纠结自己该如何选车,用什么标准选车。因此从购车人角度制作了一个仪表板,来辅助购车人高效做出决策。 二、仪表板 1、每个人购买倾向不同,所以应该提供给他们更多...
  • eas供应链dep案例

    2017-11-18 22:32:39
    比价单中对单价为0或者为空的行用红色背景色表示 0.2 单据操作控制修改 EASSCMA1P0048 应收单的付款方式字段修改显示为收款方式 新增应收单时,发现应收单的【收款方式】字段显示为【付款方式】 修改应收单付款方式...
  • 本书理论知识系统全面,详细讲解了选择器、边框、背景、文本、颜色、盒模型、伸缩布局盒模型、多列布局、渐变、过渡、动画、媒体、响应Web设计、Web字体等主题下涵盖的所有CSS3新特性,所有这些都巧妙地融入到案例中...
  • 开发该技术的进一步研究将使流体流动的定量可视化成为可能,在各种应用中,包括低温流动,超音速和高超音速流动,生物医学设备流动可视化等。 阅读更多内容 液体盒有什么特别之处 分层案例有何特别之处 谁写的软件 ...
  • 本博文主要内容包括:1、在线热点搜索词实现解析 2、SparkStreaming 利用reduceByKeyAndWindow实现在线热点搜索词实战一:在线热点搜索词实现解析背景描述:在社交网络(例如微博),电子商务(例如京东),热搜词...
  • 前言 事务我们都知道是什么,而Spring事务就是在...介绍消息队列技术的背景包括使用场景和消息队列的功能特点,并设计了一个简单的消息队列。 1.1 系统间通信技术介绍 1.2 为何要用消息队列 1.3 消息队列的功能特点
  • 1 开发背景 (为什么开发本系统) 2 系统分析 包括 : 2.1需求分析 对简单的信息系统,可以列表的形式列出功能需求, [b]个人认为用例图也比较直观 [/b] 2.2可行性分析 包括 引言(编写目的,项目背景-项目提出者,开....
  • 背景 马上春节了, 火车票又到了销售旺季, 一票难求依旧。 抢火车票是很有意思的一个课题,对IT人的智商以及IT系统的健壮性,尤其是数据库的功能和性能都是一种挑战。 为什么这么说呢,我们一起来缕一缕。 一、...
  • RSS案例视频,RSS阅读器

    2009-04-22 08:25:17
     为了进一步了解RSS及其发展历程的有关背景知识,下面摘录了2003年10月平文胜为时代营销撰写的有关RSS技术层面的介绍文章。仅供参考。网上此类介绍文章也不少,有兴趣的请到网上检索更多信息。例如维基百科对于RSS...
  • C++开发案例篇介绍了P2P应用开发的两个平台,然后针对5个具体的P2P系统进行了详细的系统介绍和源码分析,包括P2P文件共享系统、P2P即时通信系统、P2P流媒体系统和P2P视频点播系统。 本书可供广大从事P2P网络技术工作...
  • CSS或CSS3动画,包括常见的鼠标悬停动画,网页加载动画,页面切换动画,文本动画以及背景动画等等,能够有效地提升网页趣味性和视觉吸引力。这也是为什么CSS/CSS3动画设计能够迅速蹿升为网页设计一大流行趋势的重要...
  • 案例背景: OPPO为广东欧珀移动通信有限公司的商标,OPPO是一家全球注册,集科研、制造和营销于一体的大型高科技企业,产品远销香港、美国、俄罗斯、欧洲、日本、韩国、东南亚等市场,OPPO致力于打造高品质时尚数码...
  • 案例背景 某企业由于投放的广告渠道比较多,需要对其做广告效果分析以实现有针对性的广告效果测量和优化工作。跟以应用为目的的案例不同的是,由于本案例是一个分析型案例,该过程的输出其实是不固定的,因此需要跟...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 140
精华内容 56
关键字:

案例背景包括什么