Javascript作为一种单线程语言,是如何实现异步编程的呢?相信不少人对Javascript单线程表示怀疑:为何单线程可以实现异步操作呢?其实Javascript确实是单线程的(我们不妨把这个线程称作主线程),但它实现异步操作的方式确实借助了浏览器的其他线程的帮助。那其他线程是怎么帮助Javas...
1. 普通装饰器装饰器就是一个函数,它的返回值是一个也是闭包函数对象,主要是拓展函数功能,在不改变原函数代码结构的情况下附加操作达到业务需求。比如做一些身份认证、误操判断、访问记录一些预处理操作,操作记录、事务处理这样的结束附加操作,又或者是性能测试这种上下都附加代码的操作。直接就上一个的基本的装饰...
文件的抽象化表示,字节流以及字符流的文件操作等属于传统 IO 的相关内容,我们已经在前面的文章进行了较为深刻的学习了。但是传统的 IO 流还是有很多缺陷的,尤其它的阻塞性加上磁盘读写本来就慢,会导致 CPU 使用效率大大降低。所以,jdk 1.4 发布了 NIO 包,NIO 的文件读写设计颠覆了传统...
前言最近要开始学习设计模式了,以前是偶尔会看看设计模式的书或是在网上翻到了某种设计模式,就顺便看看,也没有仔细的学习过。前段时间看完了JVM的知识,然后就想着JVM那么费劲的东西都看完了,说明自己学习耐力还是有的,所以就打算仔细的研究研究设计模式,然后也将设计模式的学习过程记录下来。GoF的设计模式...
这里主要介绍两种工厂模式,第一种“简单工厂模式”,第二种“工厂方法模式”简单工厂模式1.定义由一个工厂对象决定对象创建某一种产品对象的的实例。主要用来创建同一类对象。2.具体需求现在有一个登录模块,当用户的输入的用户名多于16个时,给一个警示弹窗var LoginAlert = function(t...
一款app除了要有令人惊叹的功能和令人发指交互之外,在性能上也应该追求丝滑的要求,这样才能更好地提高用户体验。以下是本人在工作中对经历过的性能优化的一些总结,依据故事的发展路线,将其分为了5个部分,分别是:常见的性能问题;产生性能问题的一些可能原因;解决性能问题的套路;代码建议及潜在性能问题排查项。...
前言:一晃眼都差不多11天没有更新了,差一点都以为自己松懈没有努力了,hhh...这几天去跟着一个项目组在酒店封闭式开发,经过了四天,今天算是回归学校实习的队伍中(时间冲突找了个人先替我去了学校安排的实习单位..),时间虽短,但是学习到了很多东西这里做一下简短的总结背景学院大三的期末似乎总是这样,会...
其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地写出东西。配置开发环境也不是很复杂,mac和linux都内置了python。另外据我所知,不少学校也开始使用python来教...
很早想造个轮子了,听说不想造轮子的程序员不是好程序员,用惯了Apache的众多开源项目,却没看过开源一句代码。最近看了几篇卖焦虑的文章之后,突然变得慌张起来,于是在百忙之中难得一点闲第一次打开了JDK的源码包。初读:晦涩难懂,3千多行代码,全英文注释,有一些陌生的语法和调用陌生的类足矣吓退一个中年程...
么是装饰者模式今天我们来讲另外一个非常实用的设计模式:装饰者模式。这个名字听上去有些莫名其妙,不着急,我们先来记住它的一个别名:包装器模式。我们记着这两个名字来开始今天的文章。首先还是上《设计模式》一书中的经典定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰者模式相比生成子类更为灵活。...