自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 thymeleaf中使用Restful风格的两种传参形式

方式一:th:href="@{/query/{id}(id=${c.getId()})}"方法二:多个参数字符串拼接th:href="@{'/delete/'+${a.getId()}+'/'+${c.Id()}}"

2022-02-12 20:29:03 1178

原创 spring-web项目中target文件目录生成不完整解决方法

在项目pom文件中加上如下代码,进行文件扫描。<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.yml</include> <!--springboot中-->

2021-12-11 00:04:16 905

原创 java中代理模式的简单理解

代理模式简单的讲就是创建一个代理对象,然后通过代理对象来访问目标对象,完成原来的任务。这样可以在不改变原有的代码的情况下,增加额外的功能,也就是扩展原来的目标对象的功能。1.静态代理在编译阶段就确定了代理目标对象,也就是专为一个类进行代理。interface BookSell{ //代理接口 void sellBook(int x);}class BookProducer implements BookSell{ //被代理类 @Override publi.

2021-11-16 14:55:16 500

原创 关于反射的简单理解与运用

反射机制:对于一个类在运行状态中能够知道这个类所有的属性与方法,对于一个对象能够调用它任意的方法与属性,也就是动态操纵java程序的能力。反射机制可以跳过权限去调用对象甚至改造对象(比如获取private成员),功能是比较强大的。1.获取class类型对象实例class类型对象保存了类属性的描述信息。package test;import java.lang.reflect.*;import java.util.Arrays;public class Test06 { pri.

2021-11-08 20:50:02 224

原创 关于类继承的向上转型与向下转型的简单理解

public class Test01 { //子类 private int a; private String b; public Test01(int a) { this.a = a; } public void input(){ System.out.println("a==>"+a); }}class T01 extends Test01{ //父类(超类) private int c;

2021-11-01 21:47:35 275

原创 单例模式的简单理解与运用

1. 什么是单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。2.单例模式的作用单例模式保证了一个类只有一个实例,提

2021-09-05 16:28:57 254

原创 三种实现线程安全的接口(List、Set、Map)实现类

LIst接口常用实现类ArrayList,Set接口常用实现类HashSet,Map接口常用实现类HashMap都不是线程安全的。在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常1.List接口线程安全实现类public class ListTest { public static void main(String[] args) { //定义方式一 //List<String>.

2021-09-02 23:32:55 1154

原创 阻塞队列与多线程读写锁

阻塞队列有四种阻塞方式1.遇到阻塞就抛出异常2.遇到阻塞不抛出异常,返回false3.遇到阻塞就等待,一直等待4.遇到阻塞就等待,直到等待超时退出import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.TimeUnit;public class test01 { public static void main(String[] args) throws InterruptedEx..

2021-09-02 23:14:07 132

原创 多线程之使用线程池创建线程

1.使用线程池的优点1.减少资源的消耗。重复利用已经创建的线程,避免频繁的创造和销毁线程,减少消耗。2.提高响应速度。当执行任务时,不需要去创建线程再来执行,只要调动现有的线程来执行即可。3.提高了线程的管理性。线程是稀缺资源,使用线程池可以进行统一的分配、调优和监控。2.创建线程池的两种方案1.通过Executors创建,它提供了四种线程池:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixe

2021-09-02 22:43:37 5042

原创 多线程之生产者与消费者问题

1.问题概述生产者消费者问题(Producer-consumer problem),也称有限缓冲问题(Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。2.解决方案要解决该

2021-09-02 21:21:27 478

原创 多线程有序运行

运用Condition与Lock,实现线程的有序运行,即A、B、C依次运行。import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class C { public static void main(String[] args) { Data3 data3

2021-09-02 18:30:43 214

原创 使用java POI读写Excel表

Excel表的文件扩展名有两种格式,分别为.xls和.xlsx。.xls文件扩展名对应的是Microsoft Office EXCEL 2003及以前的版本,最大有65535行。.xlsx文件扩展名对应的是Microsoft Office EXCEL 2007及后期的版本,行数无限制。1.需要的依赖<!--xls(03)--><dependency> <groupId>org.apache.poi</groupId> <ar.

2021-09-02 16:42:32 137

原创 springcloud运用springcloud-config远程调用Gitte上的配置文件进行配置

1.什么是springcloud-config?Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运

2021-09-02 14:29:07 456

原创 springboot发送邮件

这里把springboot发送邮件的代码编写成了一个工具类,有两个重载方法,只要代入相关的参数,执行该方法即可发送邮件。1.导入依赖<!--javax.mail--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency&g

2021-09-01 22:05:50 139

原创 RPC(远程过程调用)的简单运用(springboot+dubbo+zookeep)

RPC就是远程过程调用,依赖于分布式系统。这里建立了两个简单的项目,模拟服务方法的远程调用。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,主要是协调各个服务程序之间的运行。1.创建两个简单的springboot项目,分别命名为消费者与服务提供者服务提供者(接口+实现类),在项目启动类上需加上@EnableDubbo 注解pub

2021-08-13 22:02:35 157

原创 springboot+mybatisPlus+springsecurity的简单运用

​ Spring Security对Web安全性的支持大量地依赖于Servlet过滤器。这些过滤器拦截进入请求,并且在应用程序处理该请求之前进行某些安全处理。 Spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性。1.导入依赖<dependencies> <dependency> <groupId>org.springfram

2021-08-13 21:40:27 289

原创 springboot+mybatis+shiro的简单应用

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。三个核心组件:Subject, SecurityManager 和 Realms.Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account) 或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。SecurityMan

2021-08-13 21:11:30 241

原创 springboot构建一个简单的拦截器

1.构建实体类(使用了一个lombok插件)@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private Integer id; private String username; private String password;}2.编写前端页面login.html<!DOCTYPE html><html lang="en" xmlns:th="http:..

2021-08-04 23:47:50 102

原创 TCP和UDP的简单实现与运用

传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复。协议还规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输。TCP最大的特点就是提供的是面向连接、可靠的字节流服务。用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提

2021-08-04 21:34:58 573

原创 泛型的简单运用

泛型的意思是“参数化”类型,也就是类参数的类型是由我们自己定义的,在设计模式中使用广泛。泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法,泛型只在编译阶段有效。public class TestOverClass<T> { private T over; //泛型成员 private T[] array; //泛型数组 public T getOver() { return over; } public void setOv

2021-07-30 21:57:27 124

原创 枚举类型的简单实现与运用

枚举可以取代以往常量的定义方式,将常量封装在类或接口中,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念。枚举像一个类,又像一个数组。enum关键字看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。枚举类型有如下特征:不能有public的构造函数,必须是private,这样做可以保证客户代码不能新建一个enum的实例,更安全。所有枚举值都是public , static , final的。E.

2021-07-30 21:41:37 156

原创 隐式锁Synchronized与显示锁Lock的简单比较

​ synchronized是基于jvm底层实现的数据同步,lock是基于Java编写,主要通过硬件依赖CPU指令实现数据同步。1.Synchronized同步方法体和同步代码块的使用public synchronized void method01(){ //方法体}public void method02(){ synchronized (this) { //一次只能有一个线程进入 }}2.lock锁的简单运用p

2021-07-29 21:37:47 112

原创 创建线程的三种方式

1.继承Thread类,重写run()方法,调用start()开启线程public class TestThread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 20; i++) { System.out.println("我在听歌"+i); } } public static v..

2021-07-29 20:55:45 39

原创 通过反射获取自定义注解信息

了解与运用注解。1.自定义注解接口,应用于构造方法、成员方法和成员参数@Target(ElementType.CONSTRUCTOR) //用于构造方法@Retention(RetentionPolicy.RUNTIME) //有效范围:运行时加载到jvm@interface Constructor_Annotation{ String value() default "默认构造方法"; //定义一个具有默认值的String型成员}@Target({ElementType.FI..

2021-07-29 19:46:02 167

原创 通过java反射访问和修改成员变量和成员方法

通过java的反射机制,可以在程序运行时访问已经装载到JVM中的java对象描述,实现访问、检测和修改描述java对象本身信息的功能。1.访问和修改成员变量public class TestField { public static void main(String[] args) { Example02 example = new Example02(); Class exampleClass = example.getClass(); //获得Exampl

2021-07-29 19:36:49 2556

原创 springboot整合mybatis连接数据库

1.引入maven依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version></dependency><dependency> <groupI..

2021-07-19 22:08:03 60

原创 mysql事务理解及实例

事务原则:ACID原则。原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。原子性:指事务是一个不可分割的整体,事务中的操作要么全发生,要么都不发生,不能出现只发生一部分的情况。一致性:事务发生前后数据是一致的。隔离性:当有多个用户访问数据库时,数据库为每一个用户开启的事务,不能干扰其他事务、也不能被其他事务干扰,多个事务之间的操作是相互隔离的。持久性:事务一旦提交,对数据的改变是永久的,即使数据库发生故障也不会改变。事务的

2021-07-18 17:39:25 166

原创 Mysql常用函数

SELECT ABS(-8) -- 取绝对值SELECT CEILING(9.3) -- 向上取整SELECT FLOOR(9.3) -- 向下取整SELECT RAND() -- 取0~1之间的随机数SELECT SIGN(3) -- 判断一个数的符号,0返回0,正数返回1,负数返回-1SELECT CHAR_LENGTH('你好你好啊') -- 返回字符串的长度SELECT CONCAT('你','好','啊') -- 拼接字符串SELECT INSERT('我爱java编程',2,1,

2021-07-17 17:45:45 53

原创 jsp网站注册邮箱地址验证

1.邮件发送类public class sendEmail extends Thread{ public static void send(String email,String content) throws Exception { Properties prop = new Properties(); prop.setProperty("mail.host","smtp.163.com"); //设置网易邮件服务器 prop.setProper

2021-07-02 22:56:31 507

原创 springMVC实现文件上传与下载

1.导入Maven依赖 <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <!-- https:/

2021-07-02 22:16:44 83

原创 java-web实现分页显示

1.dao层连接数据库public class BaseDao { private static String driver; private static String url; private static String username; private static String password; static { //类静态加载 Properties properties = new Properties(); I

2021-07-02 21:01:47 270

原创 java-web过滤器与拦截器的实现

1.过滤器防止中文乱码,代码如下:public class characterEncodingFilter implements Filter { //初始化,与服务器一同启动,等待过滤对象的出现! @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("初始化"); } @Override pub

2021-06-28 23:26:17 117

原创 ajax-json异步加载实现数据查询

1.搭建好SSM框架运行环境。2.编写好控制器。@RequestMapping("/a2") @ResponseBody public String ajax2(){ List<User> usersList = userService.queryUserList(); return JsonUtils.getJson(usersList); //返回json字符串,这里是我自己定义的工具包,可以使用其他jar包实现 }3.编写前端

2021-06-26 22:33:39 140

原创 jsp生成随机验证码图片

思路:在servlet中使用java创建一张图片,并写入一串随机数字,然后将图片流在网页中显示出来。public class ImgServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //让浏览器每3秒自动刷新一次

2021-06-24 23:26:36 245

原创 两个栈共用一个连续空间,实现插入与删除

两个栈共用一个连续空间,实现插入与删除。#include<stdio.h>#define M 10int Insert(int stack[],int top[],int i,int item){ if(top[0]==top[1]-1) { return 0; } if(i==1){ stack[++top[0]]=item; }else{ stack[--top[1]]=item; } return 1;} i

2021-04-03 20:56:58 293

原创 Mybatis出现元素类型为 “mapper“ 的内容必须匹配错误

今天在写mybatis的配置文件时,突然出现如下错误Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2

2021-03-27 20:29:15 914 1

原创 魔方填数游戏

假设有n*n(n为奇数)个方格组成一个方阵,要将1~n*n的数填入,要保证方阵的每一行、每一列还有对角线上的数字之和相等。#include<stdio.h>#define Max 5void magic(int Array[][Max],int n){ int i,j,num; for(i=0;i<n;i++) for(j=0;j<n;j++) Array[i][j]=0; Array[0][n/2]=1; //填入1至第一行中间 i=0;j=n/2;

2021-03-21 16:05:14 334 1

原创 链表逆转输出

将链表指针逆向,从而产生一个逆向链表。#include<stdio.h>#include<stdlib.h>#define N 5 typedef struct stu{ int num; struct stu *link; }Lnode,*LinkList;void invert(LinkList &list){ LinkList p,q,r; p=list; q=NULL; while(p!=NULL) { r=q;

2021-03-21 15:03:43 211

原创 稀疏数组存储

稀疏数组存储如图,假设有一个12*12的二维数组,只有2个有效数值,使用稀疏数组去存储它。创立二维数组和数组有效值个数计算:int[][] array1=new int[12][12]; array1[1][2]=5; array1[2][3]=6; for (int[] ints : array1) { for (int anInt : ints) { System.out.print(an

2021-03-20 16:49:23 270

原创 在Ubuntu系统中安装hadoop无法打开localhost:50070

在Ubuntu系统中安装hadoop无法打开localhost:50070最近在安装hadoop时遇到了一些问题,如下图,我的hadoop已经安装,并且成功启动了。但是当我打开网页,访问http://localhpost:50070想查看相关资源时,出现了错误!无法访问!我在网上搜索了一下,很多人说是没关闭防火墙或者vpn限制等,我试了下,都没用。后来在官方讨论区找到了原因。部分内容如下,大家可自行搜索,获取更详细的内容。看到这里恍然大悟,我的hadoop版本是3.3的,默认端口从3.0开始

2021-03-17 20:24:13 1951 4

空空如也

空空如也

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

TA关注的人

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