自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 垃圾收集器

概述 垃圾收集器就是在扫描到此对象没有任何引用时候则会将该对象视为垃圾对象。 如何发现垃圾 1. 引用计数算法 引用计数算法是通过:在对象中添加一个引用计数器,每当有地方引用它的时候计数器值就加一;当引用失效时计数器值就减一。在该对象的计数器为零的时候则会被视为垃圾对象将其回收。 这个算法,虽然占用了一些额外的内存空间来进行计数,但是它的原理简单,判定效率也高,在大多情况下它都是一个不错的算法。但是在现在的Java虚拟机中并不会使用引用计数算法来管理内存,主要原因就是,必须要配合大量的处理才能保证正确地工

2020-07-20 02:49:50 144

原创 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 338

原创 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 173

原创 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 264

原创 ES6 迭代器

Iterator 迭代器 Iterator 是 ES6 引入的一种新的遍历机制 核心概念: 迭代器是通过指针来实现元素的遍历。 迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。 可迭代的数据结构 Array TypedArray String Map Set 不可迭代的数据结构 WeakMaps 迭代过程 ...

2020-04-24 23:42:01 135

原创 ES6 函数

函数参数的扩展 默认参数 在ES6中对函数进行了扩展那就是在调用函数时未给参数赋值时,我们可以在函数的参数赋一个初始值,从而达到即使没用传值也有一个初始值。如下图 注意要点: 定义函数默认参数时不可以有同名的参数,如下图 只有在没有参数或者参数为 undefined 时,才会使用默认参数,null 值被认为是有效的值传递。 未初始化赋值的参数值无法作为其他参数的默认值。如下图 ...

2020-04-24 18:53:42 132

原创 ES6 数组

数组创建 Array.of() 将参数中的所有值构建成数组元素形成数组,当参数为空时返回一个空数组。如下图 注意:参数值可以为不同类型 Array.from(arrayLike[, mapFn[, thisArg]]) 将类数组对象或可迭代对象转化为数组并且返回。如果由空位则会用undefined表示,如下图 参数详解 arrayLike 想要转换的类数组对象或可迭代对象。 mapFn...

2020-04-24 18:11:29 352

原创 ES6 对象

ES6 对象 属性的简洁表示法 ES5与ES6的区别,如下表 ES5 ES6 方法名的简洁表示法 ES5与ES6的区别,如下表 ES5 ES6 属性名表达式 ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。可以简单的理解为就是动态函数名。如下图 ps:创建一个对象后我们能够使用.或者[]的方式访问对象中的属性或者方法。 注意要点 ...

2020-04-22 21:01:55 128

原创 ES6 数值

Number对象的新方法 在ES5中**parseInt()与parseFloat()**属于全局方法,在ES6中已经全盘移植到Number对象的方法。 该两个方法与ES5的行为没有发生改变。 Number.isFinite() 定义:用于检查一个数值是否为有限的( finite ),即不是 Infinity(无限) 注意要点 NaN返回 false 所有非数值都返回 false...

2020-04-22 18:03:12 122

原创 ES6 字符串

字符串识别 ES6 之前判断字符串是否包含某字符串,用 indexOf 方法,ES6 新增了字符串的识别方法。 includes():返回布尔值,判断是否找到参数字符串。 startsWith():返回布尔值,判断参数字符串是否存在原字符串头部。 endsWith():返回布尔值,判断参数字符串是否存在原字符串尾部。 以上三个方法都可以接受两个参数,需要搜索的字符串(必选)和搜索起始位置索引(...

2020-04-22 17:26:55 174

原创 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 204

原创 ES6 let 与 const

ES6加入了两个非常重要的JavaScript关键字let和const。 定义: let:该变量只能在自所在代码块中生效。 const:声明一个只读的常量,一旦声明,常量的值就不能改变。 let let的用法如下图: let与var的区别 let是代码块内有效,而var是var是在全局范围内有效。 在ES6中let声明的变量只能生命一次,而var则可以重复声明且后者覆盖前者 ...

2020-04-20 19:15:52 137

原创 HashMap内部原理深入理解

HashMap原理深入理解 hashing(哈希法)的概念 散列法(Hashing)是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。 HashMap概念和底层结构 HashMap是基于哈希表的Map接口的非同步实现。此实现提...

2020-04-08 22:01:59 349

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除