Java虚拟机学习笔记——JVM垃圾回收机制 Java垃圾回收基于虚拟机的自动内存管理机制,我们不需要为每一个对象进行释放内存,不容易发生内存泄漏和内存溢出问题. 但是自动内存管理机制不是万能药,我们仍需要了解JVM垃圾回收机制,以便在Java程序运行时发生错误的时候可以快速定位,并解决. 内存模型图 线程共享区: 方法区(Method Area):线程共享,存储被JVM加载的类信息.常量.静态变量.编译器编译后的代码等数据. Java堆(Java Heap):线程共享,用于存储对象实例,是垃圾…
垃圾回收机制 垃圾回收机制,是保证脚本能长时间运行的重要机制 JS具有自动垃圾收集机制,也就是说执行环境会负责管理代码执行过程中使用的内存 与一些偏底层的语言(c.c++)不同,我们不需要手工地去管理内存的使用情况 因为JS替我们完成了需要内存的分配,以及无用内存的回收,然后释放其占用的内存. 其原理其实很简单,就是找出那些不再使用的内存释放掉就行,所以垃圾收集器会按照固定时间间隔来执行该操作 垃圾回收是针对局部变量的,因为全局变量会在浏览器关闭后自动释放内存,而局部变量不同,其只会在函数执行期…
由于事件处理程序是现代的web程序交互能力的提供者 所以在日常实践中,我们免不了要向页面中添加大量的事件处理程序(不管是用于用户交互还是用于统计用户数据) 在创建GUI(图形用户界面)的语言(如C#)中,为GUI中的每一个按钮添加一个onclick事件是司空见惯的事,并且这样做并不会有什么问题 但是在JS中情况就截然不同了,因为在web应用中添加到页面上的事件处理程序的数量将直接影响页面的整体运行性能 导致这一问题的原因有以下几点: JS中每个函数都是对象,都会占用内存,内存占用越多性能越差 由…
昨天的文章中主要记录了,函数表达式与函数声明的区别 以及在JS中如何安全地使用递归 那么既然要深入地理解JS中的函数,闭包就是一个绕不开的概念 闭包 JS高编一书中对闭包的概念定义如下: 闭包是指有权访问另一个函数作用域中变量的函数 我们来理解这句话,闭包指的是一类函数 这类函数的特点是可以访问另一个函数的作用域 我们知道JS中Es6以下是没有块级作用域的 只有全局作用域,以及函数作用域 一般来讲,函数作用域里面的变量在函数外部是无法访问的 而闭包却可以访问另一个函数作用域,那么说明了什么? 说…
DOM规范没有涵盖所有浏览器支持的所有事件 而许多浏览器出于满足用户需求,或解决特殊问题的目的,实现了一些自定义事件 HTML5列出了浏览器应该支持的所有事件,这里只讨论得到浏览器完善支持的事件(并非全部) contextmenu事件 windows95 在PC中引入了上下文菜单的概念,即通过鼠标右键可以调出上下文菜单 在该概念提出后不久,该概念也被引入了web 领域 在web中实现该概念,开发人员面临的主要问题是:1.如何确定上下文菜单以何种方式打开(windows中鼠标右键,Mac中 ctr…
合成 除了之前介绍的属性之外,还有两个属性会应用到整个2d上下文中; globalAlpha 用于指定所有绘制的透明度 globalComposition 用于表示后绘制的图形怎样与先绘制的图形进行结合 该属性的值是字符串,可能的值如下 source-over(默认)   后绘制的图形位于先绘制的图形的上方 source-in    后绘制的图形与先绘制的图形重叠部分可见,其它部分透明 source-out    后绘制的图形与先绘制的图形不重叠部分可见,先绘制的图形完全透明 source-at…
继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感:变量.函数名.操作符都是大小写敏感的,比如“text”和“Text”不同. 标识符: 第一个字符必须是字母.下划线或者美元符号($); 之后的字符可以是字母.下划线.美元符号或者数字. 标识符中的字母可以是ASCII和Unicode字母比如À and Æ,但是不推荐这样使用. 按照惯例,ECMASc…
DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上就是三种规范,只要是实现了这三种规范,那么这个语言就可以说是JS DOM(文档对象模型)也是一种规范,是针对HTML和XML文档的API(应用程序编程接口) DOM的功能主要是用于将文档解析为一个层次化的节点树,通过DOM提供的API让开发人员能够操作这棵节点树 用于对文档内容进行操作(增.删.改.…
什么是内置对象呢? js高级程序设计中给出的定义为:由ES规定不依赖于宿主环境的对象,这些对象在JS执行前就已经存在 前面我们介绍的引用类型都是内置对象 除了这些对象外ECMA还规定了两个单体内置对象:1.Global 2.Math Global对象 Global对象十分特别,从某种意义上来说他是一个背锅侠 因为凡是不属于任何对象的属性和方法最后都将成为Global对象的属性和方法 也就是说在JS中凡是全局变量和全局方法实际上都是Global对象的属性和方法(包括isFinite等方法也是) G…
前几天有事耽搁了,今天继续更新 今天的主要内容是JS中的函数 这一篇主要讲函数的定义等内容,至于变量提升.执行环境.闭包.内存回收等内容在后面讲,高玩们可以不用看下面的正文了. 函数 首先来讲,函数对于任何编程语言都是一个十分核心的概念. Js中的函数通过function关键字来声明函数,函数用于封装任意多条语句,可以让我们用函数来来实现某一特定功能,避免编写重复的代码. 使用方法如下: function 函数名(参数){ // 要执行的代码块 } 跟其他语言中的函数相比JS中的函数存在以下特征…