自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (7)
  • 收藏
  • 关注

原创 一个简易的工资交税计算器

import java.math.BigDecimal;import java.util.Arrays;import java.util.Scanner;/** * 个人所得税计算器 */public class Main { //免征额 private static Integer EXEMPTION = 5000; //税率表 private static Double RATE1 = 0.03; //不超过36,000元的部分 private

2021-05-14 15:57:30 478 2

原创 MySQL索引

一、如何判断数据库索引是否生效使用explain分析语句如下:可以看到,使用explain显示了很多列,各个关键字的含义如下:table:顾名思义,显示这一行的数据是关于哪张表的;type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为:const、eq_reg、ref、range、indexhe和ALL;possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从where语句中选择一个合适的语句;key: 实际使用的索

2021-03-04 15:32:12 409 2

原创 SpringBoot集成Swagger

SpringBoot集成Swagger1、新建一个SpringBoot、web项目2、导入相关依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency&g

2021-02-28 21:50:27 1130

转载 SpringBoot定时任务

玩转SpringBoot之定时任务详解文章目录玩转SpringBoot之定时任务详解序言一、静态:基于注解1、创建定时器2、启动测试二、动态:基于接口1、导入依赖包:2、添加数据库记录:3、创建定时器4、启动测试三、多线程定时任务1、创建多线程定时任务2、启动测试序言使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:一、基于注解(@Scheduled)二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定

2021-02-25 11:23:17 2143 2

转载 EasyExcel,让excel导入导出更加简单

EasyExcel,让excel导入导出更加简单EasyExcel在做excel导入导出的时候,发现项目中封装的工具类及其难用,于是去gitHub上找了一些相关的框架,最终选定了EasyExcel。之前早有听闻该框架,但是一直没有去了解,这次借此学习一波,提高以后的工作效率。实际使用中,发现是真的很easy,大部分api通过名称就能知道大致意思,这点做的很nice。参考文档,大部分场景的需求基本都能够满足。GitHub上的官方说明快速开始maven仓库地址<dependency&gt

2021-02-24 15:20:02 588

原创 短信验证码登录

短信验证码登录构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);将手机号–验证码、操作时间存入Session中,作为后面验证使用;接收用户填写的验证码及其他数据;对比提交的验证码与Session

2021-02-24 10:52:33 195 1

原创 TKmybatis的框架介绍及使用方法

TKmybatis的框架介绍及使用方法一、框架配置配置的话非常简单,我用的是SpringBoot,直接引入:<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.3-beta1</version></dependency>

2021-02-23 11:17:58 2469 1

原创 Postman使用 ———— 本地与测试环境的切换

1.填写环境名称:“本地环境”2.填写环境变量A的name:“url”,3…填写环境变量A的value:“http://xxxx.com(请求的地址)”4.点击“save"添加,添加完毕会页面右上角“眼睛”图标查看自己添加的环境变量同样的方法添加测试环境即可。。。。。。这样不同的环境里的url所代表的变量值不同,可以切换不同的环境,代表的地址不同,这样就可以灵活切换环境,不用测试完一个环境,换一个环境而去修改每一个请求的host。...

2021-02-19 18:27:28 1540 1

原创 Postman使用

如何使用Postman?下图是Postman的工作区间,各个模块功能的介绍如下:New,在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock Server 和 Monitor以及API。Import,这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。Runner,可以通过Collection Runner执行自动化测试。后续介绍。Open New,打开一个新的标签,Postman窗口或Runner窗口。My Workspace - 可以单独或以团队的

2021-02-19 18:13:14 264

原创 JWT与token+redis对比

16、JWT与token+redis对比分析一、使用Token+redis的好处?1.性能问题。JWT方式将用户状态分散到了客户端中,相比于session,可以明显减轻服务端的内存压力。Session方式存储用户id的最大弊病在于Session是存储在服务器端的,所以需要占用大量服务器内存,对于较大型应用而言可能还要保存许多的状态,一般还需借助nosql和缓存机制来实现session的存储,如果是分布式应用还需session共享。2.单点登录。JWT能轻松的实现单点登录,因为用户的状

2021-02-07 13:29:22 6896 4

原创 执行一句SQL发生了什么?

零、数据库驱动MySQL 驱动在底层帮我们做了对数据库的连接,只有建立了连接了,才能够有后面的交互。一、数据库连接池数据库连接池有 Druid、C3P0、DBCP采用连接池大大节省了不断创建与销毁线程的开销,这就是有名的「池化」思想,不管是线程池还是 HTTP 连接池,都能看到它的身影二、SQL 接口MySQL 中处理请求的线程在获取到请求以后获取 SQL 语句去交给 SQL 接口去处理。三、查询解析器将 SQL 接口传递过来的 SQL 语句进行解析,翻译成 MySQL

