自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(31)
  • 收藏
  • 关注

原创 盒子模型

盒子模型标准盒模型怪异盒模型(IE盒子模型)box-sizing属性标准盒模型width表示范围只有content怪异盒模型(IE盒子模型)width表示content+padding+border这三个部分的宽度box-sizing属性在CSS3中引入了box-sizing属性,允许以特定的方式定义匹配某个区域的特定元素,即该属性可以指定盒子模型种类共有三种值:content-box:表示标准的盒子模型border-box:表示的是IE盒子模型padding-box:让宽度

2021-03-17 21:58:58 110

原创 HTTP请求流程

HTTP请求流程HTTP协议HTTP和TCP关系HTTP请求过程浏览器端发起HTTP请求流程服务器处理HTTP请求流程浏览器缓存流程重定向HTTP协议应用层协议,HTTP协议建立在TCP连接之上。HTTP是一种允许浏览器向服务器获取资源的协议,是Web的基础,也是浏览器使用最广的协议HTTP和TCP关系浏览器使用HTTP协议作为应用层协议用来封装请求的文本信息,使用TCP/IP将它发到网络上。HTTP的内容是通过TCP的传输数据阶段来实现的HTTP请求过程浏览器端发起HTTP请求流程

2021-03-15 17:37:01 165

原创 TCP/IP协议

TCP协议TCP协议IP协议数据包的传输过程完整的TCP连接过程TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,把数据完整地送达应用程序TCP特点对于数据包丢失的情况,TCP提供重传机制TCP引入了数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件序列号TCP头除了包含端口号,还提供了用于排序的序列号,以便接收端通过序号来重排数据包IP协议是TCP/IP体系中的网络层协议,负责把数据包送达目的主机互联网上不同的在线设备都有唯一的地址,计算机的地址就称

2021-03-15 15:47:38 358

原创 JavaScript的数据存储

JavaScript的数据存储JS语言类型JS数据类型内存空间内存空间种类堆空间和栈空间JS语言类型JavaScript是动态语言以及弱类型语言静态类型与动态类型静态语言:在使用前需要确认其变量数据类型动态语言:在运行过程中需要检查数据类型强类型与弱类型强类型:不支持隐式类型转换弱类型:支持隐式类型转换JS数据类型一共8种BooleanNullUndefinedNumberBigInt:可以用任意精度表示整数,即使超出Number的安全整数范围限制也可以安

2021-03-14 21:00:28 113

原创 浏览器从输入URL到页面展示过程

浏览器从输入URL到页面展示过程1.用户输入2.URL请求过程3.准备渲染进程4.提交文档5.渲染阶段1.用户输入浏览器的地址栏会判断用户输入的关键字是搜索内容还是URL,如果输入内容符合URL规则,地址栏会根据规则把这段内容加上协议合成完整URL浏览器加载地址时需要等待提交文档阶段页面内容才会被替换2.URL请求过程浏览器进程通过进程间通信把URL请求发送至网络进程,网络进程接收到后发起真正URL请求流程:首先查找本地缓存是否缓存了该资源。如果有缓存资源则直接返回;如果没有则进行DNS

2021-03-14 14:18:32 166

原创 浏览器页面渲染流程

浏览器页面渲染流程渲染模块渲染流水线1.构建DOM树2.样式计算3.布局阶段4.分层5.图层绘制6.分块7.光栅化8.合成和显示相关概念重排重绘直接合成渲染模块HTML、CSS、JS数据通过渲染模块的处理最终输出为屏幕上的像素渲染流水线渲染模块被划分为很多子阶段,输入的数据通过这些子阶段最后输出像素,这样的一个处理流程叫做渲染流水线注意:每个子阶段都有其输入内容、处理过程和输出内容1.构建DOM树因为浏览器无法直接理解和使用HTML,所以需要将HTML转换为浏览器能够理解的DOM树结构

2021-03-13 23:47:02 210

原创 CSS清除浮动问题

