自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AlbertYang的博客

软件工程师,不做积极废人,欢迎关注我的微信公众号:【AlbertYang】让我们共同学习,更有海量学习资料免费领取哟

  • 博客(160)
  • 资源 (3)

原创 如何更聪明地学习:20种让你更高效学习的科学方法

目录1. 以多种方式学习某个知识2. 每天学习多个科目,而不是只学习一个科目3. 定期复习,而不是死记硬背4. 坐在最前面(对于学生来说)5.只专注于一件事6.学会简化、归纳7. 用手而不是使用笔记本电脑做笔记8. 写下你的烦恼9. 经常测试自己10. 将你所学的知识与你已经知道的东西联系起来11. 大声读出来12. 定期休息13.在学习结束时奖励自己14. 专注于过程,而不是结果15. 每天喝八杯水16. 每周至少锻炼三次17. 每...

2020-07-25 14:36:56 11453 74

原创 全文检索工具Lucene入门教程
原力计划

1.什么是LuceneApache Lucene是完全用Java编写的高性能,功能齐全的,全文检索引擎工具包,通过lucene可以让程序员快速开发一个全文检索功能。1.1什么是全文检索在我们的生活中数据总体分为两种:结构化数据 和非结构化数据 。结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据: 指不定长或无固定格式的数据,如邮件,word文档等。非结构化数据又叫全文数据。当然有的地方还会提到第三种,半结构化数据,如XML,HTML等,半结构化数据可以.

2020-07-11 17:55:11 3151 50

原创 程序员常用网站和工具(持续更新)

1.画图工具1.1ProcessOnProcessOn是一个面向垂直专业领域的作图工具和社交网络,成立于2011年6月并于2012年启动。支持绘制思维导图、流程图、UML、网络拓扑图、组织结构图、原型图、时间轴等等。官网:https://www.processon.com/1.2Draw.io非常强大,Draw本身不保存图表文件,而是把文件保存到你的Dropbox或者Google云端硬盘里。支持多种格式导出,可与Jira连接使用,而且完全免费。官网:https://www.dra

2020-07-08 09:33:31 5473 64

原创 硬核动图让你轻松弄懂递归,查找等概念

对于大部分人,数据结构一直是一个短板,当然我也是,不是学不会,而是容易忘,就拿最简单的排序来说吧,当时学习的时候明明已经弄得很清楚了,过了一段时间不用又忘记了,还要重新再看一遍,不知道有多少小伙伴和我有一样的烦恼。今天让我们用用动图的方式学习一下数据结构中的递归和二分查找吧,这种讲解方式非常生动,而且非常容易记住和理解。一、递归1.概念递归简单的来说就是程序自己调用自己,就...

2019-10-13 22:40:55 3299 44

原创 我们该如何高效的学习

全文字数: 1684阅读时间: 约6分钟本文在这里不讨论学习方法,关于学习的方法网上已经太多了,这里只谈一下我所认识的学习,以及如何进行高效率的学习。1.正确的认识学习 在我们每个人的学习过程中,都贯穿着以下几点:1.学习态度:(靠发心)学习态度对学习效果的影响作用,已被许多实验研究所证明,积极的学习态度对学习速度有促进作用。1952年...

2019-09-28 15:50:42 18132 77

原创 Linux系统常用基本命令总结

目录Linux基本命令Linux的简介Linux的厂商Linux的目录结构基于虚拟机的环境搭建常用命令与示例一、文件基本操作命令1. ls命令2. pwd命令3. mkdir命令4. cd命令5. touch命令6. cp命令7. mv命令8. rmdir命令9. rm命令10. cat命令11 more和 les...

2018-11-13 22:42:20 29412 20

原创 JavaScript进阶教程(7)-正则表达式

正则表达式了解正则表达式基本语法 能够使用JavaScript的正则对象正则表达式简介什么是正则表达式正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式的作用给定的字符串是否

2020-10-24 23:07:20 1

原创 JavaScript进阶教程(6)—硬核动图让你轻松弄懂递归与深浅拷贝

