自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

转载 为什么很多程序员不用 switch,而是大量的 if...else if ...?

本文转载自知乎:https://www.zhihu.com/question/300975864/answer/1805558020说来也是巧最近在看 Dubbo 源码,然后发现了一处很奇怪的代码,刚好和这个 switch 和 if else 有关!让我们来看一下这段代码,它属于 ChannelEventRunnable,这个 runnable 是 Dubbo IO 线程创建,将此任务扔到业务线程池中处理。看到没,把 state == ChannelState.RECEIVED ...

2021-03-31 09:50:02 981 1

原创 win10下Xshell或Xftp缺少mfc110.dll msvcr110.dll怎么破?

win10 64位安装了Xshell和Xftp后运行提示缺少mfc110.dll和msvcr110.dll按照网上的教程,一般都是要求去下载缺少的dll文件,然后注册一下就可以了,或者下载一个VSU4vcredist_x64.exe重新安装,但是都无法解决问题。查看自己的系统文件,发现这两个文件确实又存在,但是点击之后,又各种提示缺少这两个文件问题原因:出现此问题的原因主要是未安装VC++2012和VS2012的组件解决办法:下载安装相应的组件下载地址:https://w.

2020-12-01 10:00:06 4193 3

原创 Alibaba Cloud Toolkit使用IntelliJ IDEA部署应用到Windows服务器

现在面临一个场景,就是现在我们开发者使用IDEA开发完后台代码,需要部署到windows服务器上面。我们后台现在一般使用SpringBoot进行开发,然后打成一个jar包,丢到服务器上java -jar去运行。那么想做完上面的这些就需要经历以下步骤:远程连接到windows服务器 把springboot项目打成jar包 复制jar包上传到服务器 cmd运行java -jar 以上四个步骤,假如在涉及前后端对接开发的时候,部署起来就比较麻烦,每修改一次代码,就需要经...

2020-10-21 15:34:30 1401

原创 Spring框架getBean()方法返回对象为什么只能转成接口对象,转换成接口的实例会报错?

问题的出现是因为有人问我,为什么他在学习Spring框架的时候,他在xml文件当中定义了一个Bean,最后在调用getBean()方法获取这个Bean的时候,必须转换成这个Bean对应的接口,而不能转换成这个接口的实现类。我在网上一查,发现也有对应的问题,但是感觉对应的答案都不够正确,或者不够解答我的疑惑现在我们开始重现这个问题第一步:创建接口和对应的实现类//...

2020-01-17 14:03:40 4135 7

原创 SpringBoot整合Flyway数据库版本管理

介绍flyway官网Flyway是一款数据库版本控制管理工具,支持数据库版本自动升级。比如我们在开发过程当中,某个成员在某个表当中新增了一个字段,那么开发库和测试库的同步就需要手动去完成。还比如某个开发成员新增了一个数据表,假如想同步数据库,那么也需要手动去完成。现在我们就可以使用flyway来帮我们自动的去完成这个工作。使用步骤第一步:新建一个springbo...

2019-12-11 15:48:03 2109

原创 MySQL8.0.18版本的数据库安装过程

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。一:MySQL安装包下载打开网站去下载MySQL(MySQL下载地址链接)点击MySQL Community Server,就会直接跳转到下载页面接下来,点击Downl...

2019-11-18 14:47:20 4620 1

原创 Spring Boot 整合 PageHelper

在PageHelper官网,对PageHelper进行了如下描述如何在Spring Boot项目当中引入PageHelper进行分页处理呢?第一步:添加maven依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-s...

2019-10-18 09:54:59 2528

原创 自定义springboot starter

我们在使用springboot的时候,感觉特别的方便易用。原因就是springboot官方提供了很多starter,我们需要使用什么功能,只需要引入对应的starter就可以了,大大简化了配置,这就是springboot当中约定大于配置特性。那么这些starter到底是如何工作的呢?下面我们来自建一个自己的springboot starter,从而对里面的特性一探究竟。项目名称 ...

2019-10-14 15:45:03 424

原创 Redis集群搭建过程

