自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Github+Hexo+腾讯云域名实现个人博客搭建

文章目录第一步: 环境准备第二步: Hexo下载与初始化第三步: 本地运行Hexo第四步:Github仓库配置第五步: 生成密钥绑定密钥第六步: 发布到Github第七步: 域名映射第一步: 环境准备Windows 64位操作系统已安装Node.js已安装Git安装完成后查看对应的版本信息,测试是否安装正确,在命令提示符中分别输入node -v #查看node版本npm -v #查看npm版本git --version #查看git版本运行效果如图所示[外链图片转存失败

2021-12-09 16:17:38 1541

原创 SpringMVC学习(一)——上手

文章目录好久不见SpringMVC的第一个程序配置版注释版小结好久不见前段时间由于开题原因,耽误了自己的学习进展和博客的更新,以后继续啦!~~SpringMVC的第一个程序配置版程序结构如下1、新建一个Moudle , 02-hellomvc , 右键添加web的支持!2、确定导入了SpringMVC 的依赖!3、配置web.xml , 注册DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app

2021-11-03 20:45:22 181

原创 Spring学习(四)——AOP底层:代理模式

文章目录代理模式的形象理解静态代理动态代理提炼工具类代理模式的形象理解代理模式分为:静态代理和动态代理静态代理角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人!代码步骤:1、抽象角色:接口//租房public interface Rent { public void rent();}2、真实角色:被代理的房东//房东public class Host

2021-10-11 14:19:53 289

原创 Spring学习(三)——Bean的自动装配以及注解开发

文章目录Bean的自动装配环境搭建ByName自动装配ByType自动装配@Resource和@Autowired的区别:注解开发Bean属性的注入web开发的衍生注解小结Java方式配置SpringBean的自动装配自动装配是Spring满足bean依赖一种方式,Spring会在上下文中自动寻找,并自动给bean装配属性。在Spring中有三种装配的方式:在xml中显式的配置;在java中显式配置;隐式的自动装配bean【重要】环境搭建在pojo中建三个类,一个人有两个宠物<be

2021-10-06 20:48:04 214

原创 Spring学习(二)—— 对象创建方式及依赖注入

文章目录对象创建方式配置依赖注入构造器注入Set方式注入拓展方式注入对象创建方式默认使用无参构造器创建当我们需要使用有参构造器时,有以下几种方式:1、下标赋值<!--第一种方式:下标赋值 --><bean id="user" class="com.kuang.pojo.User"> <constructor-arg index="0" value="狂神说Java"/></bean>2、类型<!--第二种方式:通过类型的

2021-10-05 20:28:42 335

原创 Spring学习(一)——上手

文章目录介绍一些值得闲聊的优点组成拓展IOC思想认识原来的做法IOC思想IOC本质HelloSpring总结介绍一些值得闲聊的Spring会被翻译成春天,也就是给软件行业带来了春天:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!2002,首次推出了Spring框架的雏形:interface21框架,虽然这个不是很常见,甚至你的面试官也不一定熟悉,但是你能说出它的起源,是你面试时吹水水的资本!Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于

2021-10-04 21:01:32 138

原创 Mybatis学习(四)—— 动态sql

文章目录为什么用ifchoose (when, otherwise)trim (where, set)为什么用当我们需要根据不同的情形生成不同sql语句的情况下,就需要动态sql来实现了。比如之前超市管理系统项目中的搜索功能,可以无条件搜索,也可以根据姓名关键字搜索,也可以根据角色分类搜索等等不同情况,用动态sql来实现就轻而易举了。在MyBatis之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis3 替换了之前的大部分元素,大大精简了元素种类,现在要学习

2021-10-04 09:43:03 152

原创 Mybatis学习(三)—— 多对一 和 一对多

文章目录介绍多对一环境搭建按查询嵌套处理按照结果嵌套处理一对多实体类按照结果嵌套处理小结介绍其实这个好理解就拿学生和班主任的关系来说,一个教室的学生有很多个,对应的班主任就一个。学生对应班主任,就是多对一的关系班主任对应学生,就是一对多的关系下面我们在程序中实现联表查询多对一环境搭建首先要在数据库中建立两个有关联的表学生表里的tid就是老师的id工程建立顺序如下:导入Lombok新建实体类Teacher,Student,使用Lombok注解建立Mapper接口建立Mapp

2021-09-29 21:24:30 155

原创 Mybatis学习(二)——Log4j日志

