自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java设计模式——适配器模式

适配器模式也是Java中比较常见的一种模式,我们在开发中经常遇到各个系统之间的对接问题,每个系统的数据模型大多都有差异,直接对接可能会导致不能正常工作,要是修改原先的数据模型又可能会影响之前的系统功能,这时候就需要用到适配器模式。适配器模式说白了就是一个类似于转接头的功能,能够连接两个或多个不兼容的接口可以一起正常工作,又不影响连接的接口的原先功能。适配器模式的角色:Source————待适配的类,需要能让该类能接入其他原先不兼容的接口Target————目标接口Adapter————适配器

2021-01-03 00:52:09 296 1

原创 SpringMVC一些常用注解

SpringMVC一些常用注解目录SpringMVC一些常用注解@RequestMapping@RequestParam@RequestBody@PathVariable@RequestHeader@CookieValue@SessionAttributes、@SessionAttribute@ModelAttribute@ResponseBody@...

2020-01-27 20:35:15 426

原创 SpringMVC项目开发环境的搭建

1、使用Maven新建一个简单的JavaWeb项目2、在pom.xml中添加使用SpringMVC所需要的包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <versi...

2020-01-19 14:40:07 297

原创 Java设计模式————原型模式

原型模式是指调用clone方法或者其他手段来创建对象,事实上,原型模式比较简单,就是一种克隆对象的方法,现在实例化对象并不耗费性能,原型模式也并不常见,但在以下几种情况下,还是需要用到原型模式来克隆已经实例化的对象:依赖于外部资源或硬件密集型操作进行新对象的创建的情况 获取相同对象在相同状态的拷贝而无需进行重复获取状态操作的情况 在不确定所属具体类时需要对象的实例的情况在...

2020-01-13 23:41:40 240

原创 Java设计模式————建造者模式(带方法链的内部建造者类)

之前在学习建造者模式的时候,我们也了解到,在构建不同形式和状态的对象最直接的方法就是构建多个构造方法,按照不同的场景进行不同的实例化操作,但如果类比较复杂的时候,需要的构造方法也会变多,我们可以使用建造者模式来避免这种情况。建造者模式还有一种写法方式,是使用内部建造者类和方法链的形式来代替构建多个构造方法。 方法链:是指通过特定的方法返回当前对象(this)的一种技术,通...

2020-01-08 16:39:36 259

原创 Java设计模式————建造者模式

建造者模式主要是用于解决复杂对象的创建问题。在开发复杂的应用程序时,代码往往会变得非常复杂,类会封装更多的功能,类的结构也会变得非常复杂,当我们需要实例化一个复杂的类,以得到不同结构和不同内部状态的对象时,这时,我们可以使用不同的类对它们实例化的算法逻辑进行封装,这些类就叫做建造者类,这样实现实例化复杂对象的逻辑就被放到了单独的建造者类,当需要具有不同结构的对象时,可以采用添加新...

2020-01-07 22:15:54 253

原创 Java设计模式————抽象工厂模式

抽象工厂模式可以说是在之前的简单工厂模式和工厂方法模式上的扩展版本,之前的简单工厂模式和工厂方法模式都是创建单一类型的对象,而抽象工厂模式则创建一系列相关联的对象。如果工厂方法模式中只包含一个抽象产品类,而抽象工厂模式可以包含多个抽象产品类。 抽象工厂模式主要增加了一个创建不同工厂的抽象接口AbstractFactory(抽象类或者接口实现),该接口可以称为超级工厂,...

2020-01-07 16:59:41 341

原创 Java设计模式————工厂方法模式

工厂方法模式也是工厂模式的一种。我们在简单工厂模式中了解到,在对产品进行拓展的时候,增加一个新的产品时,都需要对工厂类的代码进行修改,这样就打破了开闭原则,而工厂方法模式是在简单工厂模式上进行的改进,主要是将工厂类进行抽象化,把用于实例化特定产品类的代码转移到实现抽象方法的子类中去。 再以创建手机为例子,手机可能有多个牌子,这里就以华为和小米作为例子:主要类有:...

2020-01-06 20:42:15 189

