自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 干货!十分钟搞懂消息队列的选型

大家好,我是程序员史迪仔。消息队列重要吗?有必要学吗?当然重要!想必你在面试或者工作的过程中,被问过以下问题:(1)为什么你们项目要用消息队列?(2)用了消息队列后有什么好处?(3)消息队列有 ActiveMQ、ZeroMQ、MetaMQ、RabbitMQ、RocketMQ、Kafka等,你是怎么选型的?(4)你能对比下 RabbitMQ、RocketMQ、Kafka 吗?如果你只会回答 ”我只会用这个消息队列“、”公司用的是这个消息队列“ 等等,可以肯定的告诉你将会被 pass 掉。技术选

2022-11-06 17:27:04 2392 1

转载 Java8 新特性:(二)Stream

一、前言二、Stream概述三、Stream的创建三、Stream的使用3.1 遍历/匹配(foreach/find/match)3.2 筛选(filter)3.3 聚合(max/min/count)3.4 映射(map/flatMap)3.5 归约(reduce)3.6 收集(collect)3.6.1 归集(toList/toSet/toMap)3.6.2 统计(count/averaging)3.6.3 分组(partitioningBy/groupingBy)3.6.4 接合(joining)3..

2022-02-06 14:32:37 510

原创 SpringBoot 配置系列:(二)多环境配置

一、引言二、配置文件类型三、修改配置环境方式一、引言一个项目在开发环境、测试环境、生产环境等不同的环境会有不同的配置,比如数据库的配置就不同。所以下面就学习 SpringBoot 的多环境配置,使得不需要每次换环境都去修改配置。二、配置文件类型配置文件主要有四种:application.yml 启动服务时,服务器会自动加载的配置文件application-dev.yml 开发环境的配置文件application-test.yml 测试环境的配置文件applicat.

2022-02-06 14:10:09 1031

原创 Java8 新特性:(一)Lambda表达式

一、Lambda 表达式是什么?二、Lambda 用法2.1 Lambda 语法2.2 替代匿名内部类2.3 对集合进行迭代2.4 Lambda 表达式结合Stream对集合操作一、Lambda 表达式是什么?Lambda 表达式是 Java SE 8 中一个重要的新特性。Lambda 表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体。Lambda表达式还增强了集合库,添加了2个对集合数据进行批量操作的包: java.util.

2022-02-06 14:09:19 649

原创 Java单元测试之Mock框架

一、引言二、为什么要用Mock三、Mock使用场景四、Mock定义五、Mock框架五、Mockito5.1 Mockito基本使用5.2 MockMVC测试5.2.1 初始化MockMvc对象5.2.2 接口测试5.2.3 常用API一、引言实际工作中,可能会遇到如下情况:场景一:依赖接口不通,甲开发A模块,乙开发B模块,甲的进度比乙快,但A模块的方法依赖于B模块,要测试A模块接口怎么办?场景二:异常数据难模拟,当需要测试接口一些异常数据,接口正常情况是否无法提供异常数据的。那么如何简便地构造.

2021-12-13 23:18:55 10447 2

原创 SpringBoot 日志系列:(二)日志配置

一、application.properties 或 application.yml 配置1.1 日志级别1.2 文件输出1.3 日志输出格式二、自定义日志配置2.1 根节点 <configuration>包含的属性2.1.1 属性一:设置上下文名称 <contextName>2.1.2 属性二:设置变量 <property>2.1.3 子节点一 <appender>2.1.4 子节点二 <root>2.1.5 子节点三 <loger&gt.

2021-12-13 22:49:44 2520

原创 SpringBoot 日志系列:(一)日志类型

日志类型及使用方式

2021-12-12 16:54:47 1883

原创 JVM调优参数

JVM调优参数配置方式内存参数合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入JVM调优参数配置方式java [options] MainClass [arguments]options - JVM启动参数。 配置多个参数的.

2021-12-12 16:06:40 10613 1

原创 SpringBoot 返回 Json 数据格式

一、@RestController 注解二、Jackson1、对象、List、Map 转换为Json格式2、Jackson 的配置类三、Fastjson1、Fastjson 配置类四、封装返回的数据格式一、@RestController 注解在 Spring Boot 中的 Controller 中使用 @RestController 注解即可返回 JSON 格式的数据。@RestController 注解包含了 @Controller 和 @ResponseBody 注解。@ResponseB.

