自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 问答 (1)
  • 收藏
  • 关注

原创 报错 Invalid character found in the request target

(1)执行导出 EXCEL 文件的时候,报错:java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986(2)通过 F12 得知,错误码为 400,即:你访问的页面域名不存在或者请求错误。主要分为两种。1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户.

2021-08-31 09:02:25 17803

原创 RSA分段加密

1 RSAUtil工具类import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import javax.crypto.Cipher;import org.apache.commo

2021-08-09 15:50:06 9248

原创 1002 写出这个数 (20 point(s))

读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数n的值。这里保证n小于10​100​​。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:...

2021-06-07 15:26:08 247 1

原创 1001 害死人不偿命的(3n+1)猜想 (15 point(s))

卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数n,...

2021-06-03 10:01:52 181

原创 @Autowired/@Qualifier/@Resource/@Value区别详解

1 @Autowired@Autowired根据属性类型进行自动装配。(1)创建 service 和 dao 类,并在类上添加在bean中创建实例的注解。UserDao 接口:public interface UserDao { void addUser();}UserDaoImpl 实现类:@Repositorypublic class UserDaoImpl implements UserDao { @Override public void addUser()

2021-02-07 21:56:35 1199 1

原创 Java代理模式之静态代理、JDK动态代理、CGLib动态代理

1 代理模式概念代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。2 静态代理2.1 概念这种代理方式需要代理对象和目标对象实现一样的接口。优点:可以在不修改目标对象的前提下扩展目标对象的功能。缺点:冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类。不易维护。一旦接口增加方

2021-02-06 20:04:01 358 3

原创 Eureka使用浅析

1 Eureka 介绍Eureka 是 Netflix 开发的服务发现框架,SpringCloud 将它集成在自己的子项目 spring-cloud-netflix 中,实现 SpringCloud 的服务发现功能。Eureka 包含两个组件:Eureka Server 和 Eureka Client。Eureka Server 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注册,这样 EurekaServer 中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可

2021-01-07 14:04:02 261

原创 JWT鉴权的实现

1234

2020-12-28 18:46:12 416

原创 Java的JJWT实现JWT

1 什么是 JJWTJJWT 是一个提供端到端的 JWT 创建和验证的 Java 库。永远免费和开源 (Apache License,版本2.0),JJWT 很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。2 token 的创建2.1 引入依赖<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> &lt

2020-12-25 17:04:53 707 1

原创 什么是JWT?

1 介绍JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。2 JWT 的组成2.1 头部(Header)头部用于描述关于该 JWT 的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个 JSON 对象。{"typ":"JWT","alg":"HS256"}在头部指明了签名算法是 HS256 算法,编码后的字符串如下:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9Tip

2020-12-25 16:36:54 287

原创 BCrypt 密码加密

1 介绍任何应用考虑到安全,绝不能明文的方式保存密码。密码应该通过哈希算法进行加密。有很多标准的算法比 SHA 或者 MD5,结合 salt (盐)是一个不错的选择。 Spring Security 提供了 BCryptPasswordEncoder 类,实现 Spring 的 PasswordEncoder 接口使用 BCrypt 强哈希方法来加密密码。BCrypt 强哈希方法每次加密的结果都不一样。2 准备工作2.1 引入依赖<dependency> <groupId

2020-12-25 14:54:17 1078

原创 Java的构造函数详解

什么是构造函数构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。在Java语言中,构造函数具有以下特点:构造函数必须与类的名字相同,并且不能有返回值(连void也不能写)。 每个类可以有多个构造函数。当开发人员没有提供构造函数时,编译器在把源码编译成字节码的过程中会提供一个没有参数默认的构造函数,但该构造函数不会执行任何代码。如果开发人员提供了构造函数,那么编译器就不会再...

2019-08-18 14:50:30 734

原创 Java程序的初始化顺序

在Java语言中,当实例化对象的时候,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化之后,才会调用对象所在类的构造函数创建对象。Java程序的初始化一般遵循三个原则:静态对象(变量) 优先于 非静态对象(变量) 初始化。 静态对象(变量)只初始化一次,而非静态对象(变量) 可能会初始化多次。 父类优先于子类初始化。 按照成员变量的定义顺序进行初始化。...

2019-08-18 14:06:49 375 3

原创 public static void main (String[] args) 详解

1 public static void main (String[] args)public static void main (String[] args) 是Java程序的入口方法,JVM在运行程序时,会先查找 main() 方法。public是权限修饰符,表明任何类或对象都可以访问这个方法。 static表明mian()方法是一个静态方法,即方法中的代码是存储在静态存储区的,...

2019-08-18 13:45:56 8307

原创 UDP协议收发数据 JAVA代码实现

客户端代码:/*UDP协议发送数据: 1.创建发送端Socket对象。 2.创建数据,并把数据打包。 3.调用Socket对象的发送方法发送数据包。 4.释放资源。 */public class sendDemo { public static void main(String[] args) throws IOException { ...

2019-06-10 22:01:05 1692

原创 堆排序Java代码实现

堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。算法描述将初始待排序关键字序列 (R1,R2….Rn) 构建成大顶堆,此堆为初始的无序区; 将堆顶元素R[1] 与最后一个元素R[n] 交换,此时得到新的无序区 (R1,R2,……Rn-1) 和新的有...

2019-06-01 17:24:16 4297 5

原创 快速排序Java实现

快速排序快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:从数列中挑出一个元素,称为“基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有...

2019-06-01 16:25:38 5562

原创 归并排序Java代码实现

归并排序和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有...

2019-06-01 15:41:00 2667 1

原创 希尔排序Java代码实现

希尔排序希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。希尔排序是把元素按下表的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每...

2019-05-31 22:44:56 4342 2

原创 插入排序Java代码实现

插入排序插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法描述从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描...

2019-05-31 21:38:59 3970

原创 选择排序Java代码实现

选择排序表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小元素,存放到已排序序列的末尾,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排...

2019-05-31 20:58:15 3221 1

原创 冒泡排序Java代码实现

冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最...

2019-05-31 20:36:29 16614 1

原创 实验2-2-8 阶梯电价 (15 分)

为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。输入格式:输入在一行中给出某用户的月用电量(单位:千瓦时)。输出格式:在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“...

2019-03-20 16:24:27 3453 2

原创 实验2-2-4 计算分段函数[2] (10 分)

本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。输入样例1:10输出样例1:f(10.00) = 3.16输入样例2:-0.5输出...

2019-03-20 16:24:21 4735 1

原创 实验2-2-3 计算存款利息 (10 分)

本题目要求计算存款利息,计算公式为interest=money×(1+rate)​year​​−money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。输入格式:输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。输出格式:在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。...

2019-03-19 19:39:18 5540 1

原创 实验2-1-7 整数152的各位数字 (10 分)

本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。输入格式:本题无输入。输出格式:按照以下格式输出:152 = 个位数字 + 十位数字*10 + 百位数字*100Code:#include <stdio.h>int main(void) { int number, a[3], i; number = 152, i = 0;...

2019-03-19 19:28:53 9044

原创 实验2-1-5 将x的平方赋值给y (5 分)

假设x的值为3,计算x的平方并赋值给y,分别以“y=x∗x”和“x∗x=y”的形式输出x和y的值。输入格式:本题无输入输出格式:按照下列格式输出代入x=3的结果:y = x * xx * x = yCode:#include <stdio.h>int main(void) { int x, y; x = 3; y = x ...

2019-03-19 19:22:41 8405

原创 实验2-1-4 计算平均分 (5 分)

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。输入格式:本题无输入输出格式:按照下列格式输出结果:math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩Code:#include <stdio.h>int main(vo...

2019-03-19 19:19:48 2682

原创 实验2-1-3 计算物体自由下落的距离

一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒​2​​。输入格式:本题目没有输入。输出格式:按照下列格式输出height = 垂直距离值结果保留2位小数。Code:#include <stdio.h>int main(void) { float g, t, h; g = 10, ...

2019-03-19 19:12:00 1280

原创 实验2-1-1 计算摄氏温度 (5 分)

实验2-1-1计算摄氏温度(5分)本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。输入格式:本题目没有输入。输出格式:按照下列格式输出fahr = 100, celsius = 计算所得摄氏温度的整数值Code:#include <stdio....

2019-03-19 18:47:50 4099

原创 实验1-8 输出倒三角图案 (5 分

本题要求编写程序,输出指定的由“*”组成的倒三角图案。输入格式:本题目没有输入。输出格式:按照下列格式输出由“*”组成的倒三角图案。* * * * * * * * * *Code :#include <stdio.h>int main(void) { int i, j; for (i = 0; i < 4; i++)...

2019-03-19 18:42:05 1070

原创 实验1-6 输出带框文字 (5 分)

本题要求编写程序,输出指定的带框文字。输入格式:本题无输入输出格式:按照下列格式输出带框文字。************ Welcome************Code:#include <stdio.h>int main(void) { printf("************\n"); printf(" Welcome\n");...

2019-03-19 18:34:54 1470

原创 实验1-5 输出菱形图案 (5 分)

本题要求编写程序,输出指定的由“A”组成的菱形图案。输入格式:本题无输入输出格式:按照下列格式输出由“A”组成的菱形图案。 AA A ACode:#include <stdio.h>int main(void) { printf(" A\n"); printf("A A\n"); printf(" A\n"); ...

2019-03-19 18:33:32 1930

原创 实验1-4 输出三角形 (5 分)

本题要求编写程序,输出指定的由“*”组成的三角图案。输入格式:本题无输入输出格式:按照下列格式输出由“*”组成的三角图案。**********Code:#include <stdio.h>int main(void) { int i, j; for (i = 0; i < 4; i++) { for (j = 0; j ...

2019-03-19 18:30:34 2088

原创 类的练习2 —— 贷款

首先,写出一个UML类图。 然后“头文件”处,写类的定义,名为 “Loan.h”。#pragma onceclass Loan{public: Loan(); //默认构造函数 Loan(double rate, int years, double amount); //带参数的构造函数 double getAnnualInterestRate(); //返回贷款年利...

2019-01-17 17:46:42 747

原创 #ifndef 和 #define 避免多次包含

在C++中,原语 #ifndef 和 #deine 可以用来避免头文件被多次包含。我们称之为“包含保护”。只需在头文件中添加3行语句即可实现:#ifndef CIRCLE_H#define CIRCLE_Hclass Circle{public: double radius; Circle(); Circle(double); double getArea();};#...

2019-01-16 20:58:28 1276

原创 类定义和类实现的分离

C++允许将类的定义和实现分离。类定义描述了类的“约定”,而类实现则实现了这一约定。类定义简单地列出所有数据域、构造函数原型和函数原型,类实现给出构造函数和成员函数的实现。两者可以置于分离的文件中,两个文件应该使用相同的名字,但具有不同的扩展名。类定义文件的扩展名为 .h( h意思为头 ),类实现文件的扩展名为 .cpp。 那么如何实现类定义与类实现的分离呢?请随着我的步骤:1...

2019-01-16 19:56:59 4169

原创 构造函数

构造函数是一种特殊的函数,与其他函数相比有3个不同点:构造函数的名字必须与类名相同。 构造函数没有返回类型 —— 即便返回void也不可以。 在创建对象时,构造函数被调用,它的作用就是初始化对象。 与一般函数相类似,构造函数可以被重载,这方便了我们用不同初始数据创建对象。一个类通常会有一个无参数的构造函数,这样的构造函数被称为无参构造函数。一个类的声明中可以不包含构造函数的声...

2019-01-16 19:51:26 320 3

原创 类的练习1 —— 打印圆的面积

在面向对象程序设计中,一个对象表示现实世界中一个独一无二的实体。相同类型的对象用一个通用的类来定义。一个类是指一个模板、蓝图或者约定,定义了对象具有什么样的数据域和函数。一个对象就是一个类的实例,我们可以创建一个类的多个实例。 对于类模板和对象的图示,我们可以用UML(Unified Modeling Language, 统一建模语言)表示法将其标准化。 首先,我们画一个圆...

2019-01-16 19:36:39 654

原创 【自顶向下】设计一个打印当月日历的程序

打印当月日历,可以被分为两个子问题:获取用户输入、打印日历。 使用cin来读取输入,而打印日历再次分为两个子问题:打印日历头、打印日历主体。 日历头又包含:月份、年份、星期。 打印日历体需要知道:当月第一天是星期几、当月有多少天、哪一年是闰年、每个月有多少天。根据上面四步,给出思维导图。 根据思维导图,先给出代码框架。#include "pch.h"#include...

2019-01-12 15:38:39 698 1

空空如也

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

TA关注的人

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