原创 Java设计模式————简单工厂模式

工厂模式是最常见的设计模式,该模式属于创建者模式,它提供了一种简单、快速、高效而安全地创建对象的方式。通俗来说,工厂模式的本质就是用工厂方法代替new操作创建一种实例化对象的方式,以提供一种方便创建有同种类型接口的产品的复杂对象。 简单工厂模式便是工厂模式中的一种,是最简单的一种工厂模式,它用于实现逻辑的简单封装,并通过公共的接口提供对象的实例化服务,在添加新类的时候只需...

2020-01-03 20:50:02 303

原创 Struts2接收HTTP请求参数

所有的MVC框架都需要负责解析HTTP的请求参数,并对请求参数进行封装和解析处理,Struts2自带有很强大的类型转换器,能够将前端传来的参数自动转换成Action类中成员变量(基于OGNL的类型转换),所以,使用Struts2来接收前端传来的基本类型参数的时候,只需要在Action类中定义与传来参数对应名称的成员变量,并提供getter和setter方法,就可以接收参数;而对于复杂类...

2019-12-24 14:56:38 1210

原创 struts2配置返回结果以及支持的结果类型

Struts2配置返回结果 Struts2的Action在处理用户请求结束后,会返回一个普通的字符串,这个字符串其实是一个逻辑视图名,必须在struts.xml文件完成逻辑视图和物理视图资源的映射,才能让系统转到实际的视图资源。配置过程如下:首先,新建一个测试用的Action类,让其继承ActionSupport,ActionSupport类里实现了Action...

2019-12-22 14:29:24 620

原创 Struts2配置默认的Action

Struts2可以配置特定的Action用来接收用户的请求并进行处理,也可以配置默认的Action。默认的Action是当用户请求找不到对应的Action时,就可以交给默认的Action来进行处理。 配置默认Action主要是通过<default-action-ref ... />元素完成的。如下:首先,新建一个默认的Action类DefaultA...

2019-12-17 21:20:47 243

原创 Struts2配置Action的动态方法调用

当系统需要使用Action的不同方法来处理用户请求的时候,就需要让同一个Action类包含有多个控制处理逻辑,然后再根据用户请求来调用不同的方法,这里就可以采用DMI(Dynamic Method Invocation,动态方法调用)来处理这种请求。struts2也提供了两种方式来实现这动态方法的调用。一、第一种方式,strtus2提供的动态方法调用首先,先新建一个测试动态调用的A...

2019-12-11 23:26:31 328

原创 Struts2新建Action类的方式

方式一:创建一个类,可以是POJOPOJO:不用继承父类,也不用实现任何接口,使Struts2框架的代码侵入性更低public class Demo3Action { public String execute() throws Exception { return "success"; }}方式二:实现一个接口Action,里面有execute方法,提供action方...

2019-12-10 21:30:45 269

原创 struts2框架的环境搭建以及简单使用入门

