自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅谈lambda表达式<最通俗易懂的讲解>

Java8发布已经有一段时间了,这次发布的改动比较大,很多人将这次改动与Java5的升级相提并论。Java8其中一个很重要的新特性就是lambda表达式,允许我们将行为传到函数中。想想看,在Java8 之前我们想要将行为传入函数,仅有的选择就是匿名内部类。Java8发布以后,lambda表达式将大量替代匿名内部类的使用,简化代码的同时,更突出了原来匿名内部类中最重要的那部分包含真正逻辑的代码。尤其...

2019-12-16 11:11:08 618

原创 做一个完整的Java Web项目需要掌握的技能

最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的“大局观”,也以便于同学们更有针对性地学习。当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看了。首先我们从网站的架构谈起。一...

2019-12-14 10:25:51 172

原创 SpringBoot如何优雅的校验参数

前言做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的。如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量的IF ELSE就比如下面这样:这个例子只是校验了一下空参数。如果需要验证邮箱格式和手机号格式校验的话代码会更多,所以介绍一下validator通过注解的方式进行校验参数。什么是Vali...

2019-12-13 10:04:42 266

原创 面试被问:Redis 内存满了怎么办?

Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100Mmaxmemory 100mbredis的配置文件...

2019-12-12 10:24:28 1362

原创 程序员,别再迷恋多线程工作了

我刚刚尝试了一下,一边用 iPad 看“Java 极客技术”自制的 SpringBoot 视频(1.2X 倍速),一边在 iMac 上回复博客上读者的留言。过了一会,视频上讲了什么,我完全没有印象了;而回复的内容也写得乱七八糟。很长一段时间内,我都在欺骗我自己:一边写博客,一边听音乐,自认为可以一心多用,做到了像计算机一样的“多线程工作”。可等到音乐的某个高潮响起时,我情不自禁地投入到了音乐的...

2019-12-11 10:50:31 743

原创 科普:Spring中引入增强(IntroductionAdvice)的实现原理

Spring中有五种增强:BeforeAdvide(前置增强)、AfterAdvice(后置增强)、ThrowsAdvice(异常增强)、RoundAdvice(环绕增强)、IntroductionAdvice(引入增强)RoundAdvice(环绕增强):就是BeforeAdvide(前置增强)、AfterAdvice(后置增强)的组合使用叫环绕增强。前四种增强都比较简单,我们今天要介绍...

2019-12-10 10:08:37 390

原创 史上最全 Redis 高可用解决方案总结

本文主要针对 Redis 常见的几种使用方式及其优缺点展开分析。一、常见使用方式Redis 的几种常见使用方式包括:Redis 单副本; Redis 多副本(主从); Redis Sentinel(哨兵); Redis Cluster; Redis 自研。二、各种使用方式的优缺点1、Redis 单副本Redis 单副本,采用单个 Redis 节点部署架构,没有备用节...

2019-12-09 10:45:55 128

原创 Java开发者必须知道的内存泄漏问题

1. 简介Java的核心优势之一是在内置垃圾收集器(简称GC)的帮助下实现自动内存管理。GC隐含地负责分配和释放内存,因此能够处理大多数内存泄漏问题。虽然GC有效地处理了大部分内存,但它并不能成为保证内存泄漏的万无一失的解决方案。GC很聪明,但并不完美。即使在尽职尽责的开发人员的应用程序中,内存仍然可能会泄漏。仍然可能存在应用程序生成大量多余对象的情况,从而耗尽关键内存资源,有时...

2019-12-06 10:56:09 248

原创 实战SpringBoot缓存开发

前言:缓存在开发中是一个必不可少的优化点,近期在公司的项目重构中,关于缓存优化了很多点,比如在加载一些数据比较多的场景中,会大量使用缓存机制提高接口响应速度,间接提升用户体验。关于缓存,很多人对它都是既爱又恨,爱它的是:它能大幅提升响应效率,恨的是它如果处理不好,没有用好比如LRU这种策略,没有及时更新数据库的数据就会导致数据产生滞后,进而产生用户的误读,或者疑惑。这是很严重的一个问...

2019-12-05 09:50:16 117

原创 全网最通俗易懂的Kafka入门