2021-12-09 23:49:15 8955

原创 Java 枚举 (enum) 使用方法

什么是枚举?枚举类型是Java 5中新增特性的一部分,它是一个特殊的class,这个class相当于final static修饰,不能被继承。所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。在没有枚举类型时定义常量常见的方式/** * Created by zejian on 2017/5/7. * Blog : http://blog.csdn.net/javazejian [原文地址,请尊重原创] * 使用普通方式定义日期常量 .

2021-12-08 20:55:44 2136

原创 SpringBoot Controller层接收参数的方式

入参注解GET方式传参POST方式传参入参注解先来了解几个入参注解的定义:@RequestParam:获取查询参数,用在方法的参数前面。即 url?name= 这种形式。比如http://localhost:8080/demo/123?name=suki_rongString a =request.getParameter("a")。@PathVariable:路径变量。参数与路径上大括号里的名字要一致。RequestMapping("user/get/mac/{macAddress.

2021-12-08 20:55:25 3555 1

原创 SpringBoot 加载配置文件

Springboot加载内部配置文件的顺序Spring Boot 启动会扫描以下位置的 application.properties 或者 application.yml 文件作为 Spring Boot 的默认配置文件。加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖底优先级的内容,形成互补配置。工程根目录:./config/工程根目录:./classpath:/config/classpath:/举例:先配置classpath:/appliactio.

2021-12-07 20:19:24 635

原创 Maven 的 pom.xml 文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 重要的配置!!! --> <!-- 父项目的坐标

2021-12-07 19:04:25 418

原创 需求开发复盘

需求复盘

2021-12-06 10:15:42 358

原创 SpringBoot 解决跨域问题

一、什么是跨域 CORS二、为什么会有跨域问题三、有哪些跨域类型四、解决跨域问题的五种方式1. 添加跨域配置类2. 重写WebMvcConfigurer3. 注解 @CrossOrigin4. 自定义过滤器5. 手动设置响应头一、什么是跨域 CORS当一台服务器资源从另一台服务器(不同 的域名或者端口)请求一个资源或者接口,就会发起一个跨域 HTTP 请求。举个简单的例子,从http://aaa.com/index.html,发送一个 Ajax 请求,请求地址是 http://bbb.com/下面.

2021-12-06 00:35:45 764 4

原创 Git 开发流程整理

一、Git 分支介绍1.1 主分支 master1.2 开发分支 develop1.3 临时性分支1.3.1 功能分支 feature branches1.3.2 预发布分支 release branches1.3.3 修补bug分支 fixbug branches二、Git 提交基本流程一、Git 分支介绍1.1 主分支 master代码库应该有且只有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默.

2021-07-17 20:49:35 247

原创 设计模式七大原则

设计模式七大原则一、设计模式的目的二、设计模式七大原则1、单一职责原则2、接口隔离原则(Interface Segregation Principle)3、依赖倒转原则4、里氏替换原则开闭原则设计模式七大原则一、设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:..

2020-12-22 00:17:40 258

原创 设计模式之建造者模式

盖房项目需求1、需要建房子:这一过程为打桩、砌墙、封顶。2、房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的。传统方式解决盖房需求package builder.normal;public abstract class AbstractHouse { //打地基 public abstract void buildBasic(); //砌墙 public abstract void buildWalls(); //.

2020-12-21 09:49:39 357

原创 设计模式之原型模式(深拷贝和浅拷贝)

讲原型模式前先来看下克隆羊问题:现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10只羊。传统方式解决该问题:思路:package com.atguigu.prototype;public class Client { public static void main(String[] args) { // TODO Auto-generated method stub //传统的方法 Sheep sheep =.

2020-12-20 21:18:02 702 1

原创 IDEA添加Github账号报错 Incorrect credentials.Request response: 401 Unauthorized

今天用IDEA上传项目到Github,登录时候遇到一个错误:Incorrect credentials.Request response: 401 Unauthorized网上找了很多教程大多不行,最后看到了发现可用token来登录登陆我们的Github账号,进入设置页面,并点击红框选项点击红框选项Note里面随便填,下面全部勾选上然后就会出现如图所示的token,复制接着就是到IDEA粘贴上去了...

2020-12-10 17:27:26 2168 1

原创 2019年第十届蓝桥杯国赛试题及解析(Java B组)

结果填空题试题 A: 递增序列(5分)【问题描述】对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向右看、或者从上向下看是递增的。例如,如下矩阵中LANNQIAO有LN、LN、AN、AN、IO、AO、LQ、AI、NO、NO、AQ、IN、AN 等 13 个递增序列。注意当两个字母是从左下到右上排列时,从左向右看和从上向下看是不同的顺序。对于下面的 30 行 50 列的矩阵,请问总共有多少个递增序列?(如.

2020-11-12 00:54:59 7731 10

原创 2020年第十一届蓝桥杯省赛及国赛心得(Java B组)

省赛今年省赛五道结果填空题,五道程序设计题。结果填空前三道比较简单,都对了。最后两道结果填空题有点难,就直接跳过去做程序设计题。前两道送分题,第三道深搜,第四道时间来不及,我直接暴力过50%样例。最后一道直接提交样例答案,不知道能混个两分吗?后面回头想去做结果填空题来不及了,最后一道填空题应该是可以做出来的。总的来说,六道半是对的吧!比赛后有点失落,因为感觉省一有点悬!加上没怎么准备省赛,靠啃老本,所以对于能不能进决赛也是不怎么抱希望!成绩公布后,居然省一了。有点开心,也有点失望,因为疫情北京去不成.

2020-11-10 11:48:09 4338 9

原创 23设计模式之外观模式 简单易懂总结

讲外观模式之前先来看一个应用!组建一个家庭影院:需要DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开 DVD,选 dvd去拿爆米花调暗灯光播放观影结束后,关闭各种设备传统方式解决该问题:传统方式解决影院管理问题分析在 ClientTest 的 main 方法中,创建各个子系统的对象,并直接去调用子系统(对象)相关方法,会造成调用过程混乱,没有清晰的过程不利.

2020-11-05 15:52:16 301

原创 2017年第八届蓝桥杯国赛试题及详解(Java B组)

结果填空 (满分17分)结果填空 (满分45分)代码填空 (满分23分)程序设计(满分43分)程序设计(满分71分)程序设计(满分101分)1. 标题:平方十位数由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?注意:你需要提交的是一个10位数字,不要填写任何多余内容。答案解析答案:9814072356如果直接从 98765..

2020-11-04 12:07:26 1661 8

原创 SSM框架引用前端框架Layui及引用失败分析

Layui 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式。对于搞后端的,是一大利器。Layui官网:https://www.layui.com/下面介绍怎么引用它,这里以官方的一个实例来讲,实现以下界面效果。步骤一下载好Layui压缩包并解压步骤二将解压后的文件夹里面的layui文件夹复制到项目下,我这里用的环境是eclipse步骤三引入Layui框架的css文件和js文件<!DOCTYPE html>&lt.

2020-11-01 16:01:56 1552 1

原创 设计模式之代理模式(三种形式)

代理模式的基本介绍静态代理代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。通俗的来讲代理模式就是我们生活中常见的中介。被代理的对象可以是远程对象、创建开销大的对象或者需要安全控制的对象。代理模式有不同的形式,主要有三种:静态代理、动态代理(JDK代理、接口代理)和 Cglib代理(可以在内存动态的创建对象,而不需要实现接口属于动态代理的范畴)。代理模式的示意图静态代理基本介绍静态代理在使用时,需要定义接口或者父类,被代.

2020-10-29 18:10:28 1355

原创 2020年第十一届蓝桥杯省赛第二场Java B组 总结

结果填空题试题 A: 门牌制作(5分)试题 B: 寻找 2020(5分)结果填空题试题 A: 门牌制作(5分)【问题描述】小蓝要为一条街的住户制作门牌号。这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个字符 0, 2 个字符 1, 1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要...

2020-10-28 22:27:15 3499 3

原创 设计模式之策略模式 通俗易懂

策略模式 (Strategy Pattern): 策略模式定义了一系列算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户端。把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。举个例子,鸭子有很多属性:飞行、鸣叫、展现形式等。鸭子又有很多类型,比如北京鸭,会游泳会叫不会飞;野鸭,会游泳会叫会飞;玩具鸭,不会游泳不会叫不会飞。由于要做一个通用的鸭子对象模型,所..

2020-10-26 20:45:07 341

原创 工厂模式(简单工厂模式和工厂方法模式)详解

工厂模式: 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。可分为简单工厂模式、工厂方法模式。以下分别对两种模式进行介绍。简单工厂模式 (Simple Factory Pattern): 又称为静态工厂方法 (Static Factory Method) 模式,属于创建型模式,但不属于 23 种 GOF 设计模式之一。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,这个类就是工厂类,被创建的.

2020-10-25 12:13:06 2446 2

原创 计算机网络知识点(持续更新中)

计算机网络学习笔记(一)

2020-10-23 16:53:06 241 1

原创 23种设计模式(持续更新中)

设计模式(Design pattern),主要分创建型模式、结构型模式和行为型模式。以下是设计模式的主要介绍:单例模式

2020-10-23 16:47:29 179

原创 设计模式之单例模式(五种模式)

单例模式: 只有一个实例,并且只负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式属于创建型模式。常用单例模式有饿汉模式、懒汉模式、双重锁懒汉模式、静态内部类模式、枚举模式。四大原则:构造函数是私有的以静态方法或者枚举返回实例确保实例只有一个,尤其是多线程环境确保反序列换时不会重新构建对象饿汉式: 饿汉式在类被初始化时就已经在内存中创建了对象,也就是不管你有没有用到,都先建好了。没有线程安全的问题,因为用到了st.

2020-10-23 16:44:53 436

原创 计算机网络基础知识概念汇总

计算机网络基础知识及概念1.1 概念、组成、功能和分类1.1 概念、组成、功能和分类

2020-10-22 18:00:28 461 1

原创 【Java】蓝桥杯 算法提高ADV(二)

ADV-99 算法提高 栅格打印问题(模拟)ADV-126 算法提高 扫雷(模拟)ADV-302 算法提高 秘密行动(dp)ADV-305 算法提高 输出二进制表示(API)ADV-327 算法提高 研究兔子的土豪(斐波那契循环节)ADV-99 算法提高 栅格打印问题(模拟)原题链接:http://lx.lanqiao.cn/problem.page?gpid=T210...

2020-10-17 23:51:55 351

原创 第八届蓝桥杯软件类省赛 Java B组 题目及解析

结果填空题:1. 标题: 购物单2. 标题:纸牌三角形结果填空题:1. 标题: 购物单问题描述小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。...

2020-10-12 17:47:44 307

原创 【Java】蓝桥杯历届试题PREV(一)

PREV-55 试题 历届试题 小计算器(模拟+进制转换API)PREV-55 试题 历届试题 小计算器(模拟+进制转换API)原题链接:http://lx.lanqiao.cn/problem.page?gpid=T459【问题描述】模拟程序型计算器,依次输入指令,可能包含的指令有数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余进.

2020-10-09 20:13:24 316

原创 第九届蓝桥杯软件类省赛 Java B组 题目及解析

结果填空题1. 标题:第几天2. 标题:方格计数3. 标题:复数幂结果填空题1. 标题:第几天问题描述2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。答案解析方法一:最简单的方法就是打开电脑日历数:125。方法二:能被400整除,或者能被4整除但不能被100整除的就是闰年。故 31+29+31+30+4 = 1252. 标题:方格计数问题描述如图 p1.png 所示,在二维平面上有无..

2020-10-03 21:59:03 2237

原创 【Java】next() 和 nextLine() 的用法区别详解

next()读取到有效字符后才可以结束输入对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符nextLine()nextLine() 方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符可以得到带空格的字符串的用法:测试1:nextLine() 在前,next() 在后,且输入都没有空格.

2020-09-15 17:06:27 683

原创 第十届蓝桥杯软件类省赛 Java B组 题目及解析

结果填空题ABCD结果填空题A答案解析从一号位到五号位,每个号位选出一个人,且每个号位所选的人编号不能相同,这个是隐藏的要求。直接打开计算器计算即可,97 + 99 + 99 + 97 + 98 = 490 选法不唯一, 和唯一。B答案解析用双重循环从左到右对原字符串进行截取,然后存入集合里,最后集合的大小就是答案,结果是100。import java.util.HashSet;import java.util.Scanner;public class Main ..

2020-08-17 17:02:47 1955 1

原创 Java 实现简单邮件发送功能

今天学习了一个新技能,用Java实现邮件的发送。首先,写出以下代码package cn.itcast.travel.util;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.util.Properties;/** * 发邮件工具类 */public final class MailUtils { .

2020-08-01 20:09:56 352

空空如也

空空如也

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

TA关注的人

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