目录一、递归1.1 概念1.2 出口1.3 递归经典问题:递归求斐波那契数列1.4 递归经典问题:递归求阶乘1.5 递归求一个数字各个位数上的数字的和1.6 递归遍历DOM树二 深浅拷贝2.1 浅拷贝2.2 深拷贝2.3 如何区分深拷贝与浅拷贝?2.3.1 浅拷贝:仅复制了引用,彼此之间的操作会互相影响2.3.2 深拷贝:在堆中重新分配内存,不同的地址,互不影响三 总结一、递归1.1 概念递归简单的来说就是程序自己调用自己,就像下面这幅图一

2020-09-13 19:47:49 7062 34

原创 JavaScript进阶教程(5)-一文让你搞懂作用域链和闭包

1 作用域在JS中变量可以分为局部变量和全局变量,对于变量不熟悉的可以看一下我这篇文章:https://blog.csdn.net/qq_23853743/article/details/106946100作用域就是变量的使用范围,分为局部作用域和全局作用域,局部变量的使用范围为局部作用域,全局变量的使用范围是全局作用域。在 ECMAScript 2015 引入let 关键字之前,js中没有块级作用域---即在JS中一对花括号({})中定义的变量,依然可以在花括号外面使用。{ var num2

2020-09-12 19:26:40 5519 31

原创 JavaScript进阶教程(4)-函数内this指向解惑call(),apply(),bind()的区别

目录1 函数的定义方式1.1 函数声明1.2 函数表达式1.3 函数声明与函数表达式的区别1.4 构造函数Function(了解即可,一般不用)2 函数的调用方式3 函数内 this 的指向4 call、apply、bind4.1 call,apply4.1.1 新的函数调用方式apply和call方法4.1.2 apply和call可以改变this的指向4.2 call,apply使用4.3 bind4.4 总结5 函数的其它成员(了解)6

2020-09-06 20:44:40 13030 36

原创 JavaScript 进阶教程(3)---让你彻底搞懂原型链和继承

1 原型链1.1 原型关于原型在JS面向对象编程这篇文章已经讲过了,今天简单来复习一下。1.1.1 什么是原型?在JS构造函数中有一个属性prototype,叫做原型,这是给程序员使用的。在JS实例对象中有一个属性__proto__,它也是原型,这是供浏览器使用的,它不是标准的属性。 实例对象中的__proto__指向的是该实例对象中的构造函数中的prototype,构造函数中的prototype里面的属性或者方法,可以直接通过实例对象调用。一般情况下,实例对象.__proto__才

2020-09-01 19:33:14 9549 54

原创 JavaScript 进阶教程(2)---面向对象实战之贪吃蛇小游戏

目录1 引言2 游戏地图3 游戏对象3.1 食物对象3.2 小蛇对象3.3 游戏对象4 游戏的逻辑4.1小蛇的移动4.2 让蛇自己动起来4.2.1 自动移动4.2.2 自调用函数4.2.3 私有方法4.3 判断蛇是否吃到食物5 代码6 其它处理6.1 index.js6.2 自调用函数的参数6.2 多个自调用函数1 引言上篇文章:https://blog.csdn.net/qq_23853743/article/details/

2020-08-29 22:12:04 1558 15

原创 JavaScript 进阶教程(1)--面向对象编程

1 学习目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 2 面向对象介绍2.1什么是对象Everything is object (一切皆对象)我们可以从两个层次来理解对象:(1) 对象是单个事物的抽象。一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。(2) 对象是一个.

2020-08-16 18:13:37 10626 75

原创 使用canvas把照片旋转任意角度

1. 效果演示地址:https://www.albertyy.com/2020/8/rotateImg.html2. canvas关于canvas的使用我在这篇文章中有简单的介绍,可以看一下。3. 代码实现<!DOCTYPE html><html> <head> <title>图片旋转:公众号AlbertYang</title> </head> <style type="text/css">

2020-08-13 18:10:01 2287 25

原创 不会吧不会吧,你不会还不知道这些提高JS代码质量的骚操作吧?

目录1 评价代码质量指标1.1 健壮性1.1.1 参数校验1.1.2 try, catch1.1.3 控制变量权限1.2 可扩展性1.2.1 模块分明1.2.2 高内聚低耦合1.2.3 用添加代替更改1.3可读性1.3.1 变量命名规范1.3.2 代码结构清晰2 设计模式2.1 用享元模式减少重复代码2.2 策略模式/状态模式2.3 装饰器模式3 总结1 评价代码质量指标1.1 健壮性程序的健壮性是指程序在执行时,在局部发生错误

