![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员之路
文章平均质量分 71
一鲸落.万物生
做自己,大家一起加油!
展开
-
浏览器渲染原理与过程
浏览器渲染原理与过程关键渲染路径请求资源—解析—构建树—渲染布局—绘制页面加载过程分为两部分DOMContentLoaded和load前者触发时,已加载页面内容,不包括样式表和外部资源后者,已经加载好构建DOM树根据html文档构建树,遍历dom节点此过程可能因为css,js加载而阻塞display为none和注释、构建CSSOM树解析css文件—对应stylesheet对象cssom、dom可以同时解析css解析和js执行互斥webkit做了优化,只有js访问css才阻塞原创 2021-04-22 17:18:54 · 191 阅读 · 0 评论 -
计算机原理 学习笔记
计算机原理 笔记计算机是一种根据指令操作数据的机器体系结构是由处理器与存储器两部分组成。存储器RAM存储指令以及需要操作的数据划分为许多单元,每个单元存储少量数据,用一个数字地址标识(每个单元通常储存一个字节 8位)处理器CPU从存储器获取指令和数据,执行计算CPU 的运行永无休止,它不断从存储器获取并执行指令。这个周期的核心是PC 寄存器,PC (program counter)是“程序计数器”的简称。PC 是一种特殊的寄存器,用于保存下一条待执行指令的存储地址。不同cpu 处理原创 2021-04-21 17:03:51 · 234 阅读 · 0 评论 -
分享一个深拷贝方法(解决对象数组无限嵌套)
深拷贝解决对象数组无限嵌套function deepClone(x) { const root = {}; // 栈 const loopList = [ { parent: root, key: undefined, data: x } ]; while (loopList.length) { // 深度优先 const node = loopList.pop(); const parent = nod原创 2020-10-10 10:53:03 · 907 阅读 · 0 评论 -
Vue 生命周期
Vue虽然现在在搞Angular JS,但不能忘了Vue啊。梳理一下,加深记忆。原创 2019-10-30 16:29:42 · 113 阅读 · 0 评论 -
C++ 笔记(面试总结 一 )
C++面试问题总结1.staticstatic + 全局变量 = 全局静态变量两者都是使用静态存储方式,但是全局变量作用域是全局的,整个源程序的源文件都可以访问,而全局静态变量只有定义的源文件可以访问。static全局变量只初始化一次,防止在其他文件单元中引用。static + 局部变量 = 局部静态变量前者是用栈储存,后者是数据区储存,生命周期变长static函数在内存中只有一份,...原创 2019-03-12 19:02:34 · 197 阅读 · 0 评论 -
C++笔记(面试总结二)
C++笔记(面试总结二)1.编写类String的构造函数、拷贝构造函数、析构函数和赋值函数class String{public: String(const char *str=NULL);// 普通构造函数 String (const String &other);// 拷贝构造函数 ~String(void);//析构函数 String ...原创 2019-03-12 21:57:25 · 142 阅读 · 0 评论 -
C++笔记(面试总结 三 )
C++笔记(面试总结 三 )1.线程线程,是CPU使用的基础单元;它是由线程ID,寄存器集合,程序计数器和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态。2.线程或进程1、 线程是进程的一部分,所以线程有的时候被称为是轻权进程或者轻量级进程。2、 一个没有线程的进程是可以被看作...原创 2019-03-12 22:59:09 · 187 阅读 · 0 评论 -
线程与进程笔记
C++笔记(面试总结 四)1.进程间的五种通信方式1.管道(无名管道)特点:半双工,只能按照一个方向传输,只能在具有血缘关系的进程之间流动,只存于内存中。2.命名管道(FIFO)特点:在无关的进程之间进行通信,存在于文件系统中3.消息队列:消息的链接表,存放在内核中。一个消息队列有一个标识符来标记。消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。消息队列独立于发送...原创 2019-03-13 09:58:59 · 197 阅读 · 0 评论 -
计算机网络知识点
计算机网络1.网络七层模型物理层(传输比特流)数据链路层 (传输帧,错误纠正)比特流包装,检测传输可靠性,物理寻址,交换机就在这一层,最小传输单位是帧,流量控制,检错,重发网络层(ip寻址,包)ip(寻址),arp(ip和mac对应解析协议)通过网关才能找到对应ip解决阻塞的方法:数据分组,编号传输出去;然后接收到数据后排序重组解码;选择最优路径;丢包也是发生在网络层.传输层(数据...原创 2019-04-16 11:49:43 · 158 阅读 · 0 评论 -
Oracle SQL DML
Oracle SQL DML语句原创 2019-07-29 16:31:02 · 222 阅读 · 0 评论 -
浏览器跨域
Google浏览器设置跨域1.什么是跨域跨域就是让浏览器可以执行其它页面的脚本浏览器的安全机制,也就是同源策略,使得浏览器不能执行不同源的脚本。为什么要设置跨域限制...原创 2019-08-15 13:31:49 · 143 阅读 · 0 评论 -
图像处理(RGB分离)
图像处理技术(RGB分离)最近学习了图像处理技术,第一个小工程做的事将一张图片的rgb分离,存为三张图片,就像PS中的RGB通道的三张图片一样。我们先准备两张24位真彩色图片,一张宽度像素为4的倍数,一张则不是。我们来看下它的文件头和信息头都储存了什么信息:位图文件头BITMAPFILEHEADER,这是一个结构,其定义如下:typedef struct tagBITMAPFILEH...原创 2019-03-08 09:10:27 · 9683 阅读 · 5 评论 -
Java笔记(四)线程
Java中的线程一个程序的执行是为进程,程序中单个顺序的流控制成为线程。一个进程可以包括多个线程,他们共享内存,也就是多个线程访问同一对象。对于CPU,他们以并发或者时间片的方式来分享CPU。下面来介绍创建线程的两种方法:第一种是通过继承Thread类创建线程class MyThread extends Thread { public void run(){ for(int i =...原创 2018-11-21 14:55:21 · 140 阅读 · 0 评论 -
Java笔记(三)内部类、异常处理、类型限定
今天我们先说一下内部类内部类,就是类大的内部定义一个不与外部类同名的新类。在外部类内部使用内部类方式与普通类一样。若要在其他位置使用,类名前要冠以外部类的名字,包括用new创建内部类的时候,用Person.new.Student()来创建。大家都知道,在Java中是没有指针的,那么指针这个功能在Java中是如何体现的呢?引用类型,引用本身就相当于指针。比如说我们C语言中要想交换两个整形变量...原创 2018-11-20 23:24:00 · 127 阅读 · 0 评论 -
C语言(二 运算符、条件语句、指针)
C运算符包括算数运算符,逻辑运算符,关系运算符,位运算符,赋值运算符,其他运算符。算术运算符就是加减乘除求余,自增自减等算术。逻辑运算符与:&&,或:||,非:!关系运算符等于,大于,小于等组合位运算符位与:&,位或:|,位左移<<,位右移原创 2018-10-01 16:20:33 · 1745 阅读 · 0 评论 -
C语言(三 字符串、结构体、共用体、输入输出)
字符串原创 2018-10-03 22:30:52 · 4372 阅读 · 0 评论 -
C语言(一 数据类型、储存类、分配空间)
C语言是一种移植性强,面向过程的语言,最初由丹尼斯创立,用于编写UNIX操作系统,移植性强指的是它的代码通用性强。特点:操作简易,结构化语言,适合处理底层事件。我的第一个C语言程序#include <stdio.h> /*预处理器指令,在实际编译之前执行的*/int main{ /*程序主函数*/ printf("Hello World!\n").原创 2018-09-26 23:06:50 · 2565 阅读 · 1 评论 -
C语言(四 文件操作、递归)
文件读写我们用**fopen()**来新建一个文件或打开一个已有的文件.函数原型为File *fopen(const char *filename , const char *mode)filename是文件名,mode代表访问方式。mode访问模式r打开一个已有的文本文件,允许读取文件w若无此文件,新建一个文件,从文件头开始写;若有此文件,截断文件为零长度,...原创 2018-10-04 16:23:50 · 598 阅读 · 0 评论 -
C语言(五 可变参数、排序问题)
可变参数有时我们想调用一个函数,却又想给它传不同数量的参数,C语言为我们提供了可变参数这个功能。#include <stdio.h>#include <stdarg.h> //要想使用可变参数,必须引入此头文件void cal(int num,...){ //to do}int main(){ cal(3,2,4,6); cal(2,3,8);原创 2018-10-07 10:46:09 · 286 阅读 · 0 评论 -
类的关系(泛化, 实现,关联,聚合,组合,依赖)
类的关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1. 泛化(Generalization)【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是...原创 2018-10-08 10:14:58 · 59933 阅读 · 13 评论 -
面向过程和面向对象
面向过程C语言就是典型的面向过程语言,那么面向过程是什么意思呢?面向过程是根据问题的解决步骤来做的,按照解决步骤编写函数,然后依次调用函数完成功能。拿五子棋代码来举例,解决问题的步骤是黑棋先走,刷新棋盘,判断输赢,白旗落子,刷新棋盘,判断输赢,面向过程语言按顺序循环调用以上步骤相应的函数就可以了。面向对象C++,Java就是典型的面向对象的语言。面向对象是根据功能来编写对象的,拥有相同...原创 2018-11-01 13:54:08 · 169 阅读 · 0 评论 -
JAVA笔记(一)Java好在哪里?
Java现在是全球程序员使用最多的语言,他比起C++来说是完全面向对象编程,Java比起c和c++来说,是一种比较简单易学的语言,它去掉了一些不常用的功能和函数,对常用的功能还做了升级和优化。Java其实是C++ --,首先,它没有直接指针操作,而C语言和C++最容易出错的地方就是在指针部分,指针指向变化或是为空都能导致严重的错误,仙子啊Java取消了指针,用引用来代替,大大地减少了出错的几率...原创 2018-11-09 11:52:40 · 247 阅读 · 0 评论 -
Java笔记(二)数组问题
上次说到,java取消了对goto的使用,他很聪明的使用了break,continue来跳出循环,相当于在循环之中使用了goto。void main(){ int a[ 4]; one_num: for(int i=0;i<5;i++){ a[i] = rand()%6; if(a[i] = 3) continue one_num; } }利用这种方法,就...原创 2018-11-12 22:59:50 · 139 阅读 · 0 评论 -
Java笔记(三)访问控制符等说明
static字段静态字段,最本质的特点就是,他是类的字段,他不属于任何一个对象实例。他不保存在某个对象实例的内存区域中,而且保存在类的内存区域的公共储存单元。类变量可以直接通过类名直接访问,也可以通过对象访问。final字段final就是最终的不可更改的,final声明的类不能有子类,final方法不能被复写,final变量不能被修改。接口接口可以包含常量定义type NAME = ...原创 2018-11-13 19:46:18 · 162 阅读 · 0 评论 -
我的程序员之路(开篇)
高中的时候,有次学校开了一个计算机语言培训班,学费也不贵,学的是BASIC,第一次去试听,老师讲了a,b的值互换问题和进制之间转换问题,我听得头都大了,想不到还有这样一种高中生都难以理解的东西,直到高考结束,成绩还不错,报考的是哈工大威海校区的软件工程专业。我不知道等待我的是什么样的难题,我只知道只要我努力了,没有学不会的。可能学到了一些东西吧,但更多的是浑浑噩噩的度过了两年,学的知识考完就忘...原创 2018-09-25 11:40:01 · 1169 阅读 · 2 评论