2021-02-07 11:00:05 2086 2

原创 基金的投资风格

投资风格价值风格格雷厄姆:低估值价值投资,低市盈率低市净率。代表:中欧曹名长巴菲特:合理价格买入优秀公司。代表易方达张坤,东方红平衡风格彼得林奇:综合考虑估值和成长性。代表指标:PEG = PE/G = 市盈率/未来盈利增速代表:兴全董承非、谢治宇成长风格费雪:看中企业未来盈利成长性,估值是次要的代表:富国朱少醒,景顺长城刘彦春标准盈利收益率法盈利收益率法由格雷厄姆(巴菲特的老师)提出的,是一个简单快速进行估值的方法,。这个方法有两个标准:a、盈利收益率要大于1

2021-02-06 10:43:09 363

原创 Spring集成Quartz定时器

Spring集成Quartz定时器导包<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version></dependency>创建spring-quartz.xml文件,并且配置web.xml扫描配置web.

2021-02-05 11:26:11 138

原创 MySQL筛选当天、当月数据

当天数据select * from table where date(regdate) = curdate();筛选当月数据select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')补充向日期中添加指定时间间隔DATE_ADD(date,INTERVAL expr type)date 参数是合法的日期表达式。expr 参数是您希望添加的时间间

2021-02-04 14:48:07 1912

原创 MySQL优化

MySQL优化概述系统的吞吐量瓶颈往往出现在数据库的访问速度上,随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢,数据是存放在磁盘上的,读写速度无法和内存相比。数据库层面MySQL的逻辑架构最上层的服务并不是Mysql独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构第二层架构中,大多数的MYSQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(日期时间等),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等第三层包

2020-12-12 15:13:26 1159 3

原创 MySQL高级

MySQL核心配置文件查看本机MySQL配置文件所在位置[mysqld]# socket=MYSQL# The TCP/IP Port the MySQL Server will listen onport=3306# Path to installation directory. All paths are usually resolved relative to this.# basedir="C:/Program Files/MySQL/MySQL Server 5.6/"#

2020-12-11 09:08:34 147

原创 面试汇总

面试汇总1.两个比较完美的单例模式答案: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍二种:懒汉式单例、饿汉式单例、​ 1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打

2020-12-11 08:53:37 463

原创 MQ高级

死信队列什么是死信队列一般来说,producer将消息投递到queue中,consumer从queue取出消息进行消费,但某些时候由于特定的原因导致queue中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信(Dead Letter),所有的死信都会放到死信队列中。“死信”消息会被RabbitMQ进行特殊处理,如果配置了死信队列信息,那么该消息将会被丢进死信队列中,如果没有配置,则该消息将会被丢弃。消费者消费消息​ 1)正常消费–>手动ack–>MQ从队列中删除消息

2020-12-11 08:48:17 308

转载 TCP/IP图文详解

作者:Ruhengjuejin.im/post/6844903490595061767一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,

2020-12-09 11:11:23 416

原创 秒杀项目

秒杀系统介绍​ 秒杀无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动秒杀系统特点高并发:秒杀的特点就是这样时间极短、 瞬间用户量大。库存量少:一般秒杀活动商品量很少,这就导致了只有极少量用户能成功购买到。业务简单:流程比较简单,一般都是下订单、扣库存、支付订单恶意请求,数据库压力大

2020-12-08 22:53:41 1391 1

原创 MyBatis代码生成器

MyBatis Plus 代码生成器​ AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。 代码生成器采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 官网地址https://mp.

2020-12-08 21:01:31 278

原创 测压软件-------JMeter下载、安装与使用

测压软件----JMeter下载、安装与使用Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。一、下载地址:https://jmeter.apache.org/download_jmeter.cgi二、解压进入bin文件夹打开jmeter.sh

2020-12-08 20:38:27 373

原创 微服务笔记

一、Nginx关于Nginx的location路径映射优先级关系如下:(location =) --> (location /xxx/yyy/zzz) -->(location ^~) -->(location ~ ,~*)–>(location /起始路径)–>(location /)# 1. 直接匹配location = / { # 精准匹配,主机名后面不能带任何的字符串}# 2. 通用匹配location /xxx { # 匹配所有以/xxx

2020-12-04 17:50:53 215

原创 MyBatisPlus笔记

简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现.

2020-12-04 17:49:05 454 5

原创 IDEA隐藏.idea等不用的文件