日志是一个很好的排错助手。其中要掌握的就是STDOUT_LOGGING和Log4j。STDOUT_LOGGING实现起来比较简单。对mybaties-config.xml增加如下设置即可。<settings> <!--标准的日志工厂实现--> <setting name="logImpl" value="STDOUT_LOGGING"/></settings>主要记录一下Log4j的配置和使用配置步骤:1、首先在pom中导入依

2021-09-25 20:34:22 164

原创 Mybatis学习(一)—— CRUD

首先创建一个普通的Maven项目导入必要的依赖 <!--导入依赖--> <dependencies> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>

2021-09-22 19:42:15 145

原创 力扣刷题(二)—— 链表部分

文章目录1、首先要掌握2、21题合并两个有序链表3、83题删除链表中的重复元素4、141题环形链表5、203题移除链表元素6、206题反转链表1、首先要掌握链表包括单链表、双链表和环形链表,环形链表可以解决约瑟夫问题。链表的入口称为头节点head。插入/删除时间复杂度查询时间复杂度适用场景数组O(n)O(1)数据量固定,频繁查询,较少增删链表O(1)O(n)数据量不固定,频繁增删,较少查询2、21题合并两个有序链表将两个升序链表合并为一个新的 升序

2021-09-21 11:00:06 138

原创 javaweb学习(六)——从MVC角度来理解SMBMS项目

文章目录从MVC角度来理解SMBMS项目登录功能ViewControllerModel业务层Dao层总结从MVC角度来理解SMBMS项目登录功能View首先是V(View)层,也就是展示数据的前端界面,给servlet提供数据发起请求的一环:Login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><html>&lt

2021-09-20 18:42:53 152 1

原创 力扣刷题(一)——数组部分

