- 博客(13)
- 收藏
- 关注
原创 垃圾收集器
概述垃圾收集器就是在扫描到此对象没有任何引用时候则会将该对象视为垃圾对象。如何发现垃圾1. 引用计数算法引用计数算法是通过:在对象中添加一个引用计数器,每当有地方引用它的时候计数器值就加一;当引用失效时计数器值就减一。在该对象的计数器为零的时候则会被视为垃圾对象将其回收。这个算法,虽然占用了一些额外的内存空间来进行计数,但是它的原理简单,判定效率也高,在大多情况下它都是一个不错的算法。但是在现在的Java虚拟机中并不会使用引用计数算法来管理内存,主要原因就是,必须要配合大量的处理才能保证正确地工
2020-07-20 02:49:50
130
原创 Java虚拟机讲解 与 搞垮Java虚拟机
什么是Java简单概括什么是Java,Java既是一门语言也是一个平台。Java既可以编写C/S,也可以编写B/S模式的软件。语法由Java Language Specification规定。Java技术体系接下来让我们看看我们的Java技术体系,从定义上讲,Kotlin、Clojure、JRuby、Groovy等都是运行在Java虚拟机上的编程语言及其相关的程序都属于Java技术体系中的一员。Java技术体系包括以下几个组成部分:Java程序设计语言各种硬件平台上的Java虚拟机实现Cla
2020-07-20 01:12:25
319
原创 ES6 Promise对象
定义Promise对象是ES6提供的一种异步编程的方案。封装了异步操作和成功、失败的回调。let promise = new Promise(function(resolve,reject){ resolve('success'); reject('failure');});Promise 状态Promise 异步操作有三种状态:pending(进行中)、fulfilled(已...
2020-04-29 11:13:45
138
原创 ES6 Class类
定义在ES6中,class本质上就是function。类声明类声明的方式有两种,如下匿名类let obj = class{ constructor(name){ this.name = name; }}命名类let obj = class Example { constructor(name){ this.name = name; }}注意要点:...
2020-04-27 18:22:21
244
原创 ES6 迭代器
Iterator 迭代器Iterator 是 ES6 引入的一种新的遍历机制核心概念:迭代器是通过指针来实现元素的遍历。迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。可迭代的数据结构ArrayTypedArrayStringMapSet不可迭代的数据结构WeakMaps迭代过程...
2020-04-24 23:42:01
123
原创 ES6 函数
函数参数的扩展默认参数在ES6中对函数进行了扩展那就是在调用函数时未给参数赋值时,我们可以在函数的参数赋一个初始值,从而达到即使没用传值也有一个初始值。如下图注意要点:定义函数默认参数时不可以有同名的参数,如下图只有在没有参数或者参数为 undefined 时,才会使用默认参数,null 值被认为是有效的值传递。未初始化赋值的参数值无法作为其他参数的默认值。如下图...
2020-04-24 18:53:42
121
原创 ES6 数组
数组创建Array.of()将参数中的所有值构建成数组元素形成数组,当参数为空时返回一个空数组。如下图注意:参数值可以为不同类型Array.from(arrayLike[, mapFn[, thisArg]])将类数组对象或可迭代对象转化为数组并且返回。如果由空位则会用undefined表示,如下图参数详解arrayLike 想要转换的类数组对象或可迭代对象。mapFn...
2020-04-24 18:11:29
315
原创 ES6 对象
ES6 对象属性的简洁表示法ES5与ES6的区别,如下表ES5ES6方法名的简洁表示法ES5与ES6的区别,如下表ES5ES6属性名表达式ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。可以简单的理解为就是动态函数名。如下图ps:创建一个对象后我们能够使用.或者[]的方式访问对象中的属性或者方法。注意要点...
2020-04-22 21:01:55
113
原创 ES6 数值
Number对象的新方法在ES5中**parseInt()与parseFloat()**属于全局方法,在ES6中已经全盘移植到Number对象的方法。该两个方法与ES5的行为没有发生改变。Number.isFinite()定义:用于检查一个数值是否为有限的( finite ),即不是 Infinity(无限)注意要点NaN返回 false所有非数值都返回 false...
2020-04-22 18:03:12
110
原创 ES6 字符串
字符串识别ES6 之前判断字符串是否包含某字符串,用 indexOf 方法,ES6 新增了字符串的识别方法。includes():返回布尔值,判断是否找到参数字符串。startsWith():返回布尔值,判断参数字符串是否存在原字符串头部。endsWith():返回布尔值,判断参数字符串是否存在原字符串尾部。以上三个方法都可以接受两个参数,需要搜索的字符串(必选)和搜索起始位置索引(...
2020-04-22 17:26:55
159
原创 ES6 Map 与 Set
Map对象定义:Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。Map中的key取值范围:字符串、对象、函数、NaN。Map的循环遍历的方式使用for…of循环遍历Map的Key值,如下图使用for…of循环遍历Map的Value值,如下图使用for…of循环遍历Map键值对,如下图使用forEach遍历Map对象,如下图Map对象的操作...
2020-04-20 22:57:53
189
原创 ES6 let 与 const
ES6加入了两个非常重要的JavaScript关键字let和const。定义:let:该变量只能在自所在代码块中生效。const:声明一个只读的常量,一旦声明,常量的值就不能改变。letlet的用法如下图:let与var的区别let是代码块内有效,而var是var是在全局范围内有效。在ES6中let声明的变量只能生命一次,而var则可以重复声明且后者覆盖前者...
2020-04-20 19:15:52
122
原创 HashMap内部原理深入理解
HashMap原理深入理解hashing(哈希法)的概念散列法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。HashMap概念和底层结构HashMap是基于哈希表的Map接口的非同步实现。此实现提...
2020-04-08 22:01:59
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人