idea怎么隐藏.idea等不用的文件?在开发工具最左侧有一个file菜单,点击;在弹出的菜单中找到setting,点击:在设置页面中,找到editor并点击,在页面右侧,有一栏Ignore files and folders,可以在该栏下面的搜索框中输入;+想要隐藏的文件后缀,例如:;.idea;然后我们再返回去看项目,.idea文件已经隐藏掉了:idea文件已经隐藏掉了:...

2020-12-02 15:08:52 514

原创 修改Tomcat端口

修改Tomcat端口号一、打开tomcat目录二、打开conf目录 接着打开server.xml找到如下这段话修改port为你要改成的端口号 默认是8080三、接着保存再启动tomcat即可。

2020-11-27 17:27:17 280

转载 SQL优化

SQL优化[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DeTNyA73-1606442572862)(C:\Users\bxc\AppData\Roaming\Typora\typora-user-images\image-20201127095635231.png)]优化成本:硬件>系统配置>数据库表结构>SQL及索引。优化效果:硬件<系统配置<数据库表结构<SQL及索引。对于MySQL层优化我一般遵从五个原则:减少数据

2020-11-27 10:04:01 207

原创 简单介绍秒杀模块

如何设计一个秒杀系统,是后台求职的标准问题,可以考出求职者方方面面的知识面,以下为自己对设计秒杀系统的总结和心得。尽可量拓展面试中可能遇到的问题和实际设计中一些关键的问题。一,简介秒杀系统就是电商系统的一种形式,通过设计秒杀模块来应对实际电商平台中最考验系统架构的部分。秒杀系统特点:业务简单(卖家查询,买家下订单减库存),商品定时上架,时间短,瞬时并发量高。拼多多App中这种设计很常见,动不动就会蹦出来一个秒杀模块,这就是我们目标需要实现的系统。二,设计思路核心思路是通过缓存,异步,限流来保证系

2020-11-27 09:34:53 1740

原创 vi编辑器常用命令

常用vi编辑器命令行对于VI的命令行,不需要特意的去记忆,写下来,让要用到的时候能找到就行游标控制h游标向左移j游标向下移k游标向上移l (or spacebar)游标向右移w向前移动一个单词b向后移动一个单词e向前移动一个单词,且游标指向单词的末尾(移到当前句子的首部)移到下一个句子的首部{移到当前段的首部}移到下一段的首部[[移到当前区段的首部]]移到下一个区段的首部0移到

2020-11-26 20:21:54 336

转载 nginx启动,重启,关闭

nginx启动、重启、关闭方式一:传统方法一、启动cd usr/local/nginx/sbin./nginx二、重启更改配置重启nginxkill -HUP 主进程号或进程号文件路径或者使用cd /usr/local/nginx/sbin./nginx -s reload判断配置文件是否正确nginx -t -c /usr/local/nginx/conf/nginx.conf或者cd /usr/local/nginx/sbin./nginx -t三、关闭查询ng

2020-11-26 08:55:22 381

转载 RPC和HTTP的区别

RPC和HTTP的区别作者:浮生忆梦blog.csdn.net/m0_38110132/article/details/81481454很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在

2020-11-25 10:03:42 145

转载 IDEA配置

IDEA配置作者:琦彦blog.csdn.net/fly910905/article/details/77868300文章目录IDEA配置@[toc]1.设置maven2.IDEA 设置代码行宽度3.IDEA 提示不区分大小写4.IntelliJ强制更新Maven Dependencies5.idea的环境配置默认保存位置`6.隐藏不想看到的文件或者文件夹(类似eclipse的filter功能)`7.修改为Eclipse快捷键8.修改默认设置--default setting9.修改智能提示快捷键10

2020-11-25 10:00:47 861

转载 敏捷开发

三分钟了解敏捷开发小灰经过千辛万苦,终于拿到了心仪的 offer,今天小灰上班的第一天 ……下班后,小灰找到同学大黄来请教 ……#场景一:小灰在餐厅#场景二:无奈的项目经理#什么是敏捷开发?敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出

2020-11-24 21:09:40 183

原创 重写与重载的区别

重载和重写的区别重载就是同样的⼀个⽅法能够根据输⼊数据的不同,做出不同的处理重写就是当⼦类继承⾃⽗类的相同⽅法,输⼊数据⼀样,但要做出有别于⽗类的响应时,你就要覆盖⽗类⽅法重载发⽣在同⼀个类中,⽅法名必须相同,参数类型不同、个数不同、顺序不同,⽅法返回值和访问修饰符可以不同。下⾯是《Java 核⼼技术》对重载这个概念的介绍:综上:重载就是同⼀个类中多个同名⽅法根据不同的传参来执⾏不同的逻辑处理。重写重写发⽣在运⾏期,是⼦类对⽗类的允许访问的⽅法的实现过程进⾏重新编写。返回值类型、