本文主要记录一下Redis集群的搭建过程第一步:去Redis官网(https://redis.io/download)下载最新版本的redis的安装包:redis-5.0.4.tar.gz第二步:在linux系统中新建一个文件夹(比如ydd),通过xftp工具上传下载的安装包到这个文件夹里面第三步:进入你上传的安装包所在的目录,解压文件(命令:tar -zxvf redis-5.0.4...

2019-04-24 19:25:14 304

原创 Java面试题:创建线程有几种方式

面试官:小伙子,说下Java创建线程有几种方法?我:一般情况下就是继承Thread类和实现Runnable接口。这两者之间的区别就是实现Runnable接口,可以避免了继承Thread类的单继承局限性。下面是我总结的一些创建线程的方式import cn.hutool.core.date.DatePattern;import cn.hutool.core.date.DateU...

2019-04-17 20:10:09 1583

原创 spring boot配置和使用Memcached

Memcached简介Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统(相比Redis,Redis拥有更多的数据结构)。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。第一步:添加依赖&...

2019-04-17 19:59:02 1744

原创 Java面试题:TCP连接三次握手和断开四次挥手

面试官:小伙子,说下TCP连接三次握手和断开四次挥手?我:这个得听我慢慢道来了。一、TCP 三次握手TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己。张三首先向李四招手(syn),李四看到张三向自己招手后,向对方点了点头挤出了一个微笑(ack)。张三看到李四微笑后确认了李四成功辨认出...

2019-03-28 16:07:09 984

原创 Java面试题:线程与进程的区别

面试官:小伙子,说下进程和线程?我:1, 早期的计算机是没有操作系统的,只有输入,计算,输出。手工输入速度远低于计算机 的计算速度。2, 于是出现了批处理操作系统,通过纸带,磁带等工具预先写入指令,形成一个指令清单(即任务)交给计算机处理。但批处理系统的缺点是只能有一个任务,而且当计算机在进行I/ O处理时,CPU是空闲的。3, 世人发明了进程,一个进程就代表一个任务,多个进...

2019-03-28 15:40:24 2064

原创 Lombok 使用介绍

介绍Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。 使用步骤第一步:安装IDEA插件打开IDEA ------&gt;Settings------&gt;Plugins------&gt;Browse Repos...

2019-03-12 19:01:37 661

原创 Linux系统下MySQL5.7.24版本的数据库安装过程

Linux系统由于其在稳定性、安全性上面的优势,所以很多公司把linux服务器作为首选。本文主要讲解一下在Linux系统下面安装数据库的过程。MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。一:准备mysql的安装文件本文采用的是r...

2019-01-11 17:34:57 702

原创 MySQL5.7.24版本的数据库安装过程

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL最新版安装教程(MySQL8.0.18版本安装教程)一:MySQL安装包下载打开网站去下载MySQL(MySQL下载地址链接)这个网站链接进去是默认的最新版本的MySQL...

2018-10-27 09:01:09 34071 31

原创 解决Navicat连接MySQL出现1251-Client does not support authentication protocol requested by server;

MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。一:MySQL的安装在windows下面,点击mysql下载链接,去下载页面下载,下载页有安装包和解压包两种,随便下载哪种都可以。下载完之后,安装包选择安装,安装过程当中会设置...

2018-10-12 13:09:29 50622 10

原创 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

这个是刷LeetCode第20题的时候,当时想了很长的时间去解决,发现没有头绪,后来网上去百度解法,发现很多都写的挺复杂的看不懂。后来终于想到了一个解法,希望能给大家提供一个不同的思路。public boolean isValid(String s) { //假如长度是1或者不为偶数 if(s.length()&lt;2||s.length()%2!=0)...

2018-09-28 17:18:24 16644 12

原创 Spring Boot自动配置实现原理

我们在使用Spring Boot构建Java Web项目的时候,实现起来非常的简单,那么SpringBoot是如何做到看似简单,却能够实现我们之前使用SSM或者SSH结合复杂配置实现的功能的呢?我们在看Spring Boot的介绍的时候,常看到下面一段话:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使...

2018-08-24 11:38:37 13455 2

原创 深入理解Java虚拟机 | 第六篇:虚拟机字节码执行引擎

执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。一:运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执...

2018-07-06 19:12:32 393

原创 深入理解Java虚拟机 | 第五篇:虚拟机类加载机制

类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)。一:立即对类进行初始化的条件虚拟机规范则是严格规定了有且...

2018-07-06 14:13:27 338

原创 深入理解Java虚拟机 | 第四篇:类文件的结构

JVM作为一个通用的、机器无关的执行平台,任何其他语言的实现者都可以将Java虚拟机作为语言的产品交付媒介。理论上任何语言编写的程序都可以运行在JVM上面,只要你代码在编译的时候生成的是符合Java虚拟机编程规范的.class文件,虚拟机并不关心Class的来源是何种语言。一:class文件结构1、每个Class文件的头4个字节称为魔数(Magic Number),它的唯一作用是确定这个文件是否为...

2018-07-05 17:26:02 356

原创 深入理解Java虚拟机 | 第三篇:垃圾收集器与内存分配策略

说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。从上一篇文章中我们得知,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,这部分内存的分配和回收基本都是确定的。但是Java堆和方法区则不一样,一个接口中的多个实...

2018-07-04 17:06:42 333

原创 深入理解Java虚拟机 | 第二篇:Java内存区域

对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”——既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,由虚拟机管理内存这一切看起来都很美好。不过,也...

2018-07-04 15:29:33 370

原创 深入理解Java虚拟机 | 第一篇:走进Java

首先声明:这一系列是本人阅读周志明老师的《深入理解Java虚拟机》第二版后自己做的个人总结,在这里记录我认为的重点。一方面是回顾学习内容加深理解,另一方面,是方便自己以后重新阅读《深入理解Java虚拟机》。一:Java技术体系从传统意义上来讲,Sun公司所定义的Java技术体系包括:Java程序设计语言各种硬件平台上的Java虚拟机Class文件格式Java API类库来至商业机构和开源社区的第三...

2018-07-04 14:14:40 3036

原创 Spring Cloud | 第七篇: Eureka集群高可用的配置

       一直在网上查阅资料,配置高可用的集群,看完了发现还是不明白,或者按照文章的内容一步一步去实现发现根本实现不了,真的很怀疑他们写的时候是否真的自己测试过了还是大家都是转发来转发去的,自己弄了好久,发现没有一个拿来就可以用的,并且里面很多的东西也没有讲解清楚,于是打算自己写一篇总结一下。环境:IDEA2017,Maven(3.3.9),JDK(1.8),SpringBoot(2.0.3)...

2018-07-03 16:56:14 12709 9

原创 windows下nginx的使用

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。什么是反向代理?反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。一:nginx的优...

2018-07-03 10:43:02 16889 5

原创 Spring Cloud | 第六篇: 路由网关(Zuul)

一:Zuul介绍Zuul是Netflix开源的微服务网关,他可以和Eureka,Ribbon,Hystrix等组件配合使用。Zuul组件的核心是一系列的过滤器,这些过滤器可以完成以下功能:# 身份认证和安全: 识别每一个资源的验证要求,并拒绝那些不符的请求# 审查与监控:# 动态路由:动态将请求路由到不同后端集群# 压力测试:逐渐增加指向集群的流量,以了解性能# 负载分配:为每一种负载类型分配对应...

2018-06-23 16:04:10 312

原创 Spring Cloud | 第五篇: 断路器监控(Hystrix Dashboard)以及碰到的问题

一:Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。我们的工程基于上一篇文章中的工程,SpringBoot的版本为2.0.3二:断路器监控的配置(基于SpringBoot2...

2018-06-23 14:59:23 2906 4

原创 Spring Cloud | 第四篇:断路器(Hystrix)

一、Hystrix简介Hystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程隔离、信号量隔离、降级策略、熔断技术。在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。我们要构建稳定、可靠的分布式系统,就必须要有这样一套容错方法。本篇文章基于前一篇文章的工程二:使用Feign调用服务中使用Hy...

2018-06-23 14:31:40 316

原创 Spring Cloud | 第三篇:负载均衡(Ribbon)

一、Ribbon简介Netfilx发布的负载均衡器,是一个基于http、tcp的客户端负载均衡工具,具有控制http、tcp客户端的行为,为ribbon配置服务提供者的地址后,ribbon就可以经过springCloud的封装实心客户端负载均衡的服务调用。二、准备工作我们继续使用上一篇的工程,我们给Mall_WechatService服务分别分配不同的端口多次启动。如何多次启动?IDEA打开工程,...

2018-06-23 11:26:54 398

原创 Spring Cloud | 第二篇: 服务消费

 SpringCloud服务间的调用有两种方式:RestTemplate和FeignClient。不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过json序列化和反序列化。因为Spring MVC的RestController定义的接口,返回的数据都是通过Json序列化成JSON数据。此文章基于上一篇文章的工程使用RestTemplate进行服务消费一:编写服务...

2018-06-23 09:47:42 537

原创 Spring Cloud | 第一篇: 服务的注册与发现(Eureka)

一、SpringCloud简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过...

2018-06-22 20:52:31 751 1

原创 SpringBoot2.0启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance in

在启动SpringBoot程序当中,日志记录当中有下面一条记录:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jd...

2018-06-22 17:29:25 92955 25

原创 Sping Boot多模块项目的创建和配置

在SpringCloud分布式微服务当中,我们需要创建很多个微服务,假如所有的微服务都分开编写,不方便我们的阅读和编码,何况一个人有可能一次性负责很多个模块。因此,我们可以利用SpringBoot的多模块开发,一个模块就是一个微服务的应用,方便我们去整体性的编写代码,后期的维护和管理也更加的方便。接下来,我们首先去创建多个模块的应用开发环境:Spring Boot(2.0.3),IDEA(2017...

2018-06-22 16:10:05 1282

原创 Spring Boot2.0配置Druid数据库连接池(单数据源、多数据源、数据监控)

我这里使用的开发环境是:IDEA(2017),JDK(1.8),Maven(3.3.9),SpringBoot(使用的是2.0.3版本,详细创建过程可以参考:https://blog.csdn.net/qq_38455201/article/details/80742205)一:单数据源的配置以及数据监控第一步:导入maven依赖&lt;!--数据库连接驱动和连接池依赖--&gt;&lt;!--...

2018-06-22 10:45:02 21709 23

原创 Spring Boot配置及注解详解

一般情况下,我们创建了一个Spring Boot程序之后,按照默认的配置就可以启动了,但是我们还是可以自定义一些配置以及修改一些配置一:多个环境的文件配置由于一个项目在开发的过程当中,需要经历开发测试以及正式部署三个阶段,我们可以根据不同的环境作不同的配置,配置的格式严格遵循下面的规则:application-{profile}.properties,其中{profile}对应你的环境标识。然后不...

2018-06-20 15:57:03 4033 3

原创 创建一个SpringBoot工程

什么是SpringBoot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。从本质上来说,Spring Boot就是Spring,它只是做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外...

2018-06-20 11:40:56 13606

原创 Java中HashMap底层实现原理

JAVA里面有HashMap、HashTable、HashSet三种常用的Hash集合,由于经常性的使用,所以想了解一下三种集合的底层实现以及区别,在这里进行总结:一:HashMap和HashTable的区别1.HashTable是线程安全的,而HashMap是线程不安全的。在Java中,我们new一个HashTable出来然后查看源码会发现,里面的实现方法都增加了synchronized关键字来...

2018-06-19 17:19:53 1077

原创 JAVA空间换时间以及时间换空间的例子

算法的好坏有两个指标:需要的内存空间(可以 理解为运行代码需要的内存空间),代码运行的时间(可以简单的理解为代码需要执行的步数)程序的设计要不就是时间换空间,要不就是用空间去换时间。并且时间和空间是可以进行相互转化的:对于执行的慢的程序,可以通过消耗内存(即构造新的数据结构)来进行优化。而消耗内存的程序,也可以多消耗时间来降低内存的消耗。 下面举个简单的例子:比如要写一个两个值互换的算法//时间换...

2018-06-15 14:55:50 10365 1

Xftp安装包及产品序列号

里面包含了Xftp软件的安装包已经序列号,Xftp是一款收费软件,假如选择商业的时候需要输入产品序列号,已经找到并整理成txt文件,亲测可用。

2018-10-12

空空如也

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

TA关注的人

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