Jack's Blog

With great power, there must come great responsibility. No matter what happens, just keep moving forward!

设计模式基础总结篇

1. 什么是设计模式一般而言,一个模式有四个基本要素:模式名、问题、解决方案、效果。(1)模式名(pattern name):一个助记名,通过一两个词语来藐视模式的问题、解决方案和效果。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。(2)问题(problem):描述了应该在何时使用设计模式。它解释了设计问题和问题存在的前因后果。它可能描述了特定的设计问题,也可能描述了导致不......

Java面向对象编程基础总结

1. OOP介绍面向对象编程(Object-Oriented Programming, OOP)是划时代的编程思想变革,推动了高级语言的快速发展和工业化进程。OOP的抽象、封装、继承、多态的理念使软件大规模化成为可能,有效地降低了软件开发成本、维护成本和复用成本。因此,OOP实现了软件工程的三个目标:可维护性、可重用性和可扩展性。传统意义上,面向对象有三大特性:封装、继承、多态,但“抽象”的......

数据库基本理论知识总结——MySQL优化篇

1. 如何查看MySQL的执行计划?执行计划是SQL语句调优的一个重要依据,MySQL中使用EXPLAIN命令来查看SQL语句的查询执行计划(QEP)。从这条命令的输出结果中就能够了解MySQL优化器是如何执行SQL语句的。EXPLAIN命令可以运行在SELECT语句或特定表上,如果作用在表上,那么此命令等同于DESC命令;MySQL5.6.3版本之前只能对SELECT生成执行计划,5.6.......

数据库基本理论知识总结——MySQL索引篇

前言索引(Index)是数据库优化中的最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题。索引用于快速找出在某个列中含有某一特定值的行,如果没有索引,那么查询时必须从第1条记录开始,然后读完整个表,直到找出相关的行。在没有索引的情况下,表越大,查询花费的时间就越长。索引在MySQL中也称为**键(Key)**,是存储引擎用于快速找到记录的一种数据结构。索引具有以下......

数据库基本理论知识总结——MySQL基础篇

1. MySQL数据库的特点MySQL是一个小型的关系型数据库,支持FreeBSD、Linux、MAC、Windows等多种操作系统。MySQL数据库可支持要求最苛刻的Web、电子商务和联机事务处理(OLTP)应用程序。它是一个全面集成、事务安全、符合ACID的数据库,具备全面的提交、回滚、崩溃恢复和行级锁定功能。MySQL凭借其易用性、扩展力和性能,成为全球最受欢迎的开源数据库。MySQL......

数据库基本理论知识总结——事务篇

1. 事务的概念事务(Transaction)是一个操作序列。这么操作要么都做,要么都不做,是一个不可分割的工作单位。事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK操作结束:COMMIT表示提交事务中的所有操作,事务正常结束;ROLLBACK表示回滚,即撤销已做的所有操作,回滚到事务开始时的状态。 2. 事务的四个特性(ACID)2.1 原子性(Atomi......

数据库基本理论知识总结——范式篇

1. 什么是范式(Normal Form,简称NF)?范式指的是在设计合理的关系型数据库时,需要遵从的不同的规范要求,越高的范式意味着数据库的冗余越小。范式带来的好处:消除重复数据,减少数据冗余,更好地组织数据库内的数据,让磁盘空间得到更有效的利用。当然,范式也存在如下的缺点:范式使查询变得相当复杂,在查询时需要更多的链接,一些复合索引的列由于范式化的需要被分割到不同的表中,导致索引策略不佳......

二叉树的前序、中序、后序以及层次遍历总结

1. 二叉树的定义首先我们需要定义二叉树中的节点,它应该包含当前节点的值、一个指向左子树的指针以及一个指向右子树的指针这三个属性,因此二叉树节点的定义如下:123456789class TreeNode(object): """ Tree Node definition """ def __init__(self, val): self.val = va......

PyTorch学习笔记

1. PyTorch简介PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebook的人工智能研究团队开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。 PyTorch提供了两个高级功能:具有强大的GPU加速的张量计算(如Numpy)和 包含自动求导系统的深度神经网络。......

爬取网易云音乐榜单歌曲信息

一、前言在前面的博客中已经讲过如何爬取静态网页(如政府网站)的内容,具体可点击此处查看。这里,笔者讲解下如何爬取动态网页上的内容,以爬取网易云音乐的榜单歌曲为例。 二、准备工作本文主要使用Selenium模块 + 浏览器驱动webdriver来实现动态网页数据的爬取,因此需要做下面的准备工作。 1. 安装Selenium模块这个比较简单,如果是Windows系统以管理员方式运行命令提示符,而......