自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈几种设计模式

一、简单工厂模式。简单工厂模式一般是学习设计模式的基础。举个简单的例子:一个客户,想要获取水果(苹果、菠萝、香蕉等),他会去告诉一个水果工厂他想要的水果种类(比如通过名字告诉),然后水果工厂根据名字,生成对应的水果,并返回。我想要买一个菠萝,我告诉农场我想要的是菠萝,然后,农场给我生成一个菠萝。这就是简单工厂模式的一个例子。这里有几个点:1.菠萝:我想获得的产品,具体的产品类。2.水果:菠萝属于的是水果的一种,这是一个抽象类,或者接口。3.水果工厂:生成水果的工厂,是一个工厂类。

2022-04-13 11:34:32 304

原创 普利姆算法(Prim)的理解

普利姆算法,应用于全通图构建最小生成树。 比方说上图,有7个顶点。构建的最小生成树应该满足:用6(7-1)条边来连接这7个顶点,而且6条边的权值和最小。普利姆算法构建最小生成树的思路就是从点到线的进行构建。 首先要把这个图表示出来: 这样就表示好这个图了。 有了图之后怎么构建最小生成树?思路如下: 从节点A开始寻找的话,步骤如下: 代码:public class ...

2021-12-23 22:03:08 1022

原创 霍夫曼二叉树的创建图解

先了解一下相关的知识。

2021-12-17 00:02:44 601

原创 堆排序理解

堆排序是通过树结构完成的排序方式。前序知识:大顶堆、小顶堆。大顶堆:所有子节点都不比父节点大。如图: arr[i] >= arr[i*2+1] && arr[i] >= arr[i*2+2]小顶堆:所有父节点都不比子节点大。如:arr[i] <= arr[i*2+1] && arr[i] <= arr[i*2+2]有了这些知识就可以做堆排序了。步骤: 1...

2021-12-09 23:46:45 510

原创 插值查找的理解

