- 博客(44)
- 收藏
- 关注
原创 JavaScript学习笔记——let与const
完整的ES6说明:ES6入门教程let命令let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。'let’命令很适合在for循环中使用。let命令不进行变量提升。let命令存在暂时性死区。即在代码块内,使用let命令声明变量之前,该变量都是不可用的。let命令不允许重复声明变量。块级作用域ES6 允许块级作用域的任意嵌套。内层作用域可以定义外层作用域的同名变量。ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块
2021-01-02 20:08:13
212
原创 JavaScript学习笔记——正则表达式
正则表达式概要正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。JavaScript中的正则表达式是一个对象。创建JavaScript中的正则表达式通过以下两种方式创建:var reg = new regExpr(/exp/); // 正则表达式对象var reg = /exp/; // 正则字面量检验正则表达式使用下面的语句检验某个字符串是否符合某个正则表达式的规则:regxObj.test(str);若符合,则返回true,否则返回fals
2021-01-02 19:01:54
265
1
原创 JavaScript学习笔记——拷贝
拷贝浅拷贝浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。例如:var obj = { id: 1, name: 'andy', msg: { age: 18 }};在object中,age就是“更深层次”的对象级别(第二层),其余为第一层,那么在浅拷贝下,将该obj拷贝给new_obj时,修改new_obj的id、name不会改变obj内对应属性的值,但若修改age,则两个对象都会被修改,因为其为拷贝引用。浅拷贝方式有以下两种:对应属性
2021-01-02 09:52:50
196
原创 JavaScript学习笔记——闭包
闭包定义闭包(closure)指有权访问另一个函数作用域中变量的函数。作用闭包延伸了变量的作用范围。理解闭包闭包的产生基于以下基础。执行环境(或简称环境)定义了变量或函数有权访问的其他数据,决定了它们的各自行为。每一个环境都有与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。全局执行环境是最外围的执行环境,而每个函数又有自己的执行环境。执行流进入一个函数时,函数的环境会被推入环境栈中。函数执行完毕后,环境栈将其弹出,将控制权还给上一个执行环境。代码在一个环境中执行时,会
2020-12-31 13:03:22
189
原创 JavaScript学习笔记——严格模式、高阶函数与自调用函数
严格模式概要消除了 Javascript 语法的一些不合理、不严谨之处,减少了一些怪异行为。消除代码运行的一些不安全之处,保证代码运行的安全。提高编译器效率,增加运行速度。禁用了在 ECMAScript 的未来版本中可能会定义的一些语法,为未来新版本的 Javascript 做好铺垫。比如一些保留字如:class, enum, export, extends, import, super 不能做变量名。使用方法严格模式可以全局开启,也可以局部开启。为脚本开启严格模式<script
2020-12-31 13:02:53
168
原创 JavaScript学习笔记——this
this函数内this的指向函数类别this指向普通函数window构造函数实例对象 原型对象中的方法也指向该实例对象对象方法的调用该方法所属对象事件绑定方法绑定事件的对象定时器函数window立即执行函数window改变this的指向call方法fun.call(thisArg, arg1, arg2, ...)作用:① 调用fun函数② 改变fun内this的指向(指向thisArg)apply方法fun.apply(
2020-12-31 13:01:25
171
原创 JavaScript学习笔记——类与对象
类构造与原型链JavaScript中类的创建与其他语言(如Java)类似。使用constructor()来创建类的构造函数。类中的方法不需要添加function关键字。使用extends关键字实现继承,例如:class Son extends Father { constructor(surname, firstname) { super(surname); this.firstname = firstname; } super.say();}使用super来调用父类的
2020-12-31 13:00:46
143
原创 JavaScript学习笔记——基础部分
JavaScript学习笔记——基础部分变量、数据类型与运算符1.下面两种赋值顺序的结果是不同的var x = "8" + 3 + 5; // x = “835”var y = 3 + 5 + "8"; // y = “88”2.在 JavaScript 中,从前端页面获得的值都是字符串类型3.==与===分别为相等和严格相等。三等号要求数据类型和值都相等,双等号只需要值相等即可,相等包含严格相等。比较过程上,严格相等先比较两个对象的数据类型是否相等,不相等则结束比较,返回 false
2020-12-27 21:51:55
232
原创 《Java核心技术 卷Ⅰ 》第七章笔记——异常、断言和日志
目录异常概述异常处理异常处理的技巧*本笔记仅记录了异常部分的内容异常概述1.异常的定义:程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。2.异常对象都是派生于Throwable类的一个类的实例。3.Throwable分类: Error:严重错误Error,无法通过处理的错误,只能事先避免。 Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。 4.Exception分类: 编.
2020-10-21 22:23:43
103
原创 《Java核心技术 卷Ⅰ 》第八章笔记——泛型程序设计
泛型类泛型类就是有一个或多个类型变量的类。以ArrayList集合为例,其格式如下:class ArrayList<E>{ public boolean add(E e){ } public E get(int index){ } ....}类型变量E(也可以是其他任意字母),用尖括号<>括起,放在类名的后面。使用多个类型变量时用逗号分隔,如<T, U, S>。类型变量在整个类定义中用于指定方法的返回类型以及字段和局部变
2020-10-15 22:22:38
258
原创 《Java核心技术 卷Ⅰ 》补充笔记——常见类及其API汇总
Scanner类1.描述:一个可以解析基本类型和字符串的简单文本扫描器。2.示例:从System.in(键盘)中读取一个数:Scanner sc = new Scanner(System.in);int i = sc.nextInt();3.使用步骤:查看类 java.util.Scanner:该类需要import导入后使用。 查看构造方法 public Scanner(InputStream source):构造一个新的Scanner,它生成的值是从指定的输入流扫描的。 查看成
2020-10-13 20:13:19
143
原创 《Java核心技术 卷Ⅰ 》第六章笔记——接口、lambda表达式与内部类
接口1.接口用来描述类应该做什么,而不指定它们如何去做;一个类可以实现一个或多个接口。2.接口中所有的方法都自动是public方法,所有字段总是public static final。3.接口绝不会有静态代码块、构造方法或实例字段。4.可以将接口看做没有实例对象的抽象类。5.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。6.让类实现接口的步骤:在类名后使用implements关键字将类声明为实现给定的接口。 对接口的所有方法提供定义。7.尽管
2020-10-09 22:15:37
139
原创 《Java核心技术 卷Ⅰ 》第五章笔记——继承
继承的基本概念1.继承的基本思想是基于已有的类创造新的类。2.反射是指在程序运行期间更多地了解类及其属性的能力。3.关键字extend表示正在构造的新类派生于一个已存在的类,用法如下:public class A { // methods and fields}public class B extends A { // added methods and fields}其中,这个已经存在的类成为超类、基类或父类,新类成为子类、派生类或孩子类。常用的名词为超类和子
2020-08-26 23:20:25
175
原创 《Java核心技术 卷Ⅰ 》第四章笔记——对象与类
类的基本概念1.由类构造对象的过程称为创建类的实例。2.封装是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。3.对象中的数据称为实例字段,建议将其全部设置为private。实例字段可以理解为类中的非静态成员变量,与之相对应的是静态字段。4.操作数据的过程称为方法。5.作为一个类的实例,特定对象都有一组特定的实例字段,这些值的集合称为这个对象的当前状态。6.通过扩展一个类来建立另外一个类的过程称为继承。7.调用方法后会改变对象的状态,称这个方法为更改器方法
2020-08-03 21:56:06
170
原创 《Java核心技术 卷Ⅰ 》第三章笔记——Java的基本程序设计结构
变量1.Java中默认的整数与小数的类型为int与double,故当定义一个short变量s后,不可出现s = s + 1;的代码,正确写法如下:s = (short) (s + 1);因为数字1是int类型,s+1会因自动类型转换而变成int型,不可以直接赋给short类型的变量s,需要进行强制类型转换。注意:上述代码可以写作 s += 1; 该运算符自带强制类型转换。 转换时要注意精度和上限问题。而下述代码仍是错误的:byte a1 = 1;byte a2 = 2;b
2020-07-30 23:11:28
195
原创 数据结构应试要点——排序与查找
排序与查找的基础知识请参阅相关书籍,这里列出考试时需要注意或容易忽视的地方。如有补充,欢迎评论或私信!查找顺序查找与折半查找1.对线性的链表只能进行顺序查找。2.有序表的顺序查找可以是顺序结构也可以是链式结构。3.折半查找仅适用于有序的顺序表,不适合链式结构。折半查找的过程可以使用二叉判断树表示,因而其比较次数不会超过树高。二叉判断树是一种平衡树,效率稳定,这是其与二叉排序树主要区别。4.分块查找块内的元素可以无序,块与块之间必须有序。5.折半查找(二叉判断树)的平均查找长度:
2020-06-25 21:01:46
1429
原创 数据结构应试要点——树与二叉树
树与二叉树的基础知识请参阅相关书籍,这里列出考试时需要注意或容易忽视的地方。如有补充,欢迎评论或私信!基本概念树1.树最适合用来表示元素之间具有分支层次关系的数据。2.树的路径长度是从树根到每个结点的路径长度的总和。3.树的结点总数 = 所有结点的度数 + 1.这里要注意的是,树中的度与图论中的度不同。树中度为0的结点为叶子结点,而图中度为0的结点为一个孤立结点。4.设T为m度的树,ni为度是i的结点的个数,则:总结点数 = n0 + n1 + n2 + ... + nm
2020-06-22 22:53:33
1186
原创 数据结构应试要点——线性表、栈和队列、串
线性表的基础知识请参阅相关书籍,这里列出考试时需要注意或容易忽视的地方。如有补充,欢迎评论或私信!1.线性表的顺序存储结构是一种随机存取的存储结构,而非顺序存取。随机存取就是当存储器中的数据被读取或写入时,所需要的时间与该数据所在的物理地址无关。更通俗地说,根据起始地址加上元素的序号,可以很方便地访问任意一个元素。顺序存取是按记录的逻辑顺序进行读、写操作的存取方法。它的主要特点是在存取第N个数据时,必须先访问前(N-1)个数据。典型实例是链表。2....
2020-06-18 09:24:40
1102
转载 Python基础部分——循环
目录While循环与break语句while语句break语句for循环与continue语句for语句continue语句循环嵌套for循环嵌套while循环嵌套迭代器理解迭代器定义迭代器复制迭代器程序的第三大结构是循环结构,在此结构中,通过一个判断语句来循环执行一个代码块,直到判断语句为假时跳出循环。循环语句分为while循环、for循环、循环嵌套和迭代器。循环语句中有一个语句break,通过这个语句可以跳出整个循环。以下场景便模拟了循环结构与
2020-05-10 22:18:54
1266
转载 Python基础部分——函数结构
函数的参数定义函数的基本结构是:def functionname( parameters ):"函数_文档字符串" function_suite return [expression]定义函数以def关键词开头,后面跟着函数名、圆括号()、括号中的参数、冒号; 接着,在缩进块中编写函数体,函数的第一行语句一般是写文档字符串,用于存放函数说明,也可以选择不写; Return[expression]表示结束函数,并返回值。而不带表达式的return相当于返回空值。定义...
2020-05-10 22:05:54
498
原创 数据结构应试要点——图
图的基础知识请参阅相关书籍,这里列出考试时需要注意或容易忽视的地方。如有补充,欢迎评论或私信!图的基本概念1.图可以没有边,但不可以没有顶点。2.有向完全图的任意两相邻顶点均有一对方向相反的边。3.一个图G的子图G'并非需要连通。4.极大连通子图与极小连通子图:极大连通子图是无向图的连通分量,该子图包含图中所有的边。 极小连通子图是既要保持图连通,同时该子图的边数最少的子...
2020-05-08 16:05:59
837
转载 Python基础部分——元组与字典
元组元组看起来犹如列表,但元组使用圆括号 ()而不是 []来标识,而且列表的元素可以修改,但元组的元素不能修改。下面介绍元组的常见使用方法以及元组和列表的使用区别。元组与列表元组与列表很相似,两者之间的差别在于:列表在初始化后其中的元素还可以进行增删改等操作,但是元组在初始化后其中的元素不能进行更改。 列表在赋值时使用方括号 [],而元组在赋值时使用小括号 ()。因为元组具有不...
2020-05-04 12:51:46
812
转载 Python基础知识部分——列表
列表Python为列表类型提供了一系列内置操作,包括 append()、 insert()、 pop()、 remove()等函数,能够很方便的处理列表元素变化的情况。以客人名单列表为例介绍这几种列表操作方法。添加列表元素Python提供了 append()和 insert()等函数,实现向一个列表增加新元素的功能。(1)在列表尾部添加元素在Python中,可以使用 app...
2020-05-03 17:24:30
784
转载 Python基础知识部分——字符串
目录字符串的拼接字符串长度获取大小写转换去除字符串首尾空格字符串查找字符串替换字符串分割字符串在几乎所有编程语言中都是最基本,也是最常用的数据类型之一,绝大多数程序的开发中,都会涉及到字符串的处理和应用。下面主要学习和掌握 Python 字符串的基本操作,主要内容包括字符串的拼接、字符转换、字符串首尾空格去除以及字符串查找与替换等操作。字符串的拼接Pyt...
2020-05-03 17:23:53
388
转载 Python基础知识部分——输入与输出
输出部分1.将要输出的内容放在 print()的括号内,就可以输出:print("hello world")得到的结果是: hello world2.print函数可以同时输出多个内容,只需要将它一起放在 print的括号内,并用逗号隔开:print("hello","world")得到的结果: hello world值得注意的是,同时输出的多个内容之间,会有空...
2020-05-03 17:22:37
1031
原创 [学习记录]LeetCode探索二叉树——从前序与中序遍历序列构造二叉树
题目描述LeetCode传送门:105. 从前序与中序遍历序列构造二叉树题目分析观察前序和中序遍历序列可以知道前序遍历序列的第一个元素为该树的根节点,而中序遍历序列中根结点的左边为根结点左子树的中序遍历序列,右边为中序遍历序列。而根据两序列根结点的位置,又可确定前序序列中左右子树的前序遍历序列,从而递归求得这棵二叉????。根据分析可知,需要7个变量:确定中序序列根结点变量i,前序...
2020-04-24 10:00:19
136
原创 [学习记录]LeetCode探索二叉树——对称二叉树
题目描述LeetCode传送门:101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ ...
2020-04-24 09:13:34
165
原创 [学习记录]LeetCode探索二叉树——从中序与后序遍历序列构造二叉树
题目描述题目分析观察中序与后序遍历序列可以知道后序遍历序列的最后一个元素为该树的根节点,而中序遍历序列中根结点的左边为根结点左子树的中序遍历序列,右边为中序遍历序列。而根据两序列根结点的位置,又可确定后序序列中左右子树的后序遍历序列。下面以题目样例为例,进行分析:中序遍历 inorder =[9,3,15,20,7]后序遍历 postorder = [9,15,7,20...
2020-04-24 08:24:48
222
原创 [学习记录]LeetCode探索二叉树——树的前序遍历方式(递归+迭代)
题目描述及要求代码1.递归法本方法采用递归的方式对树进行遍历,值得注意的是,在递归左右子树时,形参val_count已是指针类型,不必再在前加&取地址三种递归方法仅在存储树中val值与递归左右子树的顺序上存在差异。/** * Definition for a binary tree node. * struct TreeNode { * int val;...
2020-04-21 12:06:31
166
原创 PTA数据结构起步能力自测题-5:Shuffling Machine
题目要求Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid "inside jobs" where employees collaborate with g...
2020-03-13 21:57:26
155
原创 PTA数据结构起步能力自测题-4:Have Fun with Numbers
题目要求Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit numb...
2020-03-13 21:54:24
277
原创 PTA数据结构起步能力自测题-3:数组元素循环右移问题
题目要求一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,...
2020-03-13 21:52:17
124
原创 PTA数据结构起步能力自测题-2:素数对猜想
题目要求让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素...
2020-03-13 21:50:44
312
原创 PTA数据结构起步能力自测题-1:打印沙漏
题目要求本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印***** *** * ********所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。...
2020-03-13 21:48:43
113
原创 C++面向对象——函数重载与运算符重载
函数重载1.函数重载是指可以有多个同名的函数,或函数名相同,但参数列表不同(特征标不同)。2.函数重载满足的条件(1)在同一个作用域下(2)函数名称相同(3)函数的参数类型不同,或者个数不同,或者顺序不同3.函数的返回值不同(其他情况相同)不可以作为函数重载的条件4.注意避免出现同时定义以下两个函数的错误void Swap ( int a , int b )...
2020-03-13 21:27:48
228
原创 C++面向对象——this指针
1.每个成员函数(包括构造和析构)都有一个this指针。2.在成员函数内部,this指针指向调用对象,即可以通过this关键字访问当前对象的成员。????:(1)访问成员变量:this->成员名;(2)访问成员函数:this->函数名();this是指向对象的指针,而*this则指向对象的本体????:student& stuAge(studen...
2020-03-13 21:16:11
707
原创 C++面向对象——构造函数与析构函数、内存分区模型
目录构造函数构造函数的三种方法初始化列表拷贝构造函数浅拷贝与深拷贝诸多注意事项析构函数内存分区模型析构函数构造函数构造函数的三种方法1.括号法(常用)????:student stu01(”张三”,190110101);student stu02(stu01);2.显式法????:student stu01 = student(”...
2020-03-13 21:12:45
405
原创 C++面向对象——友元函数
1.友元可以是函数(友元函数),也可以是一个类(友元类)。使用时在定义B时的public添加:[全局]friend void Func();[友元类B的]friend class A;[A的成员函数]friend void A::Func();其中函数类又分为全局函数和成员函数2.全局函数做友元时,全局函数的定义在类外部,它的声明有在类的定义中出现过,但并不是成员函数。...
2020-03-13 21:01:22
904
原创 C++面向对象——内联函数
内联函数1.内联函数与常规函数的区别不在于编写方式,而在于被调用的运行机制不同。2.内联函数中,编译器使用函数代码替换(复制)函数调用。「可以类比但不同于宏替换」3.内联函数优点:执行效率高4.如何使用内联特性?在函数声明或定义前使用关键字inline5.内联函数只会出现在编译器中,经编译器最终形成的可执行文件中不会存在内联函数6.若设定某函数为内联函数,则其定义与...
2020-03-13 21:00:40
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人