Struts2是一个基于MVC设计模式的Web框架,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互,它本质上是一个Servlet,并且是用来代替Servlet进行开发JavaWeb项目的,使用Struts2能极大的简化了Web开发过程中的数据交互。Struts2也是以前的JavaWeb开发的三大框架SSH(Spring+Struts2...

2019-12-09 20:02:25 220

原创 Java设计模式————单例模式

单例模式 单例模式是最常用的设计模式,具有容易理解、使用简便的特点,它主要涉及一个单一的类,该类负责创建自己的对象,同时确保这个类只有单个对象被创建。Spring管理的bean默认都是单例的。 单例模式的实现非常简单,只由单个类组成。为了确保单例实现的唯一性,单例的构造方法都要被声明为private,再通过static方法实现全局访问获得该单例实例。 ...

2019-11-18 22:27:47 206

原创 Java排序方法(快速排序法)

快速排序 快速排序的基本步骤有:首先,从数组中挑选出一个元素,称为基数(pivot),一般选数组的第一个元素作为基数 然后,将数组中比基数小的数据移到基数的左边,比基数大的数据移到基数的右边,那么该基数的位置就排好了 接着,将基数左边的数据看作是一个新的数组,将基数右边的数据也看作是一个新的数组,再分别对这两个新的数组进行快速排序,这可以使用递归来完成 直到所有的子数组都是...

2019-11-06 13:04:09 210

原创 Java排序方法(插入排序法)

插入排序 插入排序法是一种简单直观的排序方法,原理比较容易理解,就跟我们平时打扑克一样,我们默认拿的第一张牌是有序的,然后后面依次将牌插入在该有序牌中适当的位置从而形成新的有序牌,以此达到排序效果。插入排序法的基本操作是构建有序序列,对于未排序数据,在已排序的序列中从后到前扫描,找到相应的位置便插入。public void insertSort(int[] arr){ ...

2019-10-31 20:35:28 250

原创 Spring AOP基于注解的配置

Spring AOP基于注解的配置,原理跟上篇写的基于xml配置的一样,只是换一种配置方法,注解的方式有时候比xml的方式更容易读懂,加上后面学习的Spring boot,大多都是基于注解形式的配置。首先,还是导包,需要导入(Maven导包) <dependency> <groupId>org.springframework</groupId&gt...

2019-10-22 23:42:26 175

原创 Spring AOP基于xml的配置以及使用

Spring AOP,也就是面向切面编程,是对于面向对象编程的一种补充,也是Spring框架的一项重要内容,核心思想是动态代理。为什么需要AOP: 但我们在开发的过程中,我们慢慢会发现,有一些代码会不断重复出现,而且随着代码量增大,这一类代码会不断的重复出现,如果没有使用AOP,这一类的代码我们一般会采取复制粘贴的方式去解决,但是这样会造成难以维护,假如有一天,我们需要...

2019-10-22 22:53:23 165

原创 Java两种动态代理方式的使用

动态代理作用:在不改变源码的基础上,对原有的方法进行增强实现,也是后面Spring AOP面向切面编程思想的实现技术 分类:JDK提供的动态代理(基于接口的动态代理)、cglib提供的动态代理(基于子类的动态代理) 实例代码:使用两种代理方式分别对下面的UserServiceImpl类进行增强UserService接口类package com.bran.service;publ...

2019-08-02 19:11:37 244

原创 Java实现中缀表达式转换成逆波兰表达式(后缀表达式)

实现基本步骤用数组接收输入的原始表达式。 用两个栈来进行操作,一个栈用来存放运算符,另一个栈用来存放输出的逆波兰表达式。 依次遍历原始表达式,再根据遍历的元素分别进行操作。 如果遍历为数字,直接输出到逆波兰表达式栈中。 如果遍历为“(”,入运算符栈里。 如果遍历为“)”,则依次把运算符栈栈顶的运算符加入逆波兰表达式栈中,直到出现“(”,接着从栈中删除“(”,逆波兰表达式中...

2019-08-01 14:03:15 1270 1

原创 Spring5整合Junit4、Junit5测试bean

Spring5整合Junit4(要求Junit4的版本不能低于4.12)//测试类@RunWith(SpringJUnit4ClassRunner.class)//指定Junit4使用Spring提供的测试环境@ContextConfiguration("classpath:applicationContext.xml")//指定要为此测试类加载的Spring配置文件public cl...

2019-07-25 18:02:07 1926

原创 Spring框架基于配置文件的bean属性注入

Bean注入基本类型的方式有4种set方式注入(重点) 构造方法的注入(重点) p名称空间注入(了解) spel(Spring Expression Language)注入(了解)实体类package com.springday.bean;public class User { private String name; private Integer age; priv...

2019-07-12 23:18:35 462

原创 Java实现RSA加密解密算法

RSA加密解密题目JAVA实现代码import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;import java.util.Scanner;import java.util.Set;/** * @Description RSA加密解密算法 * */public c...

2019-07-06 22:08:33 1094

原创 Spring框架入门(新建配置文件)

新建配置文件新建 Spring配置文件,名字随意,一般是命名applicationContext.xml,位置随意,建议还是放在src目录下。使用IDEA的话添加Spring模块的话是会自动生成这个配置文件的,使用Eclipse安装STS(Spring Tool Suite)插件,这个插件专门用于Spring开发的,安装了这个插件后,点击File->New->Others里面选择...

2019-07-06 19:02:40 623

原创 Spring框架入门(环境搭建)

Spring的下载安装登录网站https://repo.spring.io/libs-release-local/org/springframework/spring/可以找到Spring各种框架的压缩包,目前Spring最新版本是:5.1.8.RELEASE,点击下载spring-framework-5.1.8.RELEASE-dist.zip 下载完成解压后​​​​​​​,得到一个spr...

2019-07-05 17:50:43 273

转载 IDEA使用Junit时不能从控制台输入解决方法

IDEA版本:2018.3.3 JDK版本:1.8 Junit版本:4.11最近从eclipse转IDEA,今天使用IDEA写一个单元测试的时候,发现@Test从控制台不能输入数据,这种情况我用eclipse是没出现过的,我也找到了好多博客,说是junit的版本与IDEA的不兼容,改成用main方法写就可以解决了,但是,我找到了另外一个大神的博客,只需要添加一个参数就可以解决。参考博客地...

2019-05-03 00:57:08 1900 2

原创 JAVA简单实现操作系统原理的银行家算法

   银行家算法是这样的一种资源分配方法:系统给进程分配资源时,先检查状态是否安全,方法是看它是否有足够的剩余资源满足一个距最大需求最近的进程。如果有,那么分配资源给该进程,然后接着检查下一个距最大需求最近的进程,如此反复下去。如果所有的进程都能获得所需资源,那么该进程是安全的,最初的进程申请资源可以分配。假设系统中有3种类型的资源A、B、C和5个进程P1、P2、P3、P4、P5,A资源的数...

2018-10-26 20:36:41 694 2

原创 JAVA排序方法(选择排序法)

选择排序 选择排序法是我认为除了冒泡排序法外,最容易理解的一种排序方法。它主要是通过比较来找出最小或者最大的数,以此进行交换。public void selectSort(int[] a){// 选择排序法 for(int i=0;i<a.length-1;i++){ int k=i; for(int j=i+1;j<a.length;j++){ ...

2018-06-30 14:16:51 2145

原创 JAVA排序方法(冒泡排序法)

冒泡排序 冒泡排序是一种比较简单的排序方法。它会遍历若干次要排序的数组,每次遍历时,它都会比较相邻的两个数的大小,如果前者比后者大,则交换位置。这样一次遍历下来,最大的那个数就会在数组的最后,重复多次操作后,就可以实现对数组的排序。public class Sort { public void bubbleSort(int[] a){//冒泡排序方法 for(int i...

2018-06-30 13:59:41 451

原创 JAVA实现环形队列

public interface QueueInterface { public boolean isEmpty(); //前置条件:队列已存在 //输入:无 //功能:判断队列是否为空 //输出:如果队列为空,返回值为true;否则返回false //后置条件:队列不变 public boolean isFull(); //前置条件:队列已存在 //输入:无 //功能:判...

2018-06-06 21:06:50 665

原创 简单的学生成绩管理系统JAVA版带文件操作

public class StudentData implements Comparable&lt;StudentData&gt; { //学生节点类 private String id; //学号 private String name; //姓名 private double math; //高数成绩 private double english; //大英成绩 privat...

2018-06-06 20:57:20 5133 7

原创 JAVA二叉树的建立和递归遍历

二叉树节点的接口public interface BinaryNodeInterface&lt;T&gt; { public T getData(); public void setData(T newData); public BinaryNodeInterface&lt;T&gt; getLeftChild(); public BinaryNodeInterface&lt;...

2018-05-21 21:33:37 282

JQueryEasyUI以及easyui拓展插件.zip

jquery easyui的压缩包,以及easyui的一些拓展插件包,包括Portal(制作图表、列表、球形图等),数据网格视图(DataGrid View),可编辑的数据网格(Editable DataGrid),表格编辑单元格(Cell Editing in DataGrid)等其他10多个拓展插件,基本能用得上的easyui拓展里面都有了,不用再特意去找easyui拓展下载了

2019-07-04

空空如也

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

TA关注的人

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