二分查找法使用时,如果要查数组{1,2,3,4,....,100}中,靠近首尾两端的数时,二分的次数非常多。 插值查找能够简化二分的次数。前提: 1.这个数组必须全都是正整数。 2.必须是公差不为0的等差数组比如:能够直接定位到mid,简化了二分次数。代码:public static int insertValueSearch(int[] array,int target,int left, int ...

2021-12-02 23:28:29 184

原创 希尔排序图解

我们已经知道了冒泡排序法以及插入排序法。回顾一下原理。 冒泡排序:把相邻的2元素进行比较后交换的操作。用的是交换元素。 插入排序:把待插入的元素插入到对应的位置,其他元素要进行对应的后移(前移)。用到的思想是移动法。 那么希尔排序就是在这2种思想的基础上改进。图解:代码实现: 冒泡方式:public static void shellSort(int array[]){ ...

2021-12-02 16:21:12 440

原创 插入排序图解

图解如下:代码如下:public static void insertSort(int array[]){// //第一轮:结果应该是34,101,119,1// //做法:取第一个数,放到前面的有序数组里面去插入到相对应的位置// int target = array[1];//本次要插进去的数// int targetIndex = 1-1;//array[1]前面的各个数/...

2021-12-02 15:53:03 609

原创 基数排序的图解

基数排序是一种利用内存空间来换取运行时间的排序法,我们除了原数组,需要在内存中开辟新的空间进行排序。这种排序有相对应的局限性:1.只能排列正整数,小数,负数通通不行。2.当需要排列的数太多时,会造成内存不足的错误。 图解:代码实现:public static void radixSort(int array[]){ //定义一个二维数组,代表10个桶,每一个桶是1个1维数组 int[][] ...

2021-12-01 00:15:29 306

原创 二分查找法图解

一、找到(只能返回1个索引)的情况: 没有找到的情况: 总结:1.这个数组需要事先排好序才能进行 2.根据目标数与arr[mid]大小情况来判断递归的方向 3.终止递归的条件: 3.1:找到了对应数。返回mid就行 ...

2021-11-30 23:50:50 3677

原创 选择排序图解

记录排序算法2:选择排序。以下图为例: 第一轮实现: int minIndex = 0;//定义最小数下标 int min = array[0];//假定当前轮的第一个数是最小的 for (int j = 1; j < array.length; j++) {//依次和后面的数字进行比较 if (min>array[j]){//如果存在更小的数 min...

2021-11-28 14:25:11 189

原创 冒泡排序图解

记录排序算法的第一种:冒泡排序。以下图为例: 第一趟的代码实现:for (int j = 0; j < 3; j++) {//第一趟比较3次 if (array[j] > array[j+1]){//如果前面的数较大就要和后一个数字交换位置 int temp = 0;//临时变量同来交换 temp = array[j]; arra...

2021-11-28 13:49:00 594

原创 Servlet学习2:cookie和session

1.cookie 1.1 什么是cookie?cookie(储存在用户本地终端上的数据)_百度百科 (baidu.com)简单来说,浏览器通过给用户一个cookie的方式,存储一定的信息,代表用户曾经访问过。 1.2 cookie 储存信息自定义servlet类:public class CookieDemo extends HttpServlet { @Override protected void doGet(HttpServletR...

2021-11-11 23:19:30 487

原创 Servlet学习

目录准备工作使用工具:开发工具:IDEA、maven、tomcat。

2021-11-11 11:31:28 491

原创 Spring学习笔记

Spring框架是由软件开发的复杂性而创建的,该框架由一个叫Rod Johnson的程序员在 2002 年最早提出并随后创建。---百度百科 Spring框架由以下的模块构成,一一进行学习。 1、IOC容器 1.1之前Java代码的学习中,创建对象常常通过new构造器的方式实现。随着业务不断的复杂,代码量不断增加,有时候new的方式不太方便。这时候,可以使用Spring中IOC容器进行实例化对象。 ...

2021-10-24 22:29:26 96

原创 Mybatis中一些标签的使用

XxxMapper.xml中一些标签的使用可以帮助我们完成动态SQL的需求,这些标签有(部分):<where/> <if/> <choose/> <set/> <foreach/> 等等 如下代码:<select id="queryBlogIF" parameterType="map" resultType="blog"> select * from blog <...

2021-10-17 23:59:24 133

原创 Mybatis实现简单的多表联查

都知道通过mysql可以实现多表联查,前提是两个表中有互相关联的字段。那么通过Mybatis如何实现?这里记录一下简单的二表联查功能。 两个表的字段如下: 表中的数据:student:teacher: 情况1:我们想要查出所有的学生的所有字段(包括所对应的老师),如何做到呢。例: 准备:1.准备2个实体类,分别为Student和Teacher类Student:@Data//l...

2021-10-17 22:59:48 946

原创 Mybatis使用注解实现crud

都知道可以使用xml文件的方式对接口进行操作,填入sql语句等,然而使用注解,亦或是注解,xml文件一并使用的方式也是可以的。 如果单纯的使用注解开发,就不需要在创建接口所对应的xml文件,例如如下方法:List<User> getUsers();当采用xml文件方式时,xml文件中的代码为:<select id="getUsers" resultType="com.leo.pojo.User"> select * from ...

2021-10-14 22:25:14 80

原创 Mybatis中实现limit分页查询

方式一:采用map映射的方式进行分页 接口方法://limit查询用户List<User> getUserByLimit(Map<String,Object> map); xml文件:<!--limit查询--><select id="getUserByLimit" resultMap="UserMap" parameterType="map"> select * from mybatis.user...

2021-10-14 22:14:54 1666

原创 Mybatis中的ResultMap的用法

前提:有时候在我们创建数据库中的字段名和所对应的实体类中的属性名会出现不一致的情况,这时候在进行相关操作的时候就会出现错误,现在来看看解决方法。数据库中的字段名:实体类: 这里的pwd与password名称不同。进行查询的方法://根据ID查询用户User getUserById(int id); 由于名称不同,这里有2种解决方案。方式1:给字段名起别名,别名与实体类的属性名对应xml文...

2021-10-14 14:34:58 1694

原创 Mybatis-config.xml中的部分配置

mybatis的所有配置如下(来源官网): 在添加配置字段的时候,必须按照上图的顺序来进行 介绍部分的配置.properties(属性):用来引入外部文件. 我们在environments中配置了一套的environment如下:<environment id="development"> <transactionManager type="JDBC"/> <dataSource ...

2021-10-12 22:20:36 99

原创 Mybatis实现简单的增删改查功能

环境:上一篇文章 用到的数据库:User、 编写接口:UserMapper 和关联接口的配置文件 UserMapper.xml.注意:每当在接口中定义了一个抽象方法,UserMapper.xml就必须有相关的声明。xml中的id对应接口中的方法名,resultType对应了返回的类型 查询方法(全部对象):接口://查询全部用户List<User> getUserList();xml:<select...

2021-10-12 21:39:45 180

原创 简单Mybatis的搭建

大三在校学生自学java,目前照着“狂神“的mybatis教程学习Mybatis,此文章记录学习的过程。 环境:IDEA,Maven。 环境都搭建好之后,开始照着官网进行代码编写。 第一步:编写一个mybatis-config.xml的配置文件,照着官网的代码修改,把自己的信息添加。注意<mappers> <mapper resource="org/mybatis/example/BlogMapper.xm...

2021-10-12 21:08:43 174

原创 The JAVA_HOME environment variable is not defined correctly的解决方法

最近学习Maven工具以及Tomcat,官网下载完压缩包后解压完毕,怎么都运行失败。并且都是提示的The JAVA_HOME environment variable is not defined correctly这句话。 在网上找了很多的博客,也试了很多次,终于成功地弄出来了。 解决方法:原先的环境变量和系统变量的JAVA_HOME路径都是指向了jdk下的bin路径。 原先为:F:\java\eclipse\bin 现改...

2021-10-09 22:53:46 5950

空空如也

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

TA关注的人

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