2.CSS概述
[TOC]
Html1. 什么是Web
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本(超越文本限制,超级链接文本)和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
什么是网页?
网页主要由文字、图像和超链接等元素构成。当然,除了这些元素,网页中还可以包含音频、视频以及Flash等。
什么网站?
网站就是一个一个的网页和其它文件的组成
什么是web前端?什么是后端?
什么是html?
超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。HTML 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字 ...
2.Vue的生命周期
[toc]
Vue的生命周期☆1. Vue实例1.1 创建Vue实例
每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的:
12345678910var vue = new Vue({ // 选项 el:"#app" data:{ name:"mm" }, methods:{ }})
1.2 模板或元素
每个Vue实例都需要关联一段Html模板,Vue会基于此模板进行视图渲染。我们可以通过el属性来指定。
1234<!--例如一段html模板--><div id="app"> </div>
然后创建Vue实例,关联这个div
123var vm = new Vue({ el:"#app"})
这样,Vue就可以基于id为app的div元素作为模板进行渲染了。在这个div范围以外的部分是无法 ...
2.递归
二十四桥仍在,波心荡、冷月无声。
——姜夔《扬州慢》
递归
递归:指在当前方法内调用自己的这种现象,每次调用时传入不同的变量。
1. 计算 1+2+3+….+n的和12345678910111213@Testpublic void test2() { int n = 100; int sum = sum( n ); System.out.println( "sum = " + sum );}public int sum(int n) { if (n == 1) { return 1; } return sum( n - 1 ) + n;}
2. 递归阶乘1234567891011121314@Testpublic void test3() { int n = 10; int value = getValue( n ); System.out.println( "value = " + value ...
2.设计模式七大原则
黯相望。断鸿声里,立尽斜阳。
——柳永《玉蝴蝶》
设计模式七大原则
编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的:
代码重用性 (即:相同功能的代码,不用多次编写)
可读性 (即:编程规范性, 便于其他程序员的阅读和理解)
可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)
可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)
使程序呈现高内聚,低耦合的特性
设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”
设计模式原则,其实就是 程序员在编程时,应当遵守的原则,也是各种设计模式的基础。即设计模式为什么这样设计的依据。设计模式常用的七大原则有:
单一职责原则
接口隔离原则
依赖倒转(倒置)原则
里氏替换原则
开闭原则
迪米特法则
合成复用原则
1. 单一职责原则
对类来说的, 即一个类应该只负责一项职责。
如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执 ...
20.Java基础之StringBuffer和StringBuilder
二十四桥仍在,波心荡、冷月无声。
——姜夔《扬州慢》
## Java基础之StringBuffer和StringBuilder
1. 前言-浅谈String:
String 类中使用 final 关键字修饰字符数组来保存字符串, private final char value[] ,所以String 对象是不可变的。
String 中的对象是不可变的,也就可以理解为常量,线程安全。
每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。
String类传送门…
2. 可变的StringBuffer和StringBuilder
StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在AbstractStringBuilder 中也是使用字符数组保存字符串 char[] value 但是没有用 final 关键字修饰,所以这两种对象都是可变的。
StringBuilder 与 StringBuffer 的构造方法都是调用父类构造方法也就是 Abstr ...
20.数据结构之二叉树
数据结构之二叉树1. 树结构与数据、链表的比较数组存储方式的分析
优点:通过 下标方式访问元素,速度快。对于有序数组,还可使用 二分查找提高检索速度。
缺点:如果要检索具体某个值,或者 插入值( 按一定顺序) 会整体移动,效率较低
链式存储方式的分析
优点:在一定程度上对数组存储方式有优化(比如: 插入一个数值节点,只需要将插入节点,链接到链表中即可,删除效率也很好)。
缺点:在进行 检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历)
树存储方式的分析
能提高数据 存储 , 读取的效率, 比如利用 **二叉排序树(Binary Sort Tree)**,既可以保证数据的检索速度,同时也可以保证数据的 插入,删除,修改的速度。
2. 树结构基础树的常用术语(结合示意图理解):
节点
根节点
父节点
子节点
叶子节点 (没有子节点的节点)
节点的权(节点值)
路径(从 root 节点找到该节点的路线)
层
子树
树的高度(最大层数)
森林 :多颗子树构成森林
二叉树的概念
树有很多种,每个节点 最多只能有两个子节点的一种形式称为二叉树,二叉树的子节点分为左 ...
21.数据结构之顺序储存二叉树
[toc]
数据结构之顺序储存二叉树1. 顺序储存二叉树1.1 顺序存储二叉树的概念
从数据存储来看,数组存储方式和树的存储方式可以相互转换,即 数组可以转换成树, 树也可以转换成数组。
1.2 顺序存储二叉树的特点
顺序二叉树通常只考虑完全二叉树
第 n 个元素的左子节点为 2 * n + 1
第 n 个元素的右子节点为 2 * n + 2
第 n 个元素的父节点为 (n-1) / 2
n : 表示二叉树中的第几个元素(按 0 开始编号如图所示)
1.3 顺序存储二叉树遍历
要求在遍历数组 arr 时,仍然可以以前序遍历,中序遍历和后序遍历的方式完成结点的遍历
给你一个数组 {1,2,3,4,5,6,7},要求以二叉树前序遍历,中序遍历和后序遍历的方式进行遍历。
前序遍历的结果应当为1,2,4,5,3,6,7
中序遍历的结果应当为4 2 5 1 6 3 7
后序遍历的结果应当为4 5 2 6 7 3 1
1.3.1 代码实现123456789101112131415161718192021222324252627282930313233343 ...
22.Java基础之Emun枚举类
青春都一饷。忍把浮名,换了浅斟低唱!
——柳永《鹤冲天》
## Java基础之Emun枚举类
1. 枚举类的使用—入门1.1 枚举类的使用场景
类的对象只有有限个,确定的。举例如下:
星期:Monday(星期一)、……、Sunday(星期天)
性别:Man(男)、Woman(女)
季节:Spring(春节)……Winter(冬天)
支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)
就职状态:Busy、Free、Vocation、Dimission
订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Return(退货)、Checked(已确认)Fulfilled(已配货)
线程状态:创建、就绪、运行、阻塞、死亡。
当需要定义一组常量时,强烈建议使用枚举类。
若枚举只有一个对象, 则可以作为一种单例模式的实现方式。
1.2 枚举类的实现
枚举类的两种实现
JDK1.5之前需要自定义枚举类。
JDK 1.5 新增的 enum 关键字用于定义枚举类。 ...
22.排序算法之堆排序
排序算法之堆排序1. 堆排序1.1 堆排序基本介绍
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn),它也是不稳定排序。
堆是具有以下性质的完全二叉树:
每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,
每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆
注意 : 没有要求结点的左孩子的值和右孩子的值的大小关系。
大顶堆
小顶堆
一般升序采用大顶堆,降序采用小顶
1.2 堆排序基本思想
将待排序序列构造成一个大顶堆
此时,整个序列的最大值就是堆顶的根节点。
将其与末尾元素进行交换,此时末尾就为最大值。
然后将剩余 n-1 个元素重新构造成一个堆,这样会得到 n 个元素的次小值。如此反复执行,便能得到一个有序序列了
1.2.1 图解堆排序
给你一个数组 {4,6,8,5,9} , 要求使用堆排序法,将数组升序排序。
1.3 堆排序代码实现123456789101112131415161718192021222324252627282930313233343536 ...
23.数据结构之哈弗曼树
[toc]
数据结构之哈弗曼树
给定 n 个权值作为 n 个叶子结点,构造一棵二叉树, 若该树的带权路径长度(wpl) 达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。
赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
1. 赫夫曼树几个重要概念☆
路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为 1,则从根结点到第 L 层结点的路径长度为 L-1
结点的权:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。
结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积
☆树的带权路径长度:☆树的带权路径长度规定为 所有叶子结点的带权路径长度之和,记为 WPL(weighted pathlength) ,权值越大的结点离根结点越近的二叉树才是最优二叉树。
WPL 最小的就是赫夫曼树
2. 生成一颗赫夫曼树
给你一个数列 {13, 7, 8, 3, 29, 6, 1},要求转成一颗赫夫 ...