自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 查找算法重点学习——二分查找

查找分为四种:顺序查找、分块查找、折半查找以及哈希查找。那么二分查找就是折半查找的一种,里面使用了递归。其思想跟我之前写过的快速排序很类似;但是这是这个查找算法,那么我们来写写实现它的思路吧~首先我们得知道一个点,如果需要用到二分查找的数组一定是一个有序的数组,无序的数组是使用不了的。满足上面的条件之后,首先找到中点,然后将需要查找的值跟中点值进行比较,其中有三种情况:①若比中点值大,则在中点右边。②若比中点值小,则在中点左边。③若就等于中点值。这里有两种做法,第一种是直接返回数组下标,但是这样是

2020-09-29 14:09:36 212

原创 排序算法——希尔排序(两种实现)

之前写了快速排序和归并排序,虽然这两种排序算法问的最多,也具有一定的难度。希尔排序作为插入排序的一种,里面有着插入排序的影子。我会讲解一下希尔排序的两种实现方式。对于希尔排序,重点在于增量。什么是增量,即希尔排序会分组进行操作,而分组的依据就是通过增量来执行的。那么增量又是什么呢?我画图来讲解一下吧~知道了增量那么就很简单了。就是根据组内的值进行比较即可。那么希尔排序有两种方法实现:①交换法(速度慢,不建议用)②移位法(利用插入排序的思想进行交换法的优化,速度快,建议希尔排序用这个方法实现)①交

2020-09-28 23:02:00 559

原创 排序算法重点学习——快速排序