CSS清除浮动浮动问题解决方法方法1方法2方法3方法4浮动问题给一个盒子使用CSS的flloat浮动属性,导致其父元素盒子高度坍塌,不能被撑开<div class="parent"> <div class="son"></div> <div class="son"></div></div> <style type="text/css"> .parent{ border: red solid

2021-03-13 15:18:42 84

原创 CSS图片宽高比自适应

CSS图片宽高比自适应<div class="box"> <div class="img-wrapper"> <img src="bear.jpg" class="image"> </div></div> <style type="text/css"> .box{ width: 330px; } .img-wrapper{ overflow: hidden; width: 100%;

2021-03-12 22:59:08 1088

原创 CSS实现绘制三角形

CSS实现绘制三角形原理实心三角形等腰非直角等腰直角有边框的三角形空心三角形原理三角形可以通过调整盒子的边框border属性的四个方向的宽度、线条样式以及颜色来实现将盒子的边框调到足够宽就会发现,盒模型的边框是4条像梯形一样的线<div class="test"></div><style type="text/css"> .test{ background-color: red; width: 100px; height: 100px; b

2021-03-12 21:58:07 211

原创 CSS flex弹性布局

CSS flex弹性布局设置弹性布局基本概念容器属性项目的属性设置弹性布局弹性布局用来为盒状模型提供最大的灵活性.box{ display: flex;}/*行内元素使用 Flex 布局*/.box{ display: inline-flex;}/*Webkit 内核的浏览器必须加上-webkit前缀*/.box{ display: -webkit-flex; /* Safari */ display: flex;}注意:设为 Flex 布局后,子元素的floa

2021-03-12 15:00:07 131 1

原创 CSS实现元素居中

CSS实现元素居中水平居中行内元素块级元素多块级元素垂直居中单行行内元素多行元素块级元素水平垂直居中固定宽高未知宽高flex布局 水平居中行内元素块级元素多块级元素 垂直居中单行行内元素多行元素块级元素固定宽高未知宽高 水平垂直居中固定宽高未知宽高flex布局 参考:https://www.cnblogs.com/ghq120/p/10939835.html...

2021-03-11 17:29:59 166

原创 二叉树(js实现)

二叉树基本概念基本术语二叉树类型性质遍历代码实现(js)前序遍历中序遍历后序遍历层序遍历二叉搜索树镜像二叉树重建二叉树其他常见算法题求二叉树深度二叉树结点总数判断二叉树子结构将二叉搜索树转换成一个排序的双向链表 基本概念二叉树是n个有限元素的集合,该集合或者为空、或由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成基本术语结点之间的关系若一个结点有子树,那么该结点称为子树根的双亲,子树的根称为该结点的孩子有相同双亲的结点互为兄弟一个结点的所有子树上的任何

2021-03-10 22:14:43 5537 2

原创 冒泡排序算法

冒泡排序算法算法描述代码实现(js)优化 算法描述原理:比较相邻的两个元素,将小的数据放前面,大的数据放后面第一趟,首先比较第1个和第2个元素,小数在前大数在后,再比较第2个和第3个数,以此类推将最大的数滚动到最后一个位置第二趟同理,将次大的数滚动到倒数第二个位置… 第n-1趟完成排序 代码实现(js)平均时间复杂度:O(n^2)空间复杂度:O(1) (用于交换)function BubbleSort(arr){ var len = arr.length;

2021-03-09 15:07:47 91

原创 JavaScript执行上下文和作用域及闭包

JavaScript执行上下文和作用域作用域与执行环境创建执行上下文的条件两者区别JS代码的执行流程变量提升变量对象作用域链函数的创建与调用执行上下文栈块级作用域块级作用域的实现闭包闭包的回收作用域与执行环境执行环境与作用域不是同一种东西!作用域作用域是指在程序中定义变量的区域,决定了变量的生命周期,是一套存储规则。作用域就是变量与函数的可访问范围,即作用域控制着变量和函数的可见性和生命周期全局作用域其中的对象在代码中任何地方都能访问,其生命周期伴随着页面的生命周期函数作用域在函数内部

2021-03-08 01:15:37 258 1

原创 JavaScript的this用法

JavaScript的this用法什么是this不同使用场合纯粹的函数调用作为对象方法的调用作为构造函数调用apply、call和bind方法调用ES6箭头函数什么是thisthis是 JavaScript 语言的一个关键字,它是函数运行时,在函数体内部自动生成的一个对象,即函数运行时所在的环境对象,只能在函数体内部使用不同使用场合函数的不同使用场合,this有不同的值纯粹的函数调用属于全局性调用,因此this就代表全局对象var x = 1;function test() {

2021-03-07 16:27:48 164 3

原创 个人复习归纳——JavaScript零碎知识点

js零碎知识点基本概念数据类型操作符变量引用类型对象Object数组Array基本概念js组成ECMAScriptDOM文档对象模型BOM浏览器对象模型ECMAScript与JavaScript关系ECMAScript 是 JavaScript 的规范,JavaScript 实现了 ECMAScript数据类型5+1种:5种简单数据类型:Undefined、Null、Boolean、Number、String;1种复杂数据类型:Object检测数据类型instanceo

2021-03-04 23:11:59 211 1

原创 gitee+vue创建项目

一.gitee项目管理  1.创建仓库    gitee我的工作台右上角的加号 点击新建仓库

2021-02-22 19:59:53 1493

原创 二分查找法及其边界查找

二分查找法及其边界查找概述思路代码(js)局限性寻找左侧边界的二分查找寻找右侧边界的二分查找概述二分查找法又称为折半查找,适合对已排序好的数据集合进行查找,时间复杂度为O(log2n)思路假设一个有序数据集合,找出其最中间的元素,以中间元素为界将集合划分为左右两个子集将中间元素与目标元素进行比较,如果相等则是找到直接返回,如果大于/小于中间元素,否则到右子集中去找重复以上过程直到找到为止如果某一步数组为空,则是找不到目标元素,就返回-1代码(js)递归//升序数组的二分查找法

2021-02-20 17:15:26 630

原创 归并排序算法

归并排序算法核心思想步骤代码(js)核心思想分治:将问题分成一些小的问题然后递归求解,治则将分的阶段得到的各答案"修补"在一起分把原数组划分成两个子数组治将两个有序数组合并成一个更大的有序数组步骤将数组平均分成两个子数组,再递归将子数组也分割成两个更小的子数组当数组中只有一个元素时可以视为有序数组,开始合并操作设置两个指针,i指向前一个数组的第一个元素,j指向后一个数组的第一个元素;设置一个数组temp用来存储排序后的数组比较arr[i]和arr[j],谁更小就将谁存入tem

2021-02-19 14:56:22 75

原创 快速排序算法

快速排序算法思路步骤代码(js)思路在数组中选一个基准数(通常为数组第一个)将数组中小于等于基准数的数移到基准数左边,大于基准数的移到右边对于基准数左、右两边的数组,不断重复以上两个过程,直到每个子集只有一个元素,即为全部有序步骤选取数组arr第一个数为基准数flag设置两个指针:i指向数组头部,j指向数组尾部;两个指针从数组的左右两边界向中间进行遍历先向左移动尾指针j :当arr[j] > flag时,直接继续移动j;当arr[j] < flag时,令arr[i]

2021-02-09 20:04:09 82

原创 JAVA访问控制权限

JAVA访问控制权限publicprotectedprivatedefault权限大小比较public公开,可以被所有其他类所访问protected保护,只有自己、子类及同一个包中的类可以访问注意:子类就算不在一个包下也可以访问private私有,只能被自己访问修改default一般省略,只有自己和同一个包内的类可以访问权限大小比较public > protected > default > private...

2020-12-22 11:35:19 94

原创 JAVA转型问题

JAVA转型问题两种转型例子总结多态存在的三个必要条件两种转型向上转型(upcasting)将子类对象转为父类对象,父类对象可以是接口注意:子类对象转换为父类类型后不能调用子类特有方法向下转型(downcasting)与向上转型相反,即是把父类对象转为子类对象例子例子1:Father f1 = new Son(); // 向上转型// f1引用指向一个Son对象,父类引用指向子类对象Son s1 = (Son)f1; // 向下转型// f1还是指向Son对象

2020-12-21 14:59:05 95

原创 JAVA泛型

JAVA泛型什么是泛型集合类中使用泛型泛型类泛型方法类型通配符泛型和通配符的限定什么是泛型Java的参数化类型被称为泛型集合类中使用泛型在没有泛型之前,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型,当再次取出该对象的时候,该对象的编译类型就变成了Object类型(运行时的类型没有变换)。当进行强制类型转换会增加程序的复杂度,也可能产生ClassCastException泛型类泛型方法类型通配符泛型和通配符的限定...

2020-12-20 21:08:20 93 2

原创 JAVA final修饰符

Java final修饰符final关键字final修饰符的使用final关键字final关键字表示对象是最终形态的,对象是不可改变的意思final修饰符的使用修饰类中的属性表示该属性一旦被初始化便不可改变不可改变对基本类型来说是其值不可变,对对象属性来说其引用不可改变初始化初始化可以在两个地方:其定义处,即在final属性定义时直接给其赋值在构造函数中两个地方只能选其一,不能同时进行修饰类中的方法不能被重写说明该方法提供的功能已经满足当前要求,不需要进

2020-12-20 16:04:20 53

原创 JAVA反射

JAVA反射什么是反射类加载过程1.加载2.连接3.初始化Class对象反射的使用获取Class对象从class中获取信息反射的应用什么是反射反射就是把Java类中的各种成分映射成一个个的Java对象一个java文件通过javac编译后得到class文件当我们执行初始化操作时(可能是new、父类初始化、子类初始化,反射等),会将class文件通过类加载器加载到JVM中加载的过程中,会在java堆中创建一个java.lang.Class对象,这个对象就代表这个类相关的信息java中反射的原理就

2020-12-20 15:44:24 116 1

原创 JAVA集合类

JAVA集合类什么是集合类集合接口分类Collection接口List接口Set接口Map接口主要实现类Iterator接口Properties类什么是集合类可以存储任意类型对象,并且长度可变的类被称为集合集合类都位于java.util包中,在使用时要注意包的问题,否则会出现异常集合接口分类按照其存储结构可以分为两大类:单列集合Collection双列集合MapCollection接口单列集合类的根接口,用于存储一系列符合某种规则的元素,有两个重要子接口:List接口和Set接口

2020-12-20 12:01:13 191 1

原创 JavaWeb会话机制Cookie和Session

会话机制

2020-12-19 19:39:20 125 1

原创 JavaWeb解决中文乱码

JavaWeb中文乱码

2020-12-19 19:03:55 183 2

原创 JavaWeb Servlet基础知识

Servlet基础知识

2020-12-19 18:36:35 192 1

原创 JAVA多线程基础

JAVA多线程基础进程进程特点并行与并发进程与线程线程的创建与启动创建方法start方法和run方法线程生命周期五种状态状态转换图控制线程线程同步同步方法同步代码块Lock对象同步锁死锁处理策略线程通信一个任务通常是一个程序,一个运行中的程序就是一个进程,一个进程运行时内部可能包含多个顺序执行流,一个顺序执行流就是一个线程进程当一个程序进入内存运行即变成了一个进程,进程就是处于运行过程中的程序,进程是系统进行资源调度和分配的一个独立单位进程特点独立性动态性并发性并行与并发并行同一

2020-12-19 11:03:45 88 2

原创 JAVA重载与重写

重载与重写重载重写重载发生在一个类中,实现编译时的多态性方法名相同形参不同构造方法可以被重载异常类型和数目不会对重载造成影响重写发生在子类与父类之间,实现运行时的多态性方法名相同形参相同返回值类型一致更小异常类型一致或更小权限更大(public>protected>default>private)构造方法不能被重写被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写静态方法不能被重写为非静态的方法父类方法被fin

2020-12-18 22:01:39 54 1

空空如也

空空如也

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

TA关注的人

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