使用练习二级标题 字体强调内容 双星号斜体 单星号删除线 双波浪线有序列表回车自动生成1+空格无序列表加号+空格Ctrl+T自动生成列表,选择对应的行列数二级标题分割线 三个-加回车插入本地图片拖入即可[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NAb0TaMB-1631672845821)(C:\Users\Tunan\AppData\Roaming\Typora\

2021-09-16 15:33:04 195

原创 Javaweb学习(五)——MVC及过滤器

文章目录什么是MVC过滤器Filter实现登录拦截什么是MVCMVC三层架构:Model View Controller 模型、视图、控制器Model业务处理 :业务逻辑(Service)数据持久层:CRUD (Dao - 数据持久化对象)View展示数据提供链接发起Servlet请求 (a,form,img…)Controller (Servlet)接收用户的请求 :(req:请求参数、Session信息….)交给业务层处理对应的代码控制视图的跳转过滤器Filter

2021-09-11 18:18:52 328 1

原创 Javaweb学习(四)——javabean

文章目录概念及用途实体类javabean在JSP中的使用jsp:useBeanjsp:setPropertyjsp:getPropertyJSP操作示例概念及用途首先javabean是一个遵循特定写法的Java类,通常有下面的特点:必须有一个无参构造属性必须私有化要有对应的get/set方法一般javabean的作用是用来和数据库表单做映射ORM一个表就对应一个类一个字段就对应一个属性一行记录就对应一个对象实体类比如下面的people表:idnameageaddre

2021-09-11 15:09:13 275

原创 Javaweb学习(三)——cookie和session

在网页的使用中,打开一次浏览器,访问了各种网页链接(web资源),然后关闭浏览器的过程,称为一次会话。而保存会话的两种技术,就是Cookie和SessionCookie客户端技术 (响应,请求)Cookie是把用户的数据写给用户的浏览器,浏览器保存 (可以保存多个)Session服务器技术,利用这个技术,我们可以把信息或者数据放在Session中!Session把用户的数据写到用户独占Session中,服务器端保存 (保存重要的信息,减少服务器资源的浪费。使用场景比如保存登录信息或者购

2021-09-06 20:58:56 97

原创 Javaweb学习(二)——Servlet

文章目录Servlet简介HelloServletServlet原理ServletContext共享数据获取初始化参数请求转发读取properties资源Servlet简介Servlet就是sun公司开发动态web的一门技术,如果你想开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Serlet接口把开发好java类部署到web服务器中。这里的web服务器,我们使用的是TomcatHelloServletSerlvet接口有两个默认的实现类:HttpServlet,Gene

2021-09-01 16:15:44 138

原创 JavaWeb学习(一)——熟悉概念及使用Tomcat

了解一些概念web开发分为静态web和动态web一个web应用由多部分组成(静态web,动态web)html,css,jsjsp,servletJava程序jar包配置文件(Properties)静态web:所有人看到的网页不会发生改变,技术栈:CSS,JavaScript静态web的缺点:Web页面无法动态更新,所有用户看到都是同一个页面(轮播图是伪动态)它无法和数据库交互(数据无法持久化,用户无法交互)动态web:提供给所有人看的数据始终会发生变化,每个人在不同的时间,

2021-08-29 21:30:48 128

原创 MySQL学习(七)——JDBC

本博客总结一篇关于java操作数据库的实践。文章目录上手执行步骤以及详解首先使用Java对数据库进行操作需要一个用于执行SQL语句的API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,这就是我们所使用的JDBC,它使数据库开发人员编写数据库应用程序更加方便。上手首先放一张示意图当我们安装好数据库(MySQL)以及java的编程环境之后,我们所编写的程序并不能直接操作数据库和其中的数据,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。对上图来说,我们只

2021-08-29 15:43:45 158 1

原创 MySQL学习(六)——事务和索引

文章目录了解一下事务什么是事务事务的原则基本语法代码测试了解一下索引索引的作用索引的分类主键索引(Primary Key)唯一索引(Unique)常规索引 (Index)全文索引 (FullText)索引这里只是简单介绍一下,以供了解,具体的索引知识有许多,后续继续学习了解一下事务什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的原则简记就是ACID原子性(Ato

2021-08-27 20:44:20 136

原创 MySQL学习(五)——函数

这一部分较简单,没有必要记住所有的函数,只需要知道可以使用函数做一些事情,具体怎么做可以用时百度查询即可文章目录常用函数数据函数字符串函数时间日期函数系统函数聚合函数小结(常用)常用函数数据函数SELECT ABS(-8); /*绝对值*/ SELECT CEILING(9.4); /*向上取整*/ SELECT FLOOR(9.4); /*向下取整*/ SELECT RAND(); /*随机数,返回一个0-1之间的随机数*/ SELECT SIGN(0); /*符号函数: 负数返回

2021-08-26 17:48:39 101 1

原创 MySQL学习(四)——数据库查询操作

文章目录DQL语言SELECT语法WHERE条件语句连接查询Join自连接排序和分页子查询(嵌套查询)DQL语言DQL( Data Query Language)数据查询语言 ,是数据库中最重要的语句,增删改查中查的比重所占最大,它的介绍如下:查询数据库数据 , 如SELECT语句简单的单表查询或多表的复杂查询和嵌套查询是数据库语言中最核心,最重要的语句使用频率最高的语句SELECT语法SELECT [ALL | DISTINCT]* | table.* | [table.field1

2021-08-25 21:20:27 250

原创 MySQL学习(三)——DML语言管理数据库

文章目录DML语言INSERT 插入UPDATE 修改DELET 删除清空数据表命令DML语言数据库意义 : 数据存储、数据管理管理数据库数据方法:1)通过SQLyog,Navicat等管理工具管理数据库数据2)通过DML语句管理数据库数据DML语言 :数据操作语言,用于操作数据库对象中所包含的数据包括 :INSERT (添加数据语句)UPDATE (更新数据语句)DELETE (删除数据语句)INSERT 插入命令格式如下INSERT INTO 表名[(字段1,字段2,字段3

2021-08-24 20:35:05 140

原创 MySQL学习(二)——数据库操作

文章目录结构化查询语句分类数据库操作创建数据表数据值和列类型数据表存储位置查看表操作修改表操作结构化查询语句分类名称解释命令DDL(数据定义语言)定义和管理数据对象,如数据库、数据表等CERATE、DROP、ALTERDML(数据操作语言)用于操作数据库对象中所包含的数据INSERT、UPDATE、DELETEDQL(数据查询语言)用于查询数据库数据SELECTDQL(数据控制语言)用于管理数据库,包括权限和数据更改GRANT、commit、rol

2021-08-22 17:14:20 230 7

原创 MySQL学习(一)——初识MySQL

目录概念介绍数据库的安装可视化工具概念介绍数据库(DB):DataBase,长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”数据库管理系统 ( DBMS):DataBase Management System ,数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据MySQL:是现在流行的开源的,免费的 关系型数据库,特点是免费 , 开源数据库,小巧 , 功能齐全,使用便捷,可运行于Windows或Linux操作系统,可适用于中小型甚至大型网站应用。数据库的安装

2021-08-21 21:25:37 115

原创 初识Git

目录Git介绍版本控制分类Git使用下载启动常用Linux命令常用Git命令Git实操理论工作流程项目搭建创建工作目录搭建本地仓库克隆远程仓库查看文件状态Git介绍因为需要频繁的版本迭代或者版本修改,导致我们会累计许多过去的版本,在自己的电脑上管理起来相当的麻烦,参考网上一个段子因此需要一种对版本进行控制的技术,也就是版本控制器,我们学习现在最常用的Git,学习它可以让我们:实现跨区域多人协同开发追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发、提高开发效率

2021-08-21 16:06:56 212

原创 数据结构(十三)——二叉排序树

二叉排序树(BST): (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点, 要求左子节点的值比当前节点的值小, 右子节点的值比当前节点的值大。特别说明: 如果有相同的值, 可以将该节点放在左子节点或右子节点比如针对数据 (7, 3, 10, 12, 5, 1, 9) , 对应的二叉排序树为:二叉排序树的建立与遍历package binarysorttreee;public class BinarySortTreeDemo { public stat

2021-08-20 19:17:43 582

原创 算法学习(十)——赫夫曼编码用于数据压缩

目录定长编码&变长编码赫夫曼编码介绍概念介绍实现流程代码实现定长编码&变长编码定长编码变长编码赫夫曼编码介绍概念介绍赫夫曼编码也翻译为 哈夫曼编码(Huffman Coding), 又称霍夫曼编码, 是一种编码方式, 属于一种程序算法赫夫曼编码是赫哈夫曼树在电讯通信中的经典的应用之一。赫夫曼编码广泛地用于数据文件压缩。 其压缩率通常在 20%~90%之间赫夫曼码是可变字长编码(VLC)的一种。 Huffman 于 1952 年提出一种编码方法, 称之为最佳编码。实

2021-08-19 17:55:54 453

原创 数据结构(十二)——赫夫曼树

给定 n 个权值作为 n 个叶子结点, 构造一棵二叉树, 若该树的带权路径长度(wpl)达到最小, 称这样的二叉树为最优二叉树, 也称为霍夫曼树(Huffman Tree)。在正式介绍霍夫曼树之前,先介绍一下带权路径长度WPL(weighted pathlength):树的带权路径长度规定为所有叶子结点的带权路径长度之和, 记为 WPL ,权值越大的结点离根结点越近的二叉树才是最优二叉树。路径和路径长度: 在一棵树中, 从一个结点往下可以达到的孩子或孙子结点之间的通路, 称为路径。 通路中分支的数目称

2021-08-17 21:02:17 223

原创 数据结构(十一)——顺序存储二叉树

目录顺序存储二叉树特点前序遍历顺序存储二叉树从数据存储来看, 数组存储方式和树的存储方式可以相互转换, 即数组可以转换成树, 树也可以转换成数组,看下面的示意图。特点顺序二叉树通常只考虑完全二叉树第 n 个元素的左子节点为 2 * n + 1第 n 个元素的右子节点为 2 * n + 2第 n 个元素的父节点为 (n-1) / 2n : 表示二叉树中的第几个元素(按 0 开始编号如图所示)前序遍历//编写ArrayBinaryTree,实现顺序存储二叉树class ArrBina

2021-08-16 21:07:34 146

原创 数据结构(十)——二叉树遍历

目录二叉树二叉树的遍历二叉树遍历代码二叉树二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分 。二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也

2021-08-15 15:23:31 133

原创 数据结构(九)——哈希表

文章目录一、HashSet、HashMap、HashTableHashMap和HashTable的区别HashMap和HashSet的区别二、模拟哈希表哈希表的介绍模拟题目一、HashSet、HashMap、HashTable首先Set表示了集合的无序元素,set中不允许有重复元素Map代表一种由多个key-value组成的集合,map集合是set集合的扩展HashMap基于hashing原理,通过put()和get()方法储存和获取对象。创建一个HashMapMap<String,.

2021-08-14 20:01:00 195

原创 算法学习(九)——查找算法汇总

目录标题插入算法介绍1.顺序(线性)查找顺序查找代码2.二分查找/折半查找二分查找代码3.插值查找插值插值代码4.斐波那契查找算法斐波那契查找代码插入算法介绍在Java中,我们常见的有四种方法:1)顺序(线性)查找2)二分查找/折半查找3)插值查找4)斐波那契查找下面我将逐一介绍1.顺序(线性)查找这个查找思路很简单,对要查找的序列进行循环匹配即可顺序查找代码//找到一個满足条件的就返回 public static int seqSearch(int[] arr, int value

2021-08-12 22:16:17 146

原创 算法学习(八)——排序算法汇总

文章目录注:完整代码请参见我的Github前言一、排序的分类二、算法学习1.冒泡排序(bubble sort)冒泡排序代码2.选择排序总结注:完整代码请参见我的GithubGithub链接前言排序也称排序算法(Sort Algorithm), 排序是将一组数据, 依指定的顺序进行排列的过程一、排序的分类1、内部排序指将需要处理的所有数据都加载到内部存储器(内存)中进行排序,这是程序员一般需要掌握的,也是面试中最常问到的一块。2、外部排序数据量过大, 无法全部加载到内存中, 需要借助.

2021-08-11 19:28:27 254

原创 算法学习(七)——回溯算法和八皇后问题

回溯(back tracking)算法是一种选优搜索法,又称为试探法、白话法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。八皇后问题:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。这个问题的解题思路很有趣,充分应用了回溯算法,详解如下:1、在8*8的二维数组中,从第一行开始依次尝试,每行落

2021-08-05 20:47:26 177

原创 Java中的递归调用机制

本文通过一个简单的递归程序,来记录一下java虚拟机中的递归调用机制。首先递归算法我们可以总结为:是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。我们所使用的程序如下:public class RecursionTest { public static void main(String[] args) { // TODO Auto-generated method stub test(4); } public static v

2021-08-03 20:51:19 838

原创 数据结构(八)——后缀表达式

目录关于中缀与后缀表达式中缀转后缀表达后缀表达的计算程序实现今天是很闷热的一天,还是坚持着学完既定课程并做好总结关于中缀与后缀表达式所述的 中缀表达式就是人们平时所看到的数学表达式形式,以人们易读的形式展现(数字之间夹杂着运算符)并且要考虑括号的优先计算。这样的表达式其实是不利于计算机计算的,关于中缀表达式的计算机计算实现可以看我上一篇博客伟大的计算机学者发明出一种后缀表达式,使计算机更容易计算数学式子,我们需要做的有两部分,第一部分是中缀转后缀表达,第二部分是后缀表达的计算中缀转后缀表达将中

2021-07-31 21:45:45 5131 1

原创 数据结构(七)——栈

目录栈栈的用处数组进行模拟栈实现计算器操作今天记录栈的相关学习栈栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。 允许插入和删除的一端, 为变化的一端, 称为栈顶(Top), 另一端为固定的一端, 称为栈底(Bottom)。栈的用处子程序的调用: 在跳往子程序前, 会先将下个指令的地址存到堆栈中, 直到子程序执行完后再将地址取出, 以回到原来的程序中。

2021-07-30 18:41:53 355

原创 数据结构(六)——环形链表

今天记录一下环形链表的学习,通过单向链表的分析,将一般的单向链表首位相接,也就是lastNode.next = firstNode用图示解释一下就是,没有准确意义上的头节点了。环形链表通常用来解决的问题就是约瑟夫问题问题描述如下一群小孩坐到一起围成一个圈做丢手帕游戏从某一个指定小孩开始,规定循环几个小孩的位置,循环到某个小孩就将其出圈以此循环往复,直到将所有小孩出圈问题描述的很形象,反正就是这样的一个算法,他的实现流程是1、首先创建一个节点,让first指向该节点,并自身形成环形he

2021-07-29 20:05:43 581

原创 Java技能点准备

备战一年时间,准备点满下面的技能点。特此留下此文监督自己。 Java基础扎实,有良好的代码规范 能够熟练使用API、注解、设计模式进行编程,并善于利用搜索工具解决问题 熟悉Java内常见的数据结构和算法,并利用简单算法进行编程 熟练使用PD、PLSQL、Navicat等工具进行数据库脚本抽取,SQL测试等操作 熟练使用IDEA、WebStorm等IDE进行开发,熟练使用junit、debug、Postman进行测试 熟练使用Maven工具进行工程的依赖管理、打包等操作,GIT工具进行代码的拉取

2021-07-29 11:40:58 120

空空如也

空空如也

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

TA关注的人

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