- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 关于idea中src下 无法new一个package
在idea中,我们会发现,有时候右键src无法new一个package,这是因为此时我们的项目中的src不是项目的根路径,只需要将其设置为根路径即可,具体方法如下:此时我们发现无法new一个package只需要:右键src→Mark Directory as→点击Sources Root这样就可以在src下面创建包了。...
2022-06-05 11:05:26
3399
1
原创 自定义实现Java动态数组
写在前面通常,我们会用高级程序语言中的数组来描述线性表的顺序存储结构,而这种顺序表的特点时逻辑顺序与物理顺序相同,即数组中元素的内存地址是连续的。那么很显然,这样的数组(静态数组)是在空间被占满后再往里添加数据,就会发生溢出,进而导致程序崩溃。...
2022-03-27 00:35:31
1579
原创 3周攻克数据结构(入门)——1.两数之和
LeetCode:1.两数之和(Two Sum)包含输入的完整代码可去LeetCode:1.两数之和(Two Sum)Java完整代码题目内容描述思路方法一:直接两层for循环嵌套,暴力求解两层for循环for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ if(nums[j]==target-nums[i]){ result[0]=i;
2022-03-16 00:18:31
458
原创 3周攻克数据结构(入门)——53.最大子数组和
力扣53.最大子数组和题目描述解法:动态规划就像是喝汤的时候我们喜欢用勺子一样,这道题它从头到脚都透露着快用DP(动态规划)来解决我的气息。为什么这么说呢?题目:最大子数组题干:请你找出一个具有最大和的连续子数组当然,最关键的是子问题啊!这是一个信号!知道用动态规划没有用,我们需要剥离出子问题!这道题的最终目的是得到一个连续的子数组,并且它的和是最大的。从动态规划的思想来看,我们需要做的就是假设一个数组,然后不断地将其扩大规模到不满足扩大地条件,即,先假设一个数组,只要它扩大的过程中,
2022-03-16 00:15:30
250
原创 关于SpringBoot中pom.xml中<plugin>报错
报错部分代码: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
2022-03-14 16:23:56
2573
1
原创 随机生成一个六位验证码工具类
随机生成一个由大小写字母和数字组成的六位验证码import java.util.Random;/** * 随机生成六位验证码工具类 * @author: whh */public class VerificationCodeUtil { public static String VerificationCode(){ String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
2022-03-14 00:47:09
815
原创 设置发送邮件工具类
以发送一个验证码为例import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;/** * 邮件工具类 * @author whh */public class SendMailUtil { /** * 发送邮件 * @param to 给谁发 * @p
2022-03-14 00:44:41
267
原创 正则表达式判断邮箱格式是否合法工具类
public class CheckMailUtil { public static boolean checkMail(String email){ //邮箱的基本格式为“名称@域名” //名称部分只允许英文字母、数字、下划线、英文句号、中划线和汉字组成 //字母和数字表示为A-Za-z0-9 //汉字表示为[\u4e00-\u9fa5] //域名部分:一般域名的规律为“[N级域名][三级域名.]二级域名.顶级域名”,
2022-03-14 00:41:04
1141
原创 RSA加密算法工具类
RSA非对称加密工具类,以及一个小测试。import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import java.security.*;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.X509EncodedKeySpec;import java.util.HashMap;import java.util
2022-03-14 00:39:12
826
原创 判定为空工具类
该工具类用来判断内容是否为空,现在包含判断字符串,对象,集合。package org.acmaster.utils;import java.util.Collection;import java.util.Map;/** * 验证为空工具类 */public class ValidateUtil { public static boolean isEmpty(Object obj) { if (obj == null) { return t
2022-03-14 00:37:06
976
原创 3周攻克数据结构(入门)——217.存在重复元素
力扣:217.存在重复元素题目描述方法一:暴力二话不说,俩次循环,直接判断public static boolean containsDuplicate(int[] nums) { for(int i=0;i< nums.length-1;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[j]==nums[i]){ return
2022-03-13 23:45:27
1372
原创 Log4j(四)——Log4j1与Log4j2的区别
前言几乎每个大型应用程序都包含自己的日志或跟踪API。为了符合这一规则,欧盟SEMPRER项目决定编写自己的跟踪API。这是在1996年初。经过无数次的增强、几个版本和大量的工作之后,API演变成了log4j,这是一个流行的Java日志包。这个包是在Apache Software License下发布的,Apache Software License是由开源组织认证的完全成熟的开源许可证。然而随着技术的发展,Log4j的结构、性能被很多新的日志框架所替代。它在设计结构上比不上slf4j,在性能上比不上l
2021-12-15 22:03:29
3076
2
原创 Log4j(三)——Log4j配置文件位置详解
自动加载配置文件:(1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解。log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找log4j.properties文件。然后加载配置。配置文件放置位置正确,不用在程序中手动加载log4j配置文件。如果将配置文件放到了config文件夹下,则需要简单设置一下。eclipse下:idea下:点击File->Projects Structure手动加载配置文件PropertyC
2021-12-13 23:47:54
7139
原创 Log4j(二)——Log4j的配置及使用
简介关于Log4j是什么可以去看Log4j官网介绍或者log4j(一)——什么是Log4j以及Log4j的体系结构关于jar包或者源码的获取可去Log4j官网下载过去旧版本的jar包可去Log4j官网下载过去版本实例介绍首先新建一个项目命名为:Log4jTest,并在其中导入log4j1.2.17.jar然后在src同级创建并设置log4j.properties我们将DEBUG级别以上的日志,输出到控制台以及D://logs/log.log我们将ERROR级别以上的日志输出到D://log
2021-12-13 22:57:40
653
原创 自定义实现Java Queue队列
写在前面队列就像是我们平时排队一样,先来的人先享受服务,所以队列的一个重要特性就是先进先出(FIFO,First In First Out)。而在Java中,队列Queue的实现类非常多:那么在这里,我们就不一一描述这些实现类了,而是自定义实现队列,实现的方式也是基于两种基本的数据结构,数组和链表。利用数组实现队列利用数组实现队列的时候应该注意一点,那就是队伍本身是在移动的,当队首出队时,排在队首后面的人应该往前移动,就像是我们平时排队一样,队伍最前面的人走了,我们应该往前走一步,把空位补上。
2021-12-09 14:35:54
1321
原创 LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)Java完整代码
LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)方法一import java.util.Scanner;/** * 在这里给出对类 LC4MedianOfTwoSortedArrays 的描述。 * * @作者(yequan17) * @版本(2021.12.8) */public class LC4MedianOfTwoSortedArrays{ public static void main(String[] arg
2021-12-08 16:59:16
492
原创 LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)思路与题解
LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)问题描述思路方法一刚看到这题的时候,想也没想,直接暴力,先合并两个数组,然后排序,再输出中位数。整个过程无非就是注意一下几点:如果有一个数组为空怎么办。合并后数组长度是奇数还是偶数,在这两种情况下中位数的求法会有所差异。于是我们啪啪啪,行云流水,很快啊,就AC了。代码如下:class Solution { public double findMedianSortedA
2021-12-08 16:56:27
528
2
原创 自定义实现Java Stack栈
写在前面从某种角度来说,栈的FILO(first in last out)特性是一个非常有用的特性,正是这样的特性,让栈变得格外重要。所谓的FILO就是先进后出,先进来的元素后出去,后进来的元素先出去,就如同下图中一般。而在Java中,Java类库已经为我们提供来了Stack类来实现栈,并且这个Stack类是范型类,它可以存储不同的数据类型。那么接下来我们就来看一下,Java为我们提供了哪些Stack类方法。...
2021-12-07 20:47:08
582
原创 LeetCode:3.无重复字符的最长字串(longest-substring-without-repeating-characters) Java完整代码
LeetCode:3.无重复字符的最长字串(longest-substring-without-repeating-characters)题解和思路完整代码import java.util.*;/** * 在这里给出对类 LC3LStrWithoutReChar 的描述。 * * @作者(yequan17) * @版本(2021.12.7) */public class LC3LStrWithoutReChar{ public static void main(String[
2021-12-07 14:20:14
282
2
原创 LeetCode:3.无重复字符的最长字串(longest-substring-without-repeating-characters)思路与题解
LeetCode:3.无重复字符的最长字串(longest-substring-without-repeating-characters)题目描述思路这是典型的滑动窗口问题,即通过滑动窗口来找到最长的字串,我们来看一下具体过程:首先字符串abcabcbb如下:然后在字符串第一个位置展开窗口此时,窗口的起始位置start=0,终止位置end=0(注意字符串也是从0开始的),窗口的长度为length=end-start+1=1此时窗口内还没有重复元素,所以end向右移动一位,得到:此时
2021-12-07 14:12:59
459
原创 自定义实现Java ListNode链表
写在前面今天写代码的时候,发现我居然被Java的LinkList的输入卡了半天,所以就打算写一篇博客来整理一下LinkList。链表的定义首先LinkList就是链表,它的基本结构如下:及一个包含数据,和指针的结构,我们将一个节点的指针的节点指向下一个节点,这样就形成了一串链式结构,并称之为:链表。所以对于链表的定义如下:/** * Java ListNode 链表的各种定义方法 * * @作者(yequan17) * @版本(2021.12.6) */public class
2021-12-07 01:20:51
1627
原创 LeetCode:2.两数相加(add two numbers)Java完整代码
LeetCode:2.两数相加(add two numbers)题解与思路谁能想到,我居然被链表的输入给折磨了这么久!import java.util.*;/** * 在这里给出对类 LC2AddTwoNumbers 的描述。 * * @作者(yequan17) * @版本(2021.12.6) */public class LC2AddTwoNumbers{ /** * Definition for singly-linked list. */
2021-12-06 23:52:53
1053
原创 LeetCode:2.两数相加(add two numbers)思路与题解
题目描述思路对较短的链表后面补0,让两个链表的长度相同。然后用n1和n2表示这两个链表每一位的数字。同时注意进位的问题,可以定义一个carry,carry表示是否有进位,如果有则为1,否则为0。那么,sum=n1+n2+carry我们知道sum的取值范围为0~19,那么判断进位有两种方法:1.利用int类型的数字的整除会砍去小数点后面的方法,可以有 carry=sum/10,如果sum大于9,得到的carry为1,否则为02.直接判断,如果sum大于9,则会进位,否则不进位,则carry
2021-12-06 23:05:13
288
原创 LeetCode:1.两数之和(Two Sum)Java完整代码
这是包含输入的完整Java代码。LeetCode:1.两数之和(Two Sum)题解与思路方法一:import java.util.*;/** * 在这里给出对类 LC1TwoSum 的描述。 * LC1-暴力 * @作者(yequan17) * @版本(2021.12.5) */public class LC1TwoSum{ public static void main(String[] args){ Scanner sc=new Scanner(Syst
2021-12-05 17:58:54
693
原创 LeetCode:1.两数之和(Two Sum)思路与题解
LeetCode:1.两数之和(Two Sum)题目内容描述思路方法一:直接两层for循环嵌套,暴力求解两层for循环for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ if(nums[j]==target-nums[i]){ result[0]=i; result[1]=j; } } }当找到nums[i]+
2021-12-05 17:55:12
261
原创 自学前端之CSS实现毛玻璃效果
我们知道,页面中有一种非常好看的效果就是毛玻璃,我们先看一下效果图接下来我们就具体实现一下这个效果先看HTML在body中设置一张背景图片然后设置一个div,用来作为卡片,也是我们需要的毛玻璃的载体。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"
2021-11-21 15:29:13
3897
原创 软件测试概念复习
1.在软件测试过程中,应该遵循的原则原则1:测试用例中一个必须部分是对预期输出或结果的定义。原则2:程序员应当避免测试自己编写的程序。原则3:编写软件的组织不应当测试自己编写的软件。原则4:应当彻底检查每个测试的执行结果。原则5:测试用例的编写不仅应当根据有效和预料到的输入结果,而且也应当更具无效和未预料的输入结果。原则6:检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了不该做的”。原则7:应避免测试用例用后即弃,除非软件本身就是一个一次性的软件。原则8:计划测
2021-11-18 14:00:59
1941
原创 国内如何加速访问GitHub
原理简单介绍在国内访问GitHub速度慢的原因有很多,但最主要的GitHub的分发加速网络的域名遭到污染。因此解决方法就是通过修改系统hosts文件来绕过国内DNS解析,直接访问GitHub的CDN节点,达到加速的目的。具体实现确定ip:https://github.com.ipaddress.com确定静态资源ip:https://github.com.ipaddress.com/assets-cdn.github.com确定域名ip:https://fastly.net.ipad
2021-11-15 21:57:22
2400
1
原创 软件测试复习与几道常见题型
第一章1.1 软件测试定义1.软件测试的理解:软件测试的正向理解 : 验证软件是否符合用户需求,给用户以信心。 软件测试就是为程序或系统能够按预期设想运行而建立信心的过程。 软件测试是一系列活动以评价一个程序或系统的特性或能力并确定是否达到预期的结果”。 测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作。软件测试的反向理解: 发现错误 测试是为了证明程序有错,而不是证明程序无错误 一个好的测试用例是在于它能发现至今未发现的错误 一个成功的测试是发现了至今未发
2021-11-14 15:26:40
5232
原创 分布式复习大纲第九章
第九章 分布式文件系统(2学时)内容:分布式文件系统概述,网络文件系统,Andrew/Coda文件系统,SMB/MS-DFS文件系统。要求:掌握分布式文件的概念和模型,掌握网络文件系统NFS和Andrew/Coda分布式文件系统的实现原理,了解SMB/MS-DFS文件系统。考试重点:9.1:分布式文件系统9.2网络文件系统分布式文件系统文件系统负责组织、存储、提取、命名、共享和保护文件。分布式文件服务应支持透明性要求。分布式文件服务器一般驻留在附网存储器或存储域网中,文件经网络传输
2021-11-14 01:59:01
167
原创 分布式复习大纲第八章
第八章 多副本一致性(2学时)内容:一致性模型,分发协议,一致性协议。要求:掌握分布式系统中,数据存储多副本的目的是为了提高系统的可靠性和性能,掌握数据为中心的7种一致性模式和客户为中心的4中一致性模型,掌握分发协议中更新传播的模式,掌握主-从副本协议和复制写协议的原理与执行过程。一致性模型(考试重点)图中水平线表示客户进程对其数据存储副本执行操作,带箭头的虚线表示写操作向其他副本的传播修改。a中,客户A在其副本上对数据存储的数据项x执行写操作,写入值为a,同时向副本B传播写操作。客户
2021-11-13 21:13:25
355
原创 分布式复习大纲第五章
第五章 分布式系统同步(2学时)内容:时钟同步,逻辑时钟,选举算法,互斥算法。要求:理解分布计算系统中时钟的重要性,掌握逻辑时钟的相关协议与算法,掌握分布式系统中常用的选举算法和互斥算法的原理与过程。时钟同步在单机系统中,时间是确定的。当进程想知道时间时,它发出了一个系统调用,单机系统的内核会返回进程当前的时间。在分布式系统中没有时钟同步措施会发生什么呢?由于时钟不同步,以上两个程序编译之后,make程序检查结果认为不需要重新编译。最终导致二进制代码执行文件是个混合体,既有旧目标文件,
2021-11-13 15:28:57
180
原创 分布式复习大纲第四章
第四章 分布式系统通信(2学时)内容:消息传送,组通信,远程过程调用,远程对象方法调用,事件与通知。要求:掌握分布式系统中组通信的概念和实现,掌握远程过程调用RPC的基本操作,以及远程对象方法的调用机制与实现。消息传送(考试重点)消息传送模式下面是一段包含信息传送的代码,进程P发送一个包含变量S的消息到进程Q;进程Q接收该消息,并置于R。消息传送的模式:消息传送可靠性:消息传送的一个主要特征是可靠性,存在4种不同的可靠性语义组通信对于一个进程和进程组的其他成员,点
2021-11-13 05:42:50
1962
原创 分布式复习大纲第三章
第三章 分布式进程(2学时)内容:分布式进程概述,进程远程执行,进程迁移,分布式对象。要求:复习进程与线程的概念,掌握分布式进程的概念,理解远程进程创建的机制与原理,以及进程迁移的策略与实现,掌握分布式对象的特点。关于进程与线程的概念进程:程序的一次执行,每个进程都有自己独立的一块内存空间。线程:也被称为轻量级进程,一个进程可以有多个线程,多个线程共享一个进程虚拟空间。进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位进程与程序的区别:程序是一个静态的指令集合进程是一个正
2021-11-13 03:09:19
505
原创 分布式复习大纲第二章
第二章 名字服务(2学时)内容:名字服务结构,域名系统,目录服务X.500,活动目录域服务。要求:掌握名字与属性的概念,名字空间、名字服务器、名字解析的相关概念与技术,理解域名服务中域名空间、域名服务器的工作原理,以及目录服务和活动目录域服务的相关协议与技术。...
2021-11-10 00:40:08
720
原创 分布式复习大纲目录
第一章 概论(2学时)第二章 名字服务(2学时)第三章 分布式进程(2学时)第四章 分布式系统通信(2学时)第五章 分布式系统同步(2学时)第六章 多副本一致性(2学时)第七章 分布式文件系统(2学时)...
2021-11-09 11:57:56
1185
原创 分布式复习大纲第一章
第一章 概论(2学时)内容:分布计算的定义与挑战,分布计算系统的互联,分布式操作系统,计算机网络与中间件,分布式计算的模式。要求:掌握分布计算系统的定义,理解分布计算系统的内涵与分布式计算的常用模式,了解分布计算的相关概念。分布式计算的定义分布式计算系统是由多个相互连接的计算机组成的一个整体,这些计算机在一组系统软件(分布式操作系统或中间件)环境下,合作执行一个共同的或不同的任务,最少依赖于集中的控制过程、数据和硬件。实质:分布式计算系统=分布式硬件+分布式控制+分布式数据。分布式计算的挑
2021-11-09 01:54:19
632
原创 实验一 动态规划算法
问题描述:小明想要在王者荣耀游戏里晋升一个段位,假设他一共需打了n场比赛,且必须成功赢得至少70%的场次才能成功晋升。假设每场比赛小明获胜的概率分别=3为p1,p2,…,pn,请帮他算出成功晋级段位的概率是多少?输入:参数1:整数num(0<= num <=1000),表示比赛的场数。参数2:整数数组p[num] = {p1,p2,…,pnum},其中pi表示小明有pi%的概率赢得第i场比赛。(0 <=pi <= 100)输出:成功晋级段位的概率,保留小数点后5位,最后结
2021-10-30 20:10:38
565
分布式第二章自己整理的笔记(最后一点概念直接去博客看),反正免费,看看不亏
2021-11-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人