对于这个见怪不怪的面试经常会问的问题:快速排序是如何实现的?能否现在写出来。那么快排到底是什么呢?快排利用递归的方式进行排序,那么为什么我在写归并排序的时候说快排和归并排序有着相同的思想呢?我用图来解释一下快排再去对比一下归并,去看看有什么相同的地方吧~以数组{8 , 4 , 3 , 7 , 2 , 6 , 1,5}为例:代码实现: /* arr为需要排序的原数组 left代表左头指针 right代表右尾指针 */ public static void quickSort(int arr[

2020-09-28 16:23:51 182

原创 排序算法重点学习——归并排序

这里讲的是我对归并排序的一点理解和如何去实现。归并排序算法算是排序中比较难的一个了,主要是其涉及到利用分治的思想去解决问题。其主要是将一个大问题分成小问题。然后每个小问题去进行处理和解决。假如有一个数组需要去排序,数组中的数据如下:int arr[] = {8 , 4 , 3 , 7 , 2 , 6 , 1,5};我们要去对其进行排序——>大问题那么将大问题分成子问题:切半——>{8,4,3,7} 以及{2,6,1,5}那么子问题也不好解决,继续分解:**每个子问题切成两半:{8,4}

2020-09-27 19:36:13 173

原创 HashMap学习整理与记录

HashMap是由什么数据结构组成?答:在1.8之前,HashMap是由链表+数组组成,而在1.8之后HashMap增加了红黑树,也就是由链表+数组+红黑树组成。HashMap为什么要添加红黑树这种数据结构在底层?答:首先HashMap为了均匀的存储数据,就会使用到更好的HashCode算法去计算索引值,而再怎么好的HashCode算法也会造成有时候哈希冲突过多,链表存储的数据过多造成链表过长。而要知道链表的查询时间复杂度为O(n),过长时就会导致HashMap的查询性能降低,而HashMap的优势就

2020-08-09 09:42:55 155

原创 java框架SSM学习——拦截器

在第一节写SpringMVC的运行原理的时候讲过,每个组件之间都是按部就班的运行的,如下图(部分图):都是按步骤每步每步走,当请求没有发送,前端控制器没收到请求,就不会去找处理器映射器。Controller是使用了Servlet为核心,因为是SpringMVC使用了Servlet为核心,那么每个请求都会拦截下来运行,那么我们想要在它运行前后先拦截下来进行条件判断,这样就出现了拦截器。那怎么用代码实现使用拦截器呢?首先搭建环境Maven配置 <properties> <pr

2020-07-06 11:13:13 315

原创 java框架SSM学习——异常处理器

我们在写代码的时候经常有运行时异常,这种异常是在编译期并不能被编译器标注出来的,而是在运行后出现异常信息。当我们写表现层时我们不对运行时异常做一定的处理,就会导致如果功能有异常,那么返回异常信息到用户页面会非常的不友好。如下:异常信息密密麻麻导致页面非常的不好看,那我们需要对异常信息做一定的处理。那怎么对异常进行处理才能得到友好点的页面呢?SpringMVC为我们提供了HandlerException这个父类,我们需要编写异常类,以及异常处理类,最后通知SpringMVC有异常处理类,让它将异常处理类变

2020-07-06 10:35:53 175

原创 java框架SSM学习——文件解析器

在很多用户页面上不止需要填入数据,又时候需要上传文件,这是比较常见的,那么SpringMVC是如何完成文件上传的呢?SpringMVC对上传文件有着良好的支持。它是通过使用MultipartRelover也叫Multipart解析器处理的。对此组件的初始化有两种方式——java和XML配置。这里我只讲解使用XML配置。但是下面我将用传统的上传文件和SpringMVC的上传文件模式进行对比。观察一下哪个比较好。基础环境搭建Maven配置在以前的Maven配置上增加了两个jar包。 <prope

2020-07-06 10:11:45 768

原创 java框架SSM学习——SpringMVC的返回值处理

在我们完成了Controller方法的执行,拿到了需要的数据,那怎么去处理后序的工作呢?我们该如何去将数据放到最终页面上呢?怎么去实现页面的跳转呢?这就涉及到视图解析器的解析了,以下有几种返回值的形式:①返回String类型,我们之前一直在用②无返回值类型③返回ModelAndView④使用关键字直接跳转页面还是新建一个通用的SpringMVC的环境,等下每个类型再加入各自的代码进去测试。Maven配置 <properties> <project.build.sou

2020-07-05 16:43:05 381

原创 java框架SSM学习——SpringMVC各种元素标签的使用

在SpringMVC框架中,基本都是使用注解去实现框架的功能。以下则是需要学习的注解,一般虽然只有那么几个重复使用,但是知道怎么用以及适用范围还是很有必要的。我们先搭建好SpringMVC的环境,然后依次的将每个注解的代码加入演示。Maven配置 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.sour

2020-07-05 15:03:40 320

原创 java框架SSM学习——SpringMVC环境搭建以及部署到Tomcat上

在这里我会使用一个入门级小案例去演示全过程1.新建Maven工程项目选择Create from archetype后在里面找到首先修改<properties><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source&

2020-07-04 20:28:07 811

原创 java框架SSM学习——SpringMVC是什么?

基础Jdbc描述说到SpringMVC,学过基础的jdbc都应该知道,基础的javaweb操作是直接使用serlvet/jsp进行表现层的交互。什么是表现层的交互呢?即服务器与客户端的数据交互,比如客户通过页面(View)来访问我们的系统,点击查询功能查询了这个用户的数据,然后服务器根据页面的按钮去获取调用的方法,然后去执行操作,拿到了此用户的用户信息,然后再通过Controller去调用指定的方法去指定某个返回页面,且将拿到的数据存入Request的Session域中。然后页面通过特定的EL表达式去获取

2020-07-04 15:05:54 732

原创 java框架SSM学习——表现层SpringMVC学习目录

SpringMVC是基于DispatcheServlet生成的框架,其实里面封装了数据传输的模式。那么我们需要学习什么就完成了对他的学习呢?1.那就是知道SpringMVC到底是什么?2.还得知道如何去配置一个简单的SpringMVC项目到Tomcat上(我用的是Community IDEA)3.SpringMVC各种标签元素的使用4.SpringMVC的返回值处理5.SpringMVC组件使用——文件解析器6.SpringMVC组件使用——异常处理器7.SpringMVC组件使用——拦截器

2020-07-04 13:36:20 230

原创 java框架SSM学习——Spring的事务控制

在讲到SpringAOP的时候,我们是自己去增强事务控制,而这些功能,Spring框架都为我们准备好了,而我们只要去使用就可以了。当然,也别觉得SrpingAOP就只有增强事务的功能,只要是想要增强的方法都可以使用AOP去增强。那么我们怎么去使用呢?XML配置声明式事务spring中基于XML的声明式事务控制配置步骤 1.配置事务管理器 2.配置事务的通知 此时我们需要导入事务的约束 tx名称空间和约束,同时也需要aop的

2020-06-21 15:37:16 309

原创 java框架SSM学习——JdbcTemplate使用

其实JdbcTemplate有点类似于我们之前使用的jdbcutils工具,在JdbcTemplate中,操作数据库的功能Spring都封装好了,我们只要利用IoC操作注入JdbcTemplate对象即可使用。先用一个小案例来演示用法。账户实体类package com.domain;import java.io.Serializable;//账户的实体类public class Account implements Serializable { private Integer id;

2020-06-21 11:06:00 258

原创 java框架SSM学习——注解实现AOP操作

避免代码过于混乱,我又写了个小案例,代码很简单。Maven配置<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</ver

2020-06-20 15:58:52 367

原创 java框架SSM学习——XML实现AOP操作

在写之前先提醒一下,大部分代码还是沿用上一篇的,在其基础上更改。若没有案例代码的,可以去我文章的上一篇中查找。但是我在此需要对代码进行一部分的修改:①获取连接的方式②新增事务类连接工具类ConnectionUitlspackage com.utils;import javax.sql.DataSource;import java.sql.Connection;//连接的工具类,用于从数据源中获取一个连接,并且实现和线程的绑定public class ConnectionUtils {

2020-06-20 15:09:33 249

原创 java框架SSM学习——AOP概念以及为什么要用AOP?

如果说IoC是Spring的核心,那么面向切面编程就是Spring最重要的功能之一。我们用一个操作数据库事务的案例来演示一下,因为AOP单从理论上讲太过于抽象。但先了解一下术语,再去看案例的解释就能有一定的了解。里面操作数据库我选择用外部工具dbutils。(代码量大,但是在后面都会一直用这个案例来修改)术语切面(Aspect):所有需要增强的方法。通知(Advice):切面开启后,切面的方法的调用顺序定义。引入(Introduction):引入允许我们在现有的类里添加自定义的类和方法。切点(Po

2020-06-20 10:48:00 574

原创 java框架SSM学习——用注解实现IoC操作

在前两篇中以及阐述了IoC是什么以及依赖注入的方式,XML式配置IoC也已经演示完毕,那么现在看看用注解来代替Xml配置会不会更加的复杂,首先案例还是在前面案例的基础上进行修改,我们先来讲一下各种注解的作用,然后再使用案例来演示一遍即可注解讲解用于创建对象的注解他们的作用就和在XML配置文件中编写一个标签实现的功能是一样的。@Component作用:把当前类对象存入spring容器中。属性value:用于指定bean的id,当我们不写时,他的默认值是当前类名,且首字母改小写。@Controll

2020-06-19 16:26:58 231

原创 java框架SSM学习——用XML实现IoC操作

在进行IoC操作的时候,要清楚的了解到控制反转的原理。而在代码中去使用,是为什么干什么?是为了降低耦合性,那如何去降低耦合性呢?其实如果过多的去自己新建对象,那么类与类之间的耦合性就会变强,那么IoC解决的就是让spring去帮我们新建对象,而我们只要通过xml/注解的方式去告诉spring,我们需要什么对象。案例一:无DI的Ioc操作(XML)首先我们先用在上一篇的案例的代码,我们稍微修改一下,因为避免有人没有看,我还是将代码贴出来。新建IAccountDao接口package com.dao;

2020-06-19 11:38:28 155

原创 java框架SSM学习——IoC概念以及为什么要用IoC?

什么是IOC?IOC全称为Inversion of Control,中文翻译为控制反转。那到底什么是控制反转?我们学到这里,应该对调用dao层和service层有一定的了解,首先来看一个小案例:转账dao层接口类package com.dao;//账户的持久层接口public interface IAccountDao { //模拟保存账户 void saveAccount();}转账dao层接口实现类package com.dao.impl;import com.d

2020-06-18 16:42:06 570

原创 java框架SSM学习——业务逻辑层Spring学习目录

在此学习目录下,我会以XML和注解形式都以案例来讲解Spring框架的两大核心:IOC——控制反转IOC概念以及为什么要用IOC?用XML实现IOC操作用注解实现IOC操作AOP——面向切面编程AOP概念以及为什么要用AOP?用XML实现AOP操作用注解实现AOP操作以及Spring封装的轻薄型数据库JdbcTemplate的使用最后就是Spring的事务管理...

2020-06-18 15:22:25 540

原创 java框架SSM学习——持久层Mybatis之延迟加载和缓存

延迟加载举个例子来说吧:如果查询用户并且关联查询用户的账户信息。如果先查询用户信息就可以满足要求,当我们需要查询账户信息的时候再去查询账户信息。把用用户信息去查询账户信息的这一过程进行延迟处理,就被称为延迟加载。 延迟加载有什么好处呢?那我们都知道,单表查询的速度肯定是要比多表要快的,那么当我们只需要查询单表,但又有时候要联合多表查询,那么开启延迟加载就是最好的选择,既可以提升查询速度,当要使用到多表的时候就可以级联。在这我们用一个案例来讲解一下。第一步:User表以及Account表建表信息我就不给

2020-06-08 17:24:53 217

原创 java框架SSM学习——持久层Mybatis之多表查询

对于多表查询,不单单只有Mybatis的持久层操作中存在,很多数据库操作中这也是需要学会的。那么在之前的对数据库的简单CRUD操作中,基本都是单表查询,那么现在我来讲一下多表查询在Mybatis中如何实现。多表查询多表查询中有这么四种方式:①一对一②一对多③多对一④多对多其中多对一在Mybatis中是并没有说明的,但是我罗列出来其实是好分类一点,主表为单表分为一类以及主表为多表分为一类,那么我们按照顺序去讲解。第一步:需要创建两个表,我原本有一个User表,而现在我新建一个Account表。

2020-06-08 16:11:19 260

原创 Java框架SSM学习——持久层Mybatis之动态SQL

动态SQL为什么要用动态SQL?如果使用JDBC或者类似Hibernate等其他框架,很多时候需要去根据需要去拼接SQL语句,这是一个很麻烦的事情。因为在某些查询中,需要多个条件,在使用其他框架的时候,需要用大量的Java代码进行判断,可读性比较差。而Mybatis不一样,其中提供了对SQL语句动态的组装能力,使用XML的几个简单的元素就可以去实现动态拼接SQL语句。对条件的判断都放在了XML配置文件中,大大减少了代码量。但因为注解的配置功能受限,在此也不对注解中配置SQL作讲解。if元素此元素相当

2020-06-08 11:46:05 161

原创 Java框架SSM学习——持久层Mybatis之XML配置的各种标签和功能

首先在前面不管是否用过,在本节我都会将大部分罗列出来,自行参考。Maven配置文件<dependencies></dependencies><dependency></dependency><groupId></grouoId><artifactId></artifactId><version></version>在这些标签里,<dependency></

2020-06-07 17:24:35 471

原创 Java框架SSM学习——持久层Mybatis之基于XML的CRUD操作

在之前目录下的Mybatis中我已经写了一个小的案例,里面有一个简单的查询数据库操作,那么在这篇文章里我会将CRUD操作重新讲一遍,这里面会有下一节会讲到的标签的用法,我会稍加使用,如果有疑惑可以在下一节的《XML配置的各种标签使用和功能》中了解到。因为前面讲了查询操作,有一点基础,我直接将CRUD操作全部一起讲就可以了。首先配置好Mybatis主配置文件这里我新建了SqlMapConfig.xml文件。里面的代码如下(dtd外部文件头部的代码解释在第一节讲了就不重复了)<?xml versio

2020-06-07 09:46:36 155

原创 java框架SSM学习——持久层Mybatis之动态代理模式

java的动态代理模式有哪些?①JDK动态代理②CGLIB动态代理③Javassist④ASM…那我们需要学习哪个?我在本目录下我只讲解JDK动态代理和CGLIB动态代理1.JDK动态代理此动态代理是JDK自带的功能。我通俗点讲,里面有名词:调用者,真实对象和代理对象比如在一个软件公司里,有客户来找此公司设计软件,但是首先接待客户的并不是真正的软件工程师,而是专门负责谈商务业务的人,来问你的需求以及各项事宜,包括讲完需求后需要的薪资、以及签订什么样的合同之类的,也包括失败以后是否终止合作

2020-06-06 16:59:49 228

原创 java框架SSM学习——持久层Mybatis之环境搭建

创建的项目中使用Mybatis作为持久层的话,需要多个jar包的支持,如org.mybatis,mysql,log4j,junit等,如果一个个导入太麻烦,所以要用到Maven依赖库(在以前我写的文章里有Maven下载已经配置的全过程)首先新建project,选择Maven项目,然后点击next,填好GroupId和ArtifactId即可next和finish下一步:点开目录下的pom.xml,得到的页面为:利用标签 dependencies和depandency去导入需要的jar包比如我

2020-06-06 13:30:38 190

原创 java框架SSM学习——持久层Mybatis学习目录

注意:这个学习目录我是用XML配置文件开发,注解开发暂不考虑,往后再讲。因为我要讲动态代理,所以编写实现类的方法我以后单独再讲。Mybatis学习目录1.Mybatis的环境搭建2.动态代理(重要)3.基于XML的CRUD操作(重要)4.XML配置的各种标签使用和功能(掌握)5.动态Sql(掌握)6.多表查询(掌握)7.延迟加载和缓存(掌握)...

2020-06-06 10:19:46 232

原创 JAVA框架类SSM学习准备之——IDEA的MAVEN配置

JAVA框架类SSM学习准备之——MAVEN配置首先要去下载MAVEN包点击这里去往下载地址.下载完是一个压缩包,解压到当前文件夹即可然后配置环境变量①我的电脑——>属性——>高级系统设置——>环境变量——>系统变量②在系统变量里新建,然后变量名:MAVEN_HOME变量值为下载解压的文件的位置。比如我的就是:然后确定即可③在系统变量里的Path里新建%MAVEN_HOME%\bin如图:然后测试有没有成功,用DOS命令mvn- version 打在cmd

2020-05-16 10:54:43 159

原创 打卡每日阅面经——面试篇(一)

第一天(2020/4/27)1 HTTP协议之TCP传输协议——三次握手在建立TCP连接时,客户端和服务器之间需要发送三个SYN包,三次握手是为了确认客户端和服务器的发送信息和接受信息是否正常。其实他们是连接指定端口,建立TCP连接并交换序列号(SEQ)和确认号(ACK),交换TCP窗口大小信息。①第一次握手客户端向服务器发送一个SYN报文包,同时状态变为SYN_SEND。客户端发送的SY...

2020-04-28 23:48:49 254

原创 基于JDBC的JavaWeb开发项目之——网上教务系统

基于JDBC的JavaWeb开发项目之——网上教务系统在这个文章里,我会详细的解释JavaWeb其中的一个框架——MVC框架来完成网上教务系统这一个项目。这个项目是使用JDBC去连接数据库,使用了JSP/servlet,在这个文章里我会详细写出一整个项目是如何写出以及思路是怎么样的。这算是比较简单的JavaWeb开发了,适合新手的学习,对有着基础编程能力的人有一定的帮助吧。如果是想要学习更加高阶...

2020-04-22 18:24:57 1050

空空如也

空空如也

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

TA关注的人

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