2020-11-23 00:11:06 171

原创 CentOS7配置IP静态地址方法

CentOS7配置IP静态地址方法本文介绍了最小化安装CentOS7的情况下如何配置静态IP地址。供大家参考。配置方法1、查看IP地址最小化安装CentOS7后首先查看网卡状态,由于是最小化安装,没有ifconfig等工具,咱们可以使用自带的ip命令查看(根据服务器型号,特别是网卡型号的不同,会生成不同的设备名称,所以无脑直接使用网络上很多修改配置文件的命令通常会失败,正规做法可以先查看网卡设备名称):ip addr2、查看网卡数据发现网卡设备名称为ens33(lo为环回口,是默

2020-11-20 14:54:55 2004

原创 “java“.intern==“java“为false(intern方法解析)

对Java中String.intern()方法的理解String.intern()在API中的解释public class A { public static void main(String[] args) { String s1 = new StringBuilder("go") .append("od").toString(); System.out.println(s1.intern() == s1); String s2 = new StringBuilder

2020-11-18 00:20:03 361 1

原创 Exception和Error的区别

问题:1.Exception和Error的区别2.运行时异常和一般异常的区别3.写出几种常见的运行时异常标准回答:1.Exception和Error的区别Exception和Error都继承自Throwable,在Java中只有Throwable类型的实例才可以被抛出或捕获。Error指正常情况下不太可能出现的情况,绝大部分的Error或导致程序崩溃,处于非正常的不可恢复的状态,如OutOfMemoryError、StackOverflowError。是程序中不应该试图捕获的严重问题。Exce

2020-11-17 22:24:14 5057

原创 Verify the connector’s configuration, identify and stop any process that’s listening on port 20000,

端口占用解决办法Verify the connector’s configuration, identify and stop any process that’s listening on port 20000, or configure this application to listen on another port.翻译:验证连接器的配置,识别并停止正在侦听端口20000的任何进程,或将该应用程序配置为侦听另一个端口。原因:由于之前使用改端口的程序不正常关闭,导致端口并未释放,需要手

2020-11-17 11:32:36 20660 1

原创 03循环结构(笔记)

循环结构一、循环的概念概念:通过某个条件,重复的执行一段逻辑代码。二、while循环语法:while(布尔表达式){//逻辑代码}执行流程:先对布尔表达式进行判断,结果为true,则执行逻辑代码本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。循环的组成需求:打印100遍“HelloWorld"注意:循环有四部分组成初始与迭代whlie的特

2020-11-14 09:43:36 132

原创 02选择结构与分支结构(笔记)

选择结构与分支结构一、基本的if选择结构选择结构概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。语法:if(布尔表达式){//代码块}执行流程:对布尔表达式先进行判断结果为true,则先执行代码块,再执行后续代码。结果为false,则跳过代码块,直接执行后续代码。二、if else选择结构语法if(布尔表达式){​ //代码块1}else{//代码块2}执行流程:对布尔表达式进行判断。结果为true,则先执行代码块1,再退

2020-11-13 09:29:13 781

jdk-8u251-windows-x64.zip

这是一个JDK安装压缩包 里面包含一个安装文件,以及一份安装指南, JDK版本是1.8,目前主流的就是1.8版本 大家可以自行安装 免费分享

2020-11-09

myshop.zip

这是一个商城项目的源代码,下载后,可以根据自己的环境,配置好数据库,例如用户名密码等,以及一些相关的参数。

2020-11-05

数据结构和算法.zip

内部包含: 数据结构与算法 + 数组 + 数组排序 + 栈 + 队列 + 堆 + 树 + 红黑树 + Bitmap算法 + 最小生成树 + 图的最短路径等。。。。 共25个项目,大家下载自行查看。

2020-11-01

HashMap.zip

HashMap总结、面试资料!!(2020下半年) 包含:HashMap线程安全 + ConcurrentHashMap + HashMap + 源码分析 + jdk1.8的HashMap和ConcurrentHashMap。 欢迎下载学习

2020-11-01

dubbo面试题.zip

dubbo最新面试资料2020下半年,仅供学习,需要的同学可以下载学习。 更多资料请关注,私聊我!!

2020-11-01

数据库连接池及DBUtils的包.zip

全套数据库连接包: c3p0:源码包+jar包 druid连接池包 dbcp连接池包 基本数据库连接connector.jar包 .......

2020-11-01

Typora图床设置.zip

保存Typora到Gitee,防止图片丢失。 内含资源(PicGo+node+安装说明)。 免费下载,分享给大家。

2020-11-01

空空如也

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

TA关注的人

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