2020-08-10 08:38:08 8105 78

原创 设计模式(12)[JS版]--JavaScript必会设计模式之外观模式(Façade Pattern)

目录1 什么是外观模式2 外观模式的主要的参与者3 代码实现4 实例应用4.1 跨浏览器事件4.2阻止默认和冒泡事件5 总结1 什么是外观模式外观模式为子系统提供了一个接口,它屏蔽一个或多个子系统的复杂功,提供了一个一致的界面(接口)给用户。外观模式是一个非常简单的模式,但它的功能却很很强大,非常有用。外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦。外观模式可以将一些复杂操作封装起来,并创建一个简单的接囗用于调用,它经常出现在多层架构的系统中。外观模式的.

2020-08-06 22:09:35 1266 19

原创 设计模式(11)[JS版]-JavaScript中的注解之装饰器模式

目录1 什么是装饰器模式?2 装饰器模式的主要参与者有哪些3 代码实现4 实例应用5ES7 中的 decorator6 总结1 什么是装饰器模式?装饰器模式模式动态地扩展了(装饰)一个对象的行为,同时又不改变其结构。在运行时添加新的行为的能力是由一个装饰器对象来完成的,它 "包裹 "了原始对象,用来提供额外的功能。多个装饰器可以添加或覆盖原始对象的功能。装饰器模式属于结构型模式。和适配器模式不同的是,适配器模式是原有的对象不能用了,而装饰器模式是原来的对象还能用,在不改变原.

2020-08-05 23:38:20 4271 39

原创 设计模式(10)[JS版]-JavaScript如何实现组合模式???

目录1什么是组合模式2主要参与者3代码实现4应用实例4.1 表单验证4.1 图片阅读器5总结1什么是组合模式组合模式允许创建具有属性的对象,这些对象是原始项目或对象集合。集合中的每个项目本身可以容纳其他集合,创建深度嵌套结构。树型控件是复合模式的一个完美例子。树的节点要么包含一个单独的对象(叶子节点),要么包含一组对象(节点的子树)。组合模式用于简单化,一致化对单组件和复合组件的使用;其实它就是一棵树。 组合模式能对于工作能起到简化作用,组合...

2020-08-04 22:35:22 3879 45

原创 设计模式(9)[JS版]-JavaScript设计模式之如何实现桥接模式???

1什么是桥接模式Bridge模式允许两个组件,即客户端和服务一起工作,每个组件都有自己的接口。Bridge是一种高级架构模式,它的主要目标是通过两级抽象来编写更好的代码。它有利于对象之间非常松散的耦合,有时也被称为双适配器模式。 桥接模式的作用在于将实现部分和抽象部分分离, 以便两者可以独立的变化。 这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。Bridge模式弱化了代码之间的耦合,将抽象和其实现分离,便于二者独立变化、让API更加健壮,有利于分层,提高组.

2020-08-03 22:53:18 2925 45

原创 设计模式(8)[JS版]-JavaScript设计模式之如何实现适配器模式???

目录1 什么是适配器模式?2 参与者3 实例讲解4 其它应用5 总结1 什么是适配器模式?适配器模式是将一个接口(对象的属性和方法)转换为另一个接口。适配器允许编程组件协同工作,否则由于接口不匹配而无法协同工作。适配器模式也称为包装器模式。适配器模式可以想象为我们日常生活中经常使用的接口转换器,实现两个或者多个不同的数据存储器进行数据交换,适配各自不同数据输出口的工具。适配器适用于客户系统期待的接口与现有API提供的接口不兼容这种场合。它只能用来协调语法上的差异问题。适配器.

2020-08-02 21:05:01 4602 38

原创 JS+CSS实现左右文字滚动

