算法与数据结构
灵神:如何科学刷题? https://leetcode.cn/discuss/post/3141566/ru-he-ke-xue-shua-ti-by-endlesscheng-q3yd/新动计划: https://leetcode.cn/studyplan/primers-list/ 提交之前检查:输入 输出\n return0运行超时->去检查循环条件 结果 含义 核心排查方向 出错记录 PE 格式错误 空格 / 换行 / 大小写 / 输出顺序 / 字符宽度(如 %5d)/ 标点 打印时多了一个空格 WA 答案错误 逻辑漏洞、边界条件、数据类型溢出、特殊用例未处理(如 0 / 负数 / 极值) 边界0没处理 RE 运行时错误 数组越界、除 0、空指针、栈溢出、递归爆栈、scanf 参数漏 & TLE 超时 算法复杂度太高、死循环、不必要的重复计算 MLE 内存超限 数组开太大、内存泄漏、重复申请内存 CE 编译错误 语法错误(少分号 / 括号...
前端工程化
ES6+ECMAScript是标准,JavaScript是其主要实现。 ES5的严格模式1'use strict' ◆严格模式下八进制的限制严格模式下不允许使用0开头的八进制数字表示法(如012)。会抛出Uncaught SyntaxError: Octal literals are not allowed in strict mode。不过允许使用十六进制表示法(如0x12)。设计原因: 数字前导零存在语义歧义(数学上012应与12等价),属于历史遗留问题。 ◆严格模式下变量声明的限制不允许未声明直接使用变量(如username = 100),会抛出username is not defined错误。非严格模式对比: 普通模式下会自动创建全局变量,属于隐式变量声明。 let 与 const◆ES6新增了let命令。 不存在变量提升:let不像var那样会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。 不允许重复声明:let不允许在相同...
JavaScript进阶
HTMLCollection与NodeList区别① HTMLCollection 对象 能够返回HTMLCollection 对象的属性和方法: getElementsByTagName()、getElementsByClassName()、children HTMLCollection 对象的成员只能是元素类型对象 。 没有 forEach 方法。 是动态的集合,如果文档中新增了满足条件的元素,集合会自动更新。 ② NodeList 能够返回 NodeList 对象的属性和方法: querySelectorAll()、getElementsByName()、childNodes NodeList 对象的成员可以是节点类型的对象(包括元素类型、document 等)。 具有 forEach 方法。 静态的集合。 执行上下文全局执行上下文1.在JS代码执行前,就会创建一个window对象,这个window就是全局执行上下文对象。 2.预处理 变量处理:找到所有使用var声明的全局变量,给全局执行上下文对象添加属性,但不赋值(或者说值为undefined)。 函数处理:找到使...
JavaScript基础
JavaScript 是一门动态的,弱类型的,解释型的,基于对象的脚本语言。 动态: 程序执行的时候才会确定数据类型。 静态: 书写代码的时候提前确定数据类型。 弱类型: 数据类型可以自动转换。 强类型: 数据类型无法自动转换。 解释型: 边解释,边运行,开发效率更高。 编译型: 编译后运行二进制文件。 脚本: 一般都是可以嵌在其它计算机语言当中执行。 ◆javaScript 的运行环境(解释器): 浏览器,如Chrome浏览器中的V8引擎。 Node.js。 ◆浏览器端的 JavaScript 组成部分: 基本代码语法, ECMAScript,ECMA指定。 BOM, 浏览器提供的API,W3C指定。 DOM, 文档提供的API,W3C指定。 ◆其他特点: 指令结束符(语句结束符)是分号或者换行。 严格区分大小写。 开始JavaScript 在 HTML 中使用的三种方式: ① 行内式(内联脚本) 1<元素 onclick="代码.." ondblclick="代码.."></元素> ② 内嵌式...
HTML+CSS
开始开发工具:VsCodectrl + z 撤销ctrl + s 保存alt + shift + f 代码自动格式化Emmet快捷键: https://docs.emmet.io/abbreviations/syntax/在本地开发,在服务器共享。 HTML5W3C 官网: https://html.spec.whatwg.org/multipage/MDN: https://developer.mozilla.org/zh-CN/docs/Web/HTML 基础标签排版标签 标签名 语义和功能 单标签还是双标签 h1 ~ h6 一级标题~六级标题 双标签 p 段落 双标签 hr 分隔线 单标签 br 换行 单标签 pre 原格式显示 双标签 div 无语义,用于页面布局 双标签 文本标签 标签名 语义和功能 单标签还是双标签 ins 表示增加的内容,默认添加下划线 双标签 del 表示删除的内容,默认添加删除线 双标签 sub 下标字 双标签 sup 上标字 双标签 em 强调,默认表现斜体字 双标签 stron...
Web应用开发(Java)
概述Web 应用架构示意图◆Web 浏览器:就是你电脑 / 手机上的 Chrome这些,是用户的 “窗口”。用户在浏览器里输入网址、点击按钮,就会向服务器发出 “请求”,等服务器处理完再接收 “响应” 并展示内容。◆红色防火墙:它是整个系统的 “保安”,所有进出的网络流量都要经过它检查。它会拦截恶意攻击(比如黑客的非法请求),只把合法的请求放行到后面的 Web 服务器,同时也保护内部服务器不被直接暴露在公网上。◆Web 服务器:网站服务器,负责接收浏览器的请求,然后把请求分发给对应的 Web 应用来处理。处理完后,再把结果打包成 “响应” 发回给浏览器。◆Web 应用:是具体干活的 “办事员”,比如处理用户登录、生成动态页面、计算课程成绩等。它们会根据需要去数据库里读写数据,完成业务逻辑。◆数据库:是系统的 “档案库”,用来存储用户信息、课程数据、交易记录等。Web 应用需要数据时就来这里查,有新数据时也存在这里。 浏览器和服务器之间一次完整的 HTTP 请求 - 响应过程访问过程:通过浏览器,请求IP地址或域名,返回网页(html代码)。Web服务器:一种软件或硬件系...
区块链安全基础
概述信息安全,没有公认和统一的定义,但国内外对信息安全的论述大致可以分成两大类:◆一是指具体的信息系统的安全;◆二是指某一特定信息体系(比如一个国家的金融系统、军事指挥系统等)的安全。 网络安全,从本质上讲就是网络上信息的安全,即网络上信息保存、传输的安全,指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然和或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 网络安全应包含4层含义:◆运行系统安全,即信息处理和传输系统的安全。◆网络上系统信息的安全,包括用口令鉴别、数据加密等。◆网络上信息传播的安全,即信息传播后的安全。◆网络上信息内容的安全,本质是保护用户的利益和隐私。 信息安全或网络安全的特征:◆保密性:保密性是指信息不泄漏给非授权的个人、实体和过程,或供其使用的特性。◆完整性:完整性是指信息未经授权不能被修改、不被破坏、不被插入、不延迟、不乱序和不丢失的特性。对网络信息安全进行攻击其最终目的就是破坏信息的完整性。◆可用性:可用性是指合法用户访问并能按要求顺序使用信息的特性,即保证合法用户在需要时可以访问到信息及相关资产。◆可控性:可控性是指...
数据库
概述描述事物的符号记录称为数据,其特点是数据与其语义是不可分的。 四个基本概念◆数据库(Database,DB):长期储存在计算机内有组织、可共享的大量数据的集合。◆数据库管理系统(Database ManagementSystem,DBMS):位于用户与操作系统之间的一层数据管理软件。它和操作系统一样是计算机的基础软件,也是一类大型复杂的软件系统。◆数据库系统(DataBaseSystem,DBS):引入数据库后的计算机系统。一般是指由数据库、数据库管理系统(及其应用开发工具)、应用系统和数据库管理员组成的存储、管理、处理和维护数据的系统。 数据库系统架构图(图源:March) 数据库的本质:它是由DBMS创建的逻辑数据集合,没有安装DBMS的话,电脑中不存在可被管理的数据库;只有通过安装的MySQL/Oracle这种软件,才能在电脑的存储介质(硬盘、内存)上创建、存储和维护数据库。 一句话:先装MySQL(DBMS),再用它创建数据库,数据库是DBMS运行后产生的产物,而非电脑自带的内容。 数据管理技术数据管理是指对数据进行分类、组织、编码、存储、检索和维护。...
密码学
基础概念研究信息加密和解密方法的科学与技术统称为密码学,是研究信息保密与破译的基本规律为对象的学科。 ◆经典密码学:密码分析学、密码编码学。◆现代密码学:密码分析学、密码编码学、密钥管理学。 经典密码学主要以实现信息的保密性为目的,现代密码学不仅可以实现信息的保密性,而且还可以实现信息的真实性、完整性、可用性、可审查性和可靠性等。 现代密码学最重要的原则是“一切秘密寓于密钥之中”。即算法是公开的,但密钥必须是保密的。当加密完成后,可以将密文通过不安全的渠道发送给收信人,只有拥有密钥的收信人才可以对密文进行解密(即反变换得到明文)。 保密通信模型:香农 -> 概率统计观点 -> 通信系统 12信源->编码器->信道->解码器->接收者干扰源->信道 保密通信系统:(不赘述) 在私钥密码体制和公钥密码体制下,保密通信模型的差别主要体现在加密密钥的分发或传递上。私钥密码体制下,接收方和发送方的共享密钥必须通过安全信道传递。而在公钥密码体制下,发送方只需要认证所使用的加密密钥是接收方的。 柯克霍夫原则:密码分析者->密码算法-x->...
Java
开始项目里面放模块,模块里放包。main方法快捷键 psvm+enter: 12public static void main(String[] args) { } 控制台原样输出 sout+enter: 1System.out.println(); ctrl+y:删除一行ctrl+d:复制一行注释:单行//,多行/*+enter 文档注释 无论主方法main在哪个类里,只要文件中存在public类,文件名就由那个类决定。 Java概述诞生:Java是1995年6月由Sun公司引进到我们这个世界的革命性的编程语言。1990年Sun公司成立了由James Gosling领导的开发小组,开始致力于开发一种可移植的、跨平台的语言Java。 Java,一门很好的面向对象语言,其平台无关性让Java成为编写网络应用程序的佼佼者,而且Java也提供了许多以网络应用为核心的技术,使得Java特别适合于网络应用软件的设计与开发。 Java特点:简单、面向对象、平台无关、多线程、动态。 简单:C++需要手动管理内存,而Java采用自动垃圾回收机制。 面向对象:通过封装数...









