Press "Enter" to skip to content

海涛博客 Posts

数据结构之链表

之前介绍的动态数组,都是以用户的角度来看的,实际栈,队列底层都是依托于静态数组实现的,靠resize来解决固定容量问题。但是这次所说的链表是真正的动态数据结构(最简单的) 为什么链表是很重要的数据结构: 真正的动态数据结构 更深入的理解引用或者指针 更深入的理解递归 辅助组成其它数据结构 链表 数据存储在节点(Node)中 优点:真正的动态,不需要处理固定容量的问题 缺点:丧失了随机访问的能力…

Leave a Comment

js原型、原型链是什么

全局对象window 什么是原型 什么是原型链 JS中一切皆为对象? 全局对象window 在谈window之前,试想一个简单的问题,打开浏览器在控制台输入console.log(“Hello”); 并按下回车键,我们理所应当看到了控制台给我们返回的结果Hello,那么,console.log()这个方法是怎么来的呢?其实浏览器中已经为我们内置了一个全局对象叫做window,window作为全局对象,代表脚本正在运行的浏览器窗口。console.log()是一种简写的格式,更加精确的写法为:window.console.log()。window下则封装了多种 多样的属性,这些属性中,有些是浏览器自带的属性,有些则是ECMAScript标准规定的属性。ECMAScript规定的全局对象为global,但是在浏览器下则是window。 这里需要注意的是,浏览器中的全局对象是window,但是在其他的环境下,例如node.js就不一样了。浏览器下,在控制台输入window可以查看全局对象的所有属性。而在node.js环境中,则需要使用global,且浏览器中规定的属性在node.js环境下自然是无效的。 当我们打开浏览器,系统自然会为浏览器分配内存,浏览器将内存分给各个页面,页面中的HTML,CSS,JS,插件等会分配到一部分内存空间。对于JS来说,一开始window对象就已经存在于堆内存中了。…

Leave a Comment

面向对象设计六大原则

面向对象是一种编程思想,包括三大特性和六大原则,其中,三大特性指的是封装、继承和多态;最基本的设计原则有6条,分别是:单一职责原则、开闭原则、依赖倒置原则、接口隔离原则、迪米特法则、里氏替换原则、合成复用原则(扩展) 一.设计模式的目的 编写软件过程中,程序员面临着来自耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战、设计模式是为了让程序(软件),具有以下优点: 代码重用性(即:相同功能的代码,不用多次编写) 可读性(即:编程规范性,便于其他程序员的阅读和理解)  可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护) 可靠性(即:当我们增加新的功能后,对原来的功能没有影响) 使程序呈现高内聚,低耦合的特性 二.OOP六大原则 设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据)…

Leave a Comment

怎样理解阻塞非阻塞与同步异步的区别?

IO 概念区分   在进行网络编程时,我们常常见到同步(synchronous)/异步(asynchronous),阻塞(blocking)/非阻塞(non-blocking)四种调用方式 分别是什么,到底有什么区别?用例子如何做比喻? 在开始讲解之前我们先看几个例子: #例子①   同步:你去书店,问《如何征服美少女》到货没,老板说,没到货,你走了,过了一段时间,你又到书店,问《如何征服美少女》到货没,老板说没有。。。。就这样,你不断的来书店自己询问。直到你鞋都跑破了。。。 异步:…

Leave a Comment

CPU中的核心数线程数(如四核八线程)与程序中所说的线程、进程有什么区别?

1、CPU的核心数与线程数 2、程序说的线程与进程的区别 3、什么是时间片轮转调度算法 CPU又称为中央处理器(central processing unit),由运算器、控制器、寄存器、输入设备和输出设备组成,这些器件由处理数据总线相连。 它们在处理器中,分工明确: 运算器:进行数据的处理。 寄存器:进行数据的存储。 控制器:控制各种器件工作。…

Leave a Comment