<!doctype html><html> <head> <meta charset="UTF-8"> <title>文字滚动:公众号AlbertYang</title> <script src="js/jquery-1.11.3.min.js"></script> <style type="text/css"> * { margin: 0; padding.

2020-07-28 17:50:04 585

原创 设计模式(7)[JS版]-JavaScript设计模式之原型模式如何实现???

目录1.什么是原型模式2 参与者3实例讲解4使用 Object.create实现原型模式4.1Object.create()的用法4.2 用Object.create实现继承4.2.1 单继承4.2.2 多继承4.3 propertyObject参数4.4 Polyfill4.5改写原型模式实现5 总结1.什么是原型模式原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式不单是一种设...

2020-07-27 22:18:55 4660 24

原创 设计模式(6)[JS版]-JavaScript如何实现抽象工厂模式?

目录1 学习目标2 什么是抽象工厂模式?3 抽象工厂模式作用4工厂模式参与者5 代码实现1 学习目标通过本篇文章的学习,你应当掌握以下知识:1 知道什么是抽象工厂模式?2 掌握抽象工厂模式的作用以及什么时候需要使用抽象工厂模式3 掌握使用JS实现抽象工厂模式的代码编写。2 什么是抽象工厂模式?抽象工厂模式提供了一种封装一组具有相同主题的单个工厂而无需指定其具体类的方法。即工厂的工厂;一个将单个但相关/从属工厂分组在一起的工厂,但未指定其具体类别。一个抽象工.

2020-07-24 21:28:39 2299 22

原创 设计模式(5)[JS版]-JavaScript如何实现工厂方法模式?

目录1 什么是工厂方法模式?2工厂方法模式作用3工厂方法模式参与者4 代码实现1 什么是工厂方法模式?在基于类的编程中,工厂方法模式是一种创建模式,该模式使用工厂方法来处理创建对象的问题,而不必指定将要创建的对象的确切类。这是通过调用工厂方法来创建对象的,而不是通过调用构造函数,该工厂方法在接口中指定并由子类实现,或者在基类中实现,并且可以选择由派生类覆盖。它提供了一种将实例化逻辑委托给子类的方法。工厂方法按照客户端的指示创建新对象。在JavaScript中创建对象的一种方法..

2020-07-23 20:52:03 3715 20

原创 设计模式(4)[JS版]-JavaScript如何实现建造者模式?

目录1什么是建造者模式2 建造者模式的作用和注意事项3.代码实现4总结1什么是建造者模式建造者模式(Builder)可以将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说如果我们用了建造者模式,那么用户只需要指定需要建造的类型就可以得到所需要的东西,而具体建造的过程和细节不需要知道。建造者模式实际,就是一个指挥者,一个建造者和一个用户。用户调用指挥者,指挥者调用具体建造者工作,建造者建造出具体的东西给用户。建造者模式我们在代码中经常用到...

2020-07-21 20:59:56 3321 37

原创 设计模式(3)[JS版]-JavaScript中的构造函数模式是什么?

上篇文章单例模式:https://blog.csdn.net/qq_23853743/article/details/1074515611什么是构造函数模式构造函数用于创建特定类型的对象一不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。在JavaScript里,构造函数通常是认为用来实现实例的,JavaScript没有类的概,但是有特殊的构造函数。通过new关键字来调用自定义.

2020-07-20 22:23:20 2522 20

原创 设计模式(2)[JS版]---JavaScript如何实现单例模式?

目录1 什么是单例模式?2单例模式的作用和注意事项3代码实现4案例应用4.1 使用单例模式管理命名空间4.2 使用单例模式为不同命名空间的button按钮添加click事件,并且使他们之间能够互相通信1 什么是单例模式?单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访...

2020-07-19 21:58:24 690 17

原创 黑客帝国中代码雨如何实现?用 canvas 轻松实现代码雨炫酷效果!

1 效果演示地址:https://www.albertyy.com/2020/7/codeRain.html2 用到的知识点2.1 什么是 canvas标签?<canvas> 是一个HTML5中新增的元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成绘制图像。<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。2.1.1创建一个画布(Canvas)<canvas>实例:<canvas id="...

2020-07-18 22:05:34 884 18

原创 什么是JavaScript 的闭包???

闭包(closure)是Javascript语言的一个难点,闭包是一个函数与周围状态(词法环境)的引用捆绑在一起(封闭)的组合,在JavaScript中,每次创建函数时,都会同时创建闭包。闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰,即形成一个不销毁的栈环境。阅读本文前需要了解JS局部变量和全局变量。不清楚的可以看我的上篇文章:https://blog.csdn.net/qq_23853743/article/details/1069461001 计

2020-07-18 16:44:36 6879 50

原创 纯CSS实现iOS风格打开关闭选择框

目录1 效果2 知识点2.1 标签2.2 CSSfloat属性2.3 CSS3transition属性2.4 CSS3:checked选择器2.5 CSSelement+element选择器3 代码实现1 效果2 知识点2.1 <label>标签在html中,<label>标签通常和<input>标签一起使用,<label>标签为input元素定义标注(标记)。label 元素不会向用户呈现任...

2020-07-15 07:25:06 3874 25

原创 纯CSS实现自定义单选框和复选框
原力计划

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #main { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; } .

2020-07-14 06:49:14 3066 19

原创 设计模式(1)—什么是设计模式?设计模式的六大原则是什么?
原力计划

目录1.什么设计模式2.设计模式的发展3.设计原则6大原则3.1 开闭原则3.2 里氏转换原则3.3 依赖倒转原则3.4 接口隔离原则3.5 合成/聚合复用原则3.6 迪米特原则1.什么设计模式软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式使代码开发真正工程化;设计模式是软件工程的基...

2020-07-12 16:59:19 2141 19

原创 Java反编译器JD-GUId的安装与使用

1、Java 反编译器JD-GUIJD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。官方网站:http://java-decompiler.github.io/2.JD-Eclipse下载JD-..

2020-07-06 15:21:01 670 12

原创 纯Css实现加载动画效果

效果: 代码实现:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Loading</title> <style> * { margin: 0em; padding: 0em; } .loader { position: absolute; to...

2020-07-02 14:41:22 481

翻译 Lucene 8.5.2核心API

Lucene 8.5.2核心APIApache Lucene是一个高性能的全功能文本搜索引擎库。另请:说明配套 包 描述 org.apache.lucene 顶级程序包。 org.apache.lucene.analysis 文字分析。 org.apache.lucene.analysis.standard 快速,通用的基于语法的令牌生成器根据Unicode标准附件#29中StandardTokenize.

2020-06-30 11:30:04 382

翻译 Lucene 8.5.2演示API

Lucene 8.5.2演示API演示模块提供了简单的示例代码来展示Lucene的功能。另请:说明配套 包 描述 org.apache.lucene.demo 用于索引和搜索的演示应用程序。 org.apache.lucene.demo.facet 方面示例代码。 演示模块提供了简单的示例代码来展示Lucene的功能。Apache Lucene-构建和安装基本演示关于本文件 关于演示 设置你的C.

2020-06-30 11:22:15 354

原创 html+css实现选项卡效果

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> *{ margin: 0; padding: 0; } ...

2020-06-26 11:27:43 894

原创 搞懂JavaScript全局变量与局部变量,看这篇文章就够了
原力计划

<script type="text/javascript">var a = "Hello";function test(){var a;console.log(a);a = "World";console.log(a);} //undefined //World var b = "Hello";fun...

2020-06-26 11:22:06 1221 27

原创 你不知道的CSS妙用,纯CSS实现炫酷照片墙

<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...

2020-06-23 23:02:09 428

原创 JS中!function(){}()的理解

这种写法,是一种立即执行函数的写法,即IIFE等设计模式。这种函数在函数定义的地方就直接执行了。理解IIFE设计模式的关键是要认识到,在ES6之前,JavaScript仅具有函数作用域(因此缺少块作用域),并通过闭包内部的引用传递值。ES6之后情况已不再如此,因为JavaScript的ES6版本使用let和const关键字实现了块作用域。(function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。(function(){})是一.

2020-06-15 10:56:22 1094

metadata-extractor-2.14.0.jar|metadata-extractor-2.14.0.jar

Metadata Extractor 来读取图片的EXIF信息。目前最简单易用的EXIF信息处理的Java包,该项目最新版本2.14的jar包。

2020-09-15

xmpcore-6.1.8.jar|xmpcore-6.1.8.jar

Metadata Extractor 来读取图片的EXIF信息。目前最简单易用的EXIF信息处理的Java包,该项目最新版本2.14的依赖jar包xmpcore-6.1.8.jar。

2020-09-15

红绿灯设计报告

计算机组成原理红率灯设计报告,本设计是单片机控制的交通灯控制系统。单片机即单片微型计算机。其集定时、计数和多种接口与一体的微控制器。它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。而51系列单片机是各类单片机中最为典型和富有代表性的一种。

2018-11-03

空空如也

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