自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 设计模式-组合优于继承原则

本章用来讲述设计模式中的另一个原则——组合优于继承原则,又称为合成复用原则。一、基本介绍该原则是尽量使用合成/聚合的方式,而不是使用继承。上面一句话就是对该原则的核心,但单单看这么一句话还是显得过于枯燥与不知所云,下面我们还是结合具体的场景进行代码推进,对该原则进行讲解。二、场景假设我们需要设计这样一个集合,每次向里面加入元素时,count都加一。例如:最初集合是空集合,此时我们向里面加入"a",此时集合为{"a"},那么此时count = 1;当加入"b","c"两个元素时,集合为{"a","

2021-05-16 17:49:16 705

原创 设计模式-单一职责原则

在对设计模式的学习中,首先需要了解、掌握设计模式的七大原则,这样后续对设计模式的学习才能够更加的轻松与透彻。本章用于总结设计模式中的单一职责原则,该原则也是比较容易理解的。一、基本介绍对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2。二、场景应用2.1 场景一该场景模拟交通工具使用场景。目的:模拟交通工具的运输形式。反例代码public class

2021-05-16 17:48:32 230

原创 Nginx学习笔记及牛刀小试

一、Nginx的安装本次安装的环境为centos7.0的版本。1.1 pcre依赖包的相关安装安装pcre压缩包中的依赖wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz压缩包解压并进入解压后的文件夹tar -zxvf pcre-8.37.tar.gzC++方面的依赖(openssl、zlib、gcc等依赖)因为Nginx依赖C++的编译环境,故需要安装C++方面的依赖。

2021-05-10 21:32:33 189

原创 Java比较器之Comparator和Comparable

本文用来简单记录Java中Comparator和Comparable接口特点与使用。首先,分别查看官方对这两个接口的描述定义:一、Comparator接口This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.A comparison function, which imposes a total ord

2021-04-06 11:22:21 264 2

原创 Git的基本操作

本文借鉴廖雪峰老师博客而整理的git相关总结,以方便自己查阅使用。1.Git用户设定及其配置1.Git配置Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。~/.gitconfig 文件:用户目录下的配置文件

2021-04-06 11:22:03 115

原创 初探并查集

本文用来记录对并查集的学习与总结,并通过leetcode的两道题目来加深对其的理论与实战学习(实现代码Java)。学习一种数据结构,最高效的方式,就是学以致用,所以这里,以leetcode的题目为例。给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返

2021-04-06 11:21:45 141

原创 数组中第K大问题之堆排序

这次在刷Leetcode时,在求解数组中的第K大问题时,想到了使用堆排序,因此本篇文章用于巩固对堆排序的学习以及代码实现。题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入:[3,2,3,1,2,4,5,5,6] 和 k = 4输出:4当时看到此题时,第一反应就是想到使用大顶堆来求解,在第K次调堆后,就能够得到最K大元素。后续以大顶堆进行为例。先来简单回顾堆排序:堆是一棵完全二叉树。如果是一个大顶堆,则根节

2021-04-06 11:21:27 441

原创 ssm框架的整合

初学Spring、SpringMVC以及Mybatis时,将其整合时步骤繁多,新手容易不理解,面对繁多的XML配置,往往也不易跑通代码,这里用于记录一次整合的配置。整合的目的:通过Spring的IoC和AOP对组件进行管理。即:通过IoC解决组件间的动态依赖注入;通过AOP来对事务进行控制,即通过Spring来整合SpringMVC及Mybatis。想法:对Mybatis的整合是,在Service层调用dao层的接口时,使其自动装配。首先:一张数据库表对应一个实体类,一个实体类对应一张Mapper.x

2021-04-06 11:20:57 194 1

原创 Servlet执行原理浅谈

在介绍Servlet之前,简单对web方面的知识做个小结。一、Web知识小结1.1 软件架构这里的软件架构,指服务器软件工作的两种方式:C/S:客户端/服务器端B/S:浏览器/服务器端1.2 网络通信三要素IP:电子设备(计算机)在网络中的唯一标识。作用:用于定位到具体的电子设备,这里指具体的一台计算机。port(端口):应用程序在计算机中的唯一标识,其范围在0~65536。作用:用于定位计算机中的具体应用程序(每个应用程序都在监听着具体的端口号)。传输协议:规定了数据传输的规则(该

2021-04-06 11:20:32 93

原创 简化Mybatis的使用——通用Mapper

使用通用Mapper的目的是为了替我们生成常用增删改查操作的SQL语句,并能够简化对于Mybatis的操作。一、快速入门1.1 数据库表的创建CREATE TABLE `tabple_emp` ( `emp_id` INT NOT NULL AUTO_INCREMENT, `emp_name` VARCHAR ( 500 ) NULL, `emp_salary` DOUBLE ( 15, 5 ) NULL, `emp_age` INT NULL, PRIMARY KEY ( `emp_id`

2021-04-06 11:19:51 355

原创 Mongodb的安装配置及基本使用

title: Mongodb的安装配置及基本使用categories:Mongodbtags:Mongodbtop: ‘’thumbnail: ‘’cover: falsedate: 2020-11-09 09:12:53icons:本文记载一次在阿里云服务器装载Mongodb并远程连接成功使用的过程记录。基本安装环境:本次安装环境:CentOS7、Mongodb版本为4.2.10一、安装通过Mongodb官网,安装Mongodb的社区版本,选择自己需要安装的版本以及依赖的.

2021-04-06 11:19:16 461

原创 Springboot自定义starter

一、介绍与定义本章用于记录自定义Springboot-starter的学习过程。在我们自定义starter之前,我们首先观察一下SpringBoot自身的starter的形式都是什么样的。我们以spring-boot-starter-web为例。通过spring-boot-starter-web,可以看出当前引入的依赖是空的JAR文件。它的作用是仅提供辅助依赖管理,这些依赖可用于自动装配或者其他类库。继续点入,可以看见其引入了spring-boot-starter,再进一步点入,又能看见其引入了sp

2021-04-02 14:33:51 93

原创 SpringMVC学习笔记记录

0 、概述服务器端分成三层架构。一、环境搭建1.1 Maven环境的创建导入坐标依赖<!-- 版本锁定 --><spring.version>5.0.2.RELEASE</spring.version><!-- 配置依赖 --><dependencies> <!-- spring IOC --> <dependency> <groupId>org.spring

2021-04-02 14:29:09 417

原创 Java基础之IO流

一、字节流与字符流输入流:用于读取数据 – 将数据写入内存进行展示,即将数据从其他设备读取到内存中的流。输出流:用于数据保存 – 将数据写入磁盘,可持久化存储,即将数据从内存中写出到其他设备上的流。在字节流(以字节为单位)中,输出数据使用OutStream类完成,输入使用的是InputStream类完成。(所有字节流的父类)在字符流(以字符为单位)中,输出数据使用Writer类完成,输入使用Reader完成。(所有字符流的父类)其中,字节流主要操作byte类型数据,以byte数组为准。如果想

2021-04-02 14:26:15 103

原创 Mybatis框架介绍与基本使用笔记

Mybatis框架介绍与基本使用笔记**注意:**一般的一个Maven工程首先注入的依赖包含数据库驱动依赖,日志依赖,测试依赖domain中的实体类实现serizlizable接口序列化的原因:最重要的两个原因是:1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;2、按值将对象从一个应用程序域发送至另一个应用程序域。实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复。所以你想如果你的对象没实现序列化怎么才能进行网络传输呢,要网络传输就得转为字节

2021-04-02 14:17:19 185

原创 Java基础之反射初步理解

由于在学习框架时,经常会遇到反射,故此篇文章用于对反射的基本学习。一、概述基本定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。对其简单的理解就是将类的各个组成部分封装为其他对象,以便我们能够更加细化的使用。同时,我们也都知道,Java中程序是运行在虚拟机中,我们平常用文本编辑器或者是IDE编写的程序都是.java格式的文件,这是最基础的源码,但这

2021-04-02 14:14:19 115

原创 Java基础之Filter

一、概念Filter是Java Web的三大组件之一。Java Web三大组件分别是Servlet、Filter、Listener。Filter的作用一般用于完成通用的操作。例如:登录验证、统一编码处理、敏感字符过滤…在实际开发中,过滤器就是对Web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理,通常都是用来拦截request进行处理,或者对返回的response进行拦截处理。其处理流程见下图:拦截request可以简单理解为,在客户端向后端发送请求时,我们需要对其请求加一些"修饰

2021-04-02 14:11:21 274

原创 Servlet优化之功能重组成模块

title: Servlet优化之功能重组成模块categories:Javatags:Servlet反射top: ‘’thumbnail: ‘’cover: falsedate: 2020-08-31 20:15:11icons:在之前的总结Java初试MVC及三层架构中,查看其目录结构仅仅对于User对象的操作就写了6,7个servlet,而每一个servlet只对应一个功能,但随着以后项目的扩大,业务逻辑的复杂化,我们需要操作的对象不仅仅是一个User类时,换句话说,我们.

2021-04-02 14:08:34 121

原创 前端之表单验证

一、简概因为,前端经常涉及到表单验证,故此篇博客用于记录前端JS对表单验证的方法。通过表单验证,当对form表单提交时,可以防止不合法的数据传递至后台(以及判空操作)。这里我们先定义一个表单,作为示例,其它的情况都可以此类推。前端表单代码<div> <form method="get" action="https://www.baidu.com" id="form"> <table align="center" style="margin

2021-04-02 14:07:08 3709 1

原创 Redis思考及基础案例实战

一、简单介绍redis是一款高性能的NOSQL系列的非关系型数据库。主要用于缓存,可提升数据访问的性能。这里用于做缓存的数据是不经常做改变的数据。核心思想见下图:使用缓存机制,可以加快我们数据的访问。因为数据是暂存在内存中,直接访问内存的数据可以减少在访问数据库过程中的I/O操作,这样便可以提升系统的性能,查询速度。但是作为缓存也有一定的缺点:数据因为是暂存在内存上的,一旦redis服务端关闭,再次开启时,缓存数据将不复存在。因此在某些场合中,我们需要对redis缓存数据做持久化操作,将其持久化到硬盘

2021-04-02 14:04:20 318

原创 从Servlet到HttpServlet都经历了什么

在之前的文章Servlet执行原理浅谈中对Servlet的整个原理做了大概介绍。我们知道客户端发送的请求是交给Servlet中的service方法进行处理。而在实际使用时,并没有直接重写service方法,而是继承了HttpServlet,重写了doGet、doPost等方法,而这期间又发生了什么呢。首先,我们观察Servlet这个类:public interface Servlet { void init(ServletConfig var1) throws ServletException;

2020-11-29 18:10:01 150

原创 Spring学习笔记(全)--看这一篇就够了

0、基本介绍Spring是对业务层的操作,同时可以整合Mybats框架和Spring MVC框架。下图是MVC结构:**耦合:**简单理解为程序间的依赖关系类之间的依赖方法间的依赖**解耦:**降低程序间的依赖关系实际开发中编译期不依赖,运行时才依赖。解耦的思路:第一步:使用反射来创建对象,而避免使用new关键字。第二步:通过读取配置文件来获取要创建的对象全限定类名。一个创建Bean对象的工厂。Bean:含有可重用组件的含义。JavaBean:用Java语言编写的可重用组件。

2020-09-22 23:39:58 570

原创 Java初试MVC及三层架构学习笔记

最近又捡起了对Java的学习,通过对一个实例的介绍,总结下此次对Web开发中MVC三层架构的学习,以便用于日后的复习。一、 MVC简单的先介绍下MVC模式:M(Model):JavaBean。用于完成具体的业务操作。JavaBean:Java中特殊的类.JavaBean满足条件:public修饰的类,并提供public无参构造方法所有的属性都是private修饰提供getter和setter方法使用层面:封装业务逻辑:dao层封装对数据库的底层操作封装数据:domain层。对

2020-09-19 22:42:19 898

原创 conda常用命令整理记录

一、设置镜像源conda// 以清华镜像为例conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes此时在当前用户的根目录下生成一个名为".condarc"的配置文件,打开该文件。将".condarc"配置文件内容修改如下,此外可以添加更多的下载渠道。channels: - defaultssho

2020-09-19 22:40:30 1068

原创 2020考研如此激烈,还怕获得不了最新的调剂信息么?来对小木虫考研调剂信息爬取

title: 对小木虫考研调剂信息的爬取categories:[Python,爬虫]tags:爬虫正则表达式RequestBeautifulsouptop: ‘’thumbnail: ‘’cover: falsedate: 2020-04-09 20:15:36icons:一、说明由于国家线快出了,故写了一份爬取小木虫网站调剂信息的爬虫代码,方便信息查看。此代码...

2020-04-09 20:43:46 3397 2

原创 机器学习-特征工程之数据预处理

在上一节中的泰坦尼克号入门案例的数据预处理过程中,出现了数据不完整、数据的编码(数值转化),即将非结构化文本转化为结构化文本。本文主要用来记录在sklearn中常用的数据预处理基本方法。数据预处理从数据中检测,纠正或删除损坏,不准确或不适用于模型的记录的过程。可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断。也可能,数据的质量不行,有噪声,有异常...

2020-04-09 20:32:18 366

原创 抽取JDBC工具类——JDBCUtils的使用

在上一篇介绍JDBC基础使用的博文中,简单了解到JDBC的使用。但是,也看出了一定的弊端:重复代码量较大。在我们每次新建一个JDBC的类操作数据库时,都要不停的进行驱动的注册,数据库的连接,参数的输入等大量重复性的操作。所以,有没有什么方法简化这一类的操作呢?其实,将这些重复的代码进行抽取,作为一个工具类,每次使用的时候进行调用即可,这样便能够达到代码的可复用性。抽取JDBC工具类的思路:...

2020-03-21 14:00:38 341

原创 一篇文章搞定Python爬虫

一、Requests库的7个主要方法方法说明requests.request()构造一个请求,支撑一下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应...

2020-03-18 17:44:28 524

原创 JDBC基础入门使用

JDBC:Java DataBase Connectivity,即为Java数据库连接。JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。即:定义的一套操作所有关系型数据库的规则,是为接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接(JDBC)编程,真正执行的代码是驱动jar包中的实现类。JD...

2020-03-18 03:32:51 141

原创 机器学习-决策树入门之泰坦尼克号案例

本文用于记录机器学习中的一次入门练习,即:利用决策树进行简单的二分类。同时,结合Kaggle上的经典案例Titanic,来测试实际效果。一、数据集采用Kaggle中的Titanic的数据集。数据包含分为:训练集: training set (train.csv)测试集: test set (test.csv)提交标准: gender_submission.csv由于Kaggle涉及...

2020-03-15 20:48:27 707

原创 云端MySQL安装及相关配置

由于自己的阿里云账号申请不足6个月,能够享受新用户云服务器ECS89元一年的优惠政策,所以就购买了一台云服务器,作为日常学习的使用。本文用来记录此次装载云服务器所遇到的一些问题及MySQL的安装过程。一、云服务器的选配及配置此次我选购的服务器网址:http://aliyun.langsan.com/?bd_vid=8575091722087683835。下图为此次所购的云服务器配置: [外链...

2020-03-15 20:47:35 492

原创 Linux-Ubuntu的安装与相关设置

近日换了电脑,想装一个Linux系统,但也不想在本机上装双系统,就选择了装起虚拟机。此次选择了安装Ubuntu 16.04.6版本,文章最后会附上常用16.04和18.04ubuntu镜像源下载的网址。本文,用来记录此次虚拟机的装载过程、后续配置。一、VMWare Fusion的下载VMware Fusion是VMware为Macintosh计算机开发的虚拟机管理程序。用来管理虚拟机环境。此次...

2020-03-15 20:46:27 205

原创 序列之深拷贝-浅拷贝

在上周的Python科学计算课上,老师讲到了Python序列的浅拷贝以及深拷贝方面的知识,个人觉得说得比较言简意赅了,对于我这个刚入Python的新手来说,也基本可以避免今后变量的赋值使用错乱的问题。这里我们简单的将Python中的标准数据类型分为两类:不可变数据类型:int、float、string、boolean可变(组合)数据类型:列表(list)、字典(dict)、集合(set)...

2020-03-15 20:44:52 169

原创 Hexo yilia 主题添加相册功能

当我们使用hexo博客框架中的yilia主题时,在我们这一博客页面中,原作者Litten并未帮我们添加相册这一功能。这时,如果想让我们的博客拥有相册的功能,就需要我们自行添加改变、添加主题中的相关参数。从网上百度了很多,看了许多的博客,还是遇到了一些坑爬不过去。最终,还是请教了一个小伙伴才得以解决。一、博客页面添加相册首先,打开cmd进入blog的source目录下,创建photos文件夹。...

2020-03-15 20:41:30 819

空空如也

空空如也

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

TA关注的人

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