1.1 Kafka入门众所周知,Kafka是一个消息队列,把消息放到队列里边的叫生产者,从队列里边消费的叫消费者。生产者和消费者一个消息中间件,队列不单单只有一个,我们往往会有多个队列,而我们生产者和消费者就得知道:把数据丢给哪个队列,从哪个队列消息。我们需要给队列取名字,叫做topic(相当于数据库里边表的概念)给队列取名字,专业名词叫topic现在我们给...

2019-12-04 10:03:25 194

原创 代码写不好,却能当领导

经常在各个技术论坛看到类似这样的讨论,他们的观点大概都是这样子的:①.大多数程序员对技术非常痴迷,更多把精力专注于各项技术,所以很难上升到管理层;反之负责管理的程序员往往不是技术最牛的,可能是公司待得时间比较久,靠资历熬出来的。②.另外基层员工经常跳槽,而管理层跳槽的频率相对低很多,这不是因为管理层的工作待遇更好,而是因为技术太菜而不敢跳槽。首先不得不说两个真相:①.第一个真相是上...

2019-12-03 11:34:12 217

原创 你见过的最全面的 Python 重点

Py2 VS Py3print成为了函数,python2是关键字 不再有unicode对象,默认str就是unicode python3除号返回浮点数 没有了long类型 xrange不存在,range替代了xrange 可以使用中文定义函数名变量名 高级解包 和*解包 限定关键字参数 *后的变量必须加入名字=值 raise from iteritems移除变成items()...

2019-12-02 10:11:11 612 1

原创 Java并发基础,不怕你看不懂

一、前言当我们使用计算机时,可以同时做许多事情,例如一边打游戏一边听音乐。这是因为操作系统支持并发任务,从而使得这些工作得以同时进行。那么提出一个问题:如果我们要实现一个程序能一边听音乐一边玩游戏怎么实现呢?public class Tester { public static void main(String[] args) { System.out.println("开始.....

2019-11-30 09:11:00 160

原创 使用 Docker 部署 Spring Boot 项目

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。一个简单 Spring Boot 项目在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖<paren...

2019-11-29 11:12:01 111

原创 是时候扔掉 Postman 了,试试 IntelliJ IDEA 自带的高能神器

前言接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每[个开发的日常工作项。]所谓工欲善其事必先利其器,在没有尝到 IDEA REST 真香之前, postman 确实是一个非常不错的选择,具有完备的 REST Client 功能和请求历史记录功能。但是当使用了 IDEA REST 之后,postman 就可以丢了...

2019-11-28 10:38:24 488 1

原创 「JavaWeb基础」Web开发模式

开发模式的介绍在Web开发模式中,有两个主要的开发结构,称为模式一(Mode I)和模式二(Mode II).首先我们来理清一些概念吧:DAO(Data Access Object):主要对数据的操作,增加、修改、删除等原子性操作。 Web层:界面+控制器,也就是说JSP【界面】+Servlet【控制器】 Service业务层:将多个原子性的DAO操作进行组合,组合成一个完整的业务...

2019-11-27 10:04:47 306

原创 Mybatis:PageHelper分页插件源码及原理剖析

PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件,其实我并不想加上好用两个字,但是为了表扬插件作者开源免费的崇高精神,我毫不犹豫的加上了好用一词作为赞美。原本以为分页插件,应该是很简单的,然而PageHelper比我想象的要复杂许多,它做的很强大,也很彻底,强大到使用者可能并不需要这么多功能,彻底到一参可以两用。但是,我认为,作为分页插件,完成物理分页任务是根本,其它...

2019-11-26 11:01:30 96

原创 深度解析SpringBoot2.x整合Spring-Data-Redis

准备工作准备一个springboot2.x的工程,并引入web和spring-data-redis的starter,再引入对象池commons-pool2的依赖。如图:空starter jar包的用意有心的朋友如果去查看spring-data-redis的starter对应的jar包spring-boot-starter-data-redis-2.1.3.RELEASE....

2019-11-25 10:38:37 791

原创 Spring 核心框架体系结构

很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的!  spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar...

2019-11-23 15:48:34 85

空空如也

空空如也

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

TA关注的人

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