自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (2)
  • 论坛 (67)
  • 收藏
  • 关注

原创 挑战BAT面试官之JVM垃圾收集器

BAT一直是广大程序员的梦想殿堂,不仅BAT的待遇在国内的IT行业中领先的,更在于BAT的技术也走在互联网的前列。因此,无论你是想有更高的薪资,还是追求极致的技术,都想去BAT里面镀金,有的可能在里面职位越混越高,有的可能干几年就出来创业或者到小的公司去当CTO。然而BAT的面试向来是非常严苛的,相信60%的人都直接被BAT的面试官干倒,30%的人能和BAT的面试官死磕到底,最后双方都歇斯底里,还有10%的人能干倒BAT的面试官。

2020-12-31 21:07:13 31

原创 Spring Boot系统用Redis做缓存

现在的分布式系统每天都会被大量访问,如果单靠关系型数据库来支撑,即使再大的连接数恐怕都不够,因此需要引入内存数据库将那些固定不变的数据或者是热点数据放到内存中存储,这样不仅提升了查询效率,而且可以减轻数据库的压力。今天用Spring Boot + Redis 实现数据的存储和查询。...

2020-12-31 20:35:50 23

原创 基于Spring Cloud的电商系统-项目搭建

目前在设计一套开源的基于Spring Cloud Alibaba的电子商城的系统,今天主要跟大家分享下如何利用Maven搭建一套微服务系统。希望实现的效果是一键Install,可以将所有微服务中心的Jar包都打出来。今天暂时不谈这套系统的架构,单纯就是如何快速搭建系统。使用的创建项目的工具:Idea + Maven1. 创建Pom父工程在Idea的左上角File -> New -> Project,打开如下的页面,选择Spring Initializr ...

2020-12-31 16:06:53 60

原创 Java技术进阶推荐书单

1.启蒙篇首先推荐的两本书是Java核心技术,这一套书是获得了第十三届Jolt生成效率大奖,大学的时候几乎是计算机学院的学生爱好Java编程的都会买这两本书进行扫盲。而且这两本书会随着JDK的版本迭代会印刷新的版本,目前最新的已经是11版本了。这两本书系统全面讲解Java语言的核心概念、语法、重要特性和开发方法。《Java核心技术 卷I 基础知识》卷I主要介绍Java语言基础知识的专业级详解,包括写Java代码的基本技术、习惯用法和实践,利用接口、lambda表达式和内部类的功能,有效的异常处理

2020-12-31 14:37:02 1589 8

原创 2020年所学所悟

2020年注定是不平凡的一年,今年的农历新年新冠疫情爆发,每个中国人都经历了一个难忘的春节,在党中央的英明部署下,通过全国人民的不懈努力终于将疫情消灭。目前国内还在零星的爆发,疫情还在全世界范围大流行,只有全世界的人民团结起来,才能打赢这场没有硝烟的战争。这一年,我们终于消除了贫困,但脱贫攻坚的战争远没有结束,我们必须继续努力,让全体中国人实现共同富裕。这一年我国的航天事业取得了巨大突破,嫦娥五号实现了从月球带回土壤标本的历史创举。这一年,我国在第一季度遭遇巨大下滑的不利背景下,二季度和三季度都为正,并持续

2020-12-23 16:10:42 174 19

原创 Arthas安装和启动以及核心命令详解

Arthas安装和启动1. 下载Arthas最新的版本是V3.4.5,从阿里云官网或者GitHub上都可以下载。阿里云官方下载Github官方下载2. 下载的zip包解压后,windows平台中直接打开命令行窗口,输入下面命令进行启动java -jar arthas-boot.jar3. 这是会显示本机所有的java进程,如下图,挑选你之前已经启动好的一个java demo进程的序号,回车4. 现在Arthas完成启动了,你可以继续在命令行窗口敲命令来监控Demo程序,也

2020-12-22 19:53:58 54 1

原创 分析JVM频繁Full GC问题

现在的码农真不好干,不仅要天天搬砖垒代码,还要安排监控系统做运维。既然选择了这行,就应该有使命感去把事情做好,让老板开心,码农虽然很苦逼,但必须要有尊严的活着,不能让产品看不起,我们是有价值的。闲话不多说,今天想聊聊线上问题分析,一些小的异常:业务报错、空指针异常、格式转换异常等这些小儿科就不用多说了,堆栈信息已经显示了对应的类、方法和行号,修下代码就好了。有的时候会出现服务器CPU或者内存飙...

2020-12-22 15:40:43 35

原创 InputStream抽象类的三种实现

文件IO这块可能很多开发者没有涉及,平时的工作主要集中在CRUD的业务逻辑开发上,对于金融或者电信有些核心系统会大量使用文件IO。这里的文件主要是话单或者交易凭证,开发者需要读取这些文件,将文件的内容转为实体或者消息发送给其他的子系统去处理。大家常用的读取和写入文件的方式是用FileInputStream和FileOutputStream,本文将为大家带来另外两种文件读取的方式,让大家在写代码的时候有跟多的选择。InputStream是文件读取的抽象基类,java.io包下的文件读取都会直接或者间接实现.

2020-12-22 15:25:36 75

原创 史上最全面讲解Java流对象Stream

目录Lambda表达式Stream API总结Java8可以说是Java路线图中一个里程碑的版本,虽然自Oracle收购Java后,Java的版本演进非常快,目前Java的版本已经到15了,但是目前绝大数的公司都还用着Java7和Java8,使用Java8的公司里面又有很多没有使用Java8的新特性,原因可能是没必要用或者可能是使用的Spring版本太低如果使用新特性会导致Spring启动有问题等等。因此今天想给大家介绍Java8的新特性,此时可能会有人说为什么要使用Java8的新特性,

2020-10-24 15:01:09 167 8

原创 Nacos客户端源码分析

前面已经用两篇文章介绍了如何安装Nacos控制台和Dubbo服务如何发布注册并在Nacos控制台上呈现。今天不再讲这些配置的东西,来点干货,分析Nacos的客户端源码。微服务中心的项目工程如果要注册服务,就需要依赖Nacos的客户端,这在前面已经讲了如何进行pom依赖实现。打开nacos-client的jar包看看里面是什么:有的同学经常说不知道从哪里开始看源码,今天就教大家从哪里下手。这个工程下总共5个一级目录:config,identify,logger,naming,utils。大家从这几个目

2020-10-20 19:46:32 183 1

原创 Sentinel Dashboard轻松流控

Sentinel Dashboard轻松流控Spring Cloud Alibaba大家族里面的轻量级流量控制框架Sentinel,为什么叫这个名字,笔者认为框架的作者希望用这款框架为业务系统保驾护航,有了它,任何大并发的访问洪流都可以通过Sentinel控制。Sentinel已经开源,需要源码的同学请通过下面地址下载学习:码云地址:https://gitee.com/mirrors/Sentinel?utm_source=alading&utm_campaign=repoGithub地

2020-09-24 14:49:26 684 2

原创 Guava Cache源码分析和实战

我在2018年的时候写过一篇手写代码实现缓存的文章,大家有兴趣的可以看看文后的链接。今天要向大家隆重推荐的是Google的Guava(石榴)组件里面含有的缓存接口。使用框架的好处就是考虑更充分,性能更优。下面将从源码和实战的角度去分析这个缓存框架。

2020-09-16 16:52:56 225 2

原创 mosquitto的发布和订阅代码实现

上一篇文章讲了mosquitto的安装和用命令行来测试消息的发送和接收,这一篇文章讲如何用Java代码实现消息的发布和订阅。

2020-08-21 16:48:13 241 2

原创 mosquitto在windows下的安装和测试

本文介绍了实现了MQTT协议的开源框架mosquitto的下载、安装和测试。

2020-08-19 17:03:01 150

转载 阿里巴巴 Nacos 企业级落地

本文是转载自阿里云,里面详细介绍了企业遇到的坑,怎么样替换Eureka,换了Nacos,如果做性能对比测试,非常接地气的一篇文章。这个文章分上中下篇。阿里巴巴 Nacos 企业级落地上篇阿里巴巴 Nacos 企业级落地中篇阿里巴巴 Nacos企业级落地下篇...

2020-08-14 16:58:42 125

原创 Dubbo+Nacos实现服务注册和发现

Spring Cloud目前非常流行,Nacos作为新兴的服务注册和发现组件在目前的业界也是非常火,本文力图向大家推荐这款服务注册和发现组件,因为它代表了未来的发展方向。

2020-08-14 09:04:07 1859 6

原创 Nacos服务端安装和启动

1. 下载Nacos服务端 下载地址:https://github.com/alibaba/nacos/releases 下载nacos-server-1.3.2.tar.gz 或者nacos-server-1.3.2.zip2. 解压下载的包3. windows下启动 进入命令行窗口,如果命令进入解压目录的bin目录,输入命令启动,具体如下图 4. 进入控制台 打开浏览器,输入:http://localhost:8848/nacos/...

2020-08-12 17:33:19 1282

原创 浓浓棕情之自产自消

今天是端午节,祝大家端午节快乐。今年的疫情让很多人放弃了出行的计划,宅在家里,我也是无聊,想到写点什么东西和大家分享下,希望有感兴趣的看看,如果有什么想法欢迎交流。生产者和消费者是软件世界里很寻常的场景,然而大多数程序员平时写代码不会用到,因为很多系统都是用来查询数据展示数据,写写CRUD就好了。随着MQ的横空出世,让大家都醉心于这种好用的中间件,配置一个Topic,发送消息就调用客户端的发送接口,接收消息继承一个接口,写一个Listener,整个从生产到消费全流程就这种友好的解决了,性能和完整性更不用

2020-06-25 21:38:41 215

原创 CountDownLatch多任务处理利器

CountDownLatch 是由java并发包提供的一个同步计数器,从字面意义上去理解可以分成两部分CountDown 和 Latch,CountDown就是计数的意思,Latch是门闩,这个同步工具就是通过保证多线程环境下,通过门闩限制主线程执行,子线程执行后计数减1,直到减为0,门闩打开,主线程执行。场景一:...

2020-04-25 21:34:36 185 10

原创 切绳子算乘积

题目:给你一段绳子,这段绳子的长度是正整数(绳子长度大于0),你可以选择切或者不切,如果切,分成两段,保证两段的长度都是整数,如果可以继续切,你可以选择继续,最后要求每一段绳子的长度的乘积最大。思考一:如果每次从中间切似乎得到的乘积会很大,那么当绳子长度为偶数,就直接从中间切,如果是奇数,那么奇数加1或者减1后再二分的位置切。static int clacLen(int n) {...

2020-03-01 21:20:04 124

原创 工厂模式及在Spring中的应用

工厂模式是最基本的也是最重要的模式,因为它方便我们能写出高质量、高效率的代码。只有掌握了工厂模式,我们才不会重复造轮子。今天将从最简单的工厂模式开始一步步深入讲解,告诉大家自己写是怎么用的,框架又是如何实现,我们能从框架实现获得怎么样的灵感。首先看看工厂模式的类图:工厂模式由一个接口类加一个对应的工厂类实现的,接口类提供所有要创建出来的实体所需要的方法,工厂类只负责一件事:创建实现类的...

2019-12-22 13:17:35 1996

原创 编程题阶乘迷局

大厂笔试面试题,给定一个整数,求该整数的阶乘,例如输入5,结果是5*4*3*2*1=120。拿到题目心中狂喜,迅速三下五除二就写出来:public int fun1(int i) { int k = 1; for(int j=2; j<=i; j++) { k = k * j; } retur...

2019-11-16 10:52:05 122 2

原创 Spring MVC 拦截器原理解析

Spring MVC支持配置多个拦截器,http请求将被配置的拦截器处理,处理后报错信息抛异常,异常将被DispatcherServlet捕获处理,每个拦截器对应的handler处理异常,包装成ModelAndView返回。web.xml 配置<servlet> <servlet-name>myservlet</servlet-name> <...

2019-11-13 17:07:50 95

原创 多线程处理返回值

好久没写博客,看了下上一篇发表的时间发现已是一年多前,看到消息处的小红点,点了下发现仍然有很多新朋友关注了我,给我留言,给我的博文点赞,让我发现技术分享的重要性,不仅仅是影响一个人,而是影响一群人。软件开发是一份很潮的工作,会随着历史的潮头不断奔流不息,只有屹立潮头的人才不会被淘汰。逆水行舟,不进则退,多少比你差的人比你还几倍的努力。如果你总是止步不前,拒绝新的技术,你还期望公司给你加薪,你还指望...

2019-09-08 16:19:41 602

原创 ZooKeeper实现分布式锁(一)

ZooKeeper可以在其目录下建立节点,这些节点都是以路径和值为映射关系存在的,下面通过一个例子说明如何创建节点和删除节点。public class TestLock { public static void main(String[] args) { ZkClient zkClient1 = new ZkClient(new ZkConnection("127.0.0.1:2181")...

2018-05-29 16:55:22 678 1

原创 自己实现缓存

    有的时候我们需要频繁用到一些数据,我们不需要频繁去查数据库,这样不仅浪费数据库的IO,也浪费单次业务的时间,如果我们要用到的数据就是数据库中的某一张表的固定数据,那么我们就可以在项目启动的时候将该表的数据加载到缓存中。设计思路:1. 一个加载缓存数据的服务Bean2. 一个存储缓存数据的类实现加载缓存数据的服务Bean采用了实现Spring提供的InitializingBeanpublic...

2018-02-15 11:04:32 1509

原创 理解线程的join方法

在多线程环境下很难保证结果的一致性,多线程带来的好处就是并行处理提升效率,弊端就是出现了问题很难定位,可以看个例子就明白了,请将下面的代码拷到本地去执行,就会发现每次执行的结果不一样。     代码1public class JoinDemo { public static void main(String[] args) { Thread thread1 = new Thread(

2018-01-29 23:14:01 373

原创 Java小数截断

本文对Java小数截断的几种方式进行了总结。

2017-11-21 15:37:07 2244

原创 Spring Bean三种注入方式

Spring Bean三种注入方式分别是Field注入、构造器注入和Setter方法注入。

2017-11-07 21:11:38 1586

原创 Redis安装和配置

本文主要介绍如何在Linux环境下搭建Redis

2017-10-05 16:54:53 646

原创 Json解析方法大全

JSON是一种轻量级的数据交换格式,和XML一样广泛应用于前端和后台的交互。如何高效和安全的解析JSON是摆在广大程序员面前的难题,如果有工具包能帮我们做这些事情就好了,目前有Google公司的Gson,阿里巴巴公司的fastJson,以及Jackson,今天我就讲解下如何通过这3个工具去解析JSON字符串,以及如何将Java对象转换成JSON字符串。

2017-06-17 23:53:35 3074 1

原创 Java反射

Java反射为开发者提供了更灵活的方式编程,可以在运行时操纵类的构造方法、属性和方法。本文介绍了反射如何去使用类的构造方法、属性和类的方法。

2017-05-07 20:42:11 663

原创 ThreadLocal类维持线程封闭性

在《多线程采用锁并发控制》一文中采用锁保证了多线程下类的成员变量的同步。如果需要保证线程内部对变量的访问是隔离的,线程内部对变量的操作不会影响其他的线程,这又该如何操作了。ThreadLocal对象通常用于防止对可变的单实例变量或全局变量进行共享。

2017-03-26 12:56:31 792

原创 第一个Spring Boot程序

正如官网说的Spring Boot给我们带来的是单机的,产品级的基于spring的应用。运用Spring Boot无需tomcat就可以将应用作为Web Server对外提供访问,非常便捷。

2017-03-11 13:27:07 5369

原创 2016--在技术的浪潮中自我实现

今天恰好是2016年的圣诞节,窗外正飘着小雨,一盏孤灯,淡黄色的光投射到电脑屏幕上,显得比较温馨。每过一年都会感觉自己大了一岁,而这一年又新增了无数的新技术,自己就仿佛乘坐一叶孤舟,迎接一个个风浪,当风浪过后,便是晴天。世界唯一不变的就是变化,只有拥抱变化,你才能成为技术浪潮中的领航者。人总是应该有所追求,不因为年华老去,而变得迟钝;不因为衣食住行,而让自己变得畏缩;不因为青年才俊的横空出世,而感叹自己年华易老。日子不是用来蹉跎的,自己应该时刻提醒自己还有很多事情要做,价值的实现要通过自我实现。

2016-12-25 12:49:26 2438 16

原创 WeakHashMap的使用

WeakHashMap的实现及其应用。

2016-12-04 12:33:49 1130

原创 线程池可以吞掉异常

本文由线程池吞掉异常出发,讲解了程序开发过程中应该怎么去捕获异常,打印堆栈信息,并且进一步阐述了线程池内部的接口和类的关系。

2016-12-03 21:05:04 5678 1

原创 从对象的引用到对象的复制

今天是程序猿节,因此必须登CSDN看看小伙伴门都在做什么,最近工作比较忙,因此好久没上来看看了。这次想给大家讲讲对象的引用,这个东西从都大学上Java课的时候老师就一直在强调,只不过可能是老师没讲清楚,或者自己愚笨,不能领悟。有的时候确实需要实践才会记忆深刻。

2016-10-24 21:39:39 1400 2

原创 Java中动态运行JS脚本

本文主要阐述了Java可以执行JavaScript脚本,通过这种方式可以让程序能更灵活,有时候可以产生意想不到的结果。

2016-08-03 22:56:27 2824

原创 多线程中采用锁控制并发

在多线程编程当中对于共享变量的控制非常重要,平常的程序当中由于是单线程去处理的,因此不会出现变量资源同时被多个线程同时访问修改,程序的运行是顺序的。然而多线程的环境中就会出现资源同时被多个线程获取,同时去做修改的状况。本文主要讲了ReentrantLock 和 Sychronized这两种方式对锁进行控制。

2016-07-27 22:51:00 4615 6

Serverless云开发从入门到实战

Serverless云开发从入门到实战,手把手教你如何不利于K8S就可以部署一套云原生系统。目前支持NodeJS和SpringBoot项目上线,直接访问云数据库。

2020-12-04

Backbone.js应用程序开发

Backbone.js应用程序开发这本书对Backbone进行了深入浅出的介绍,从基础到应用程序实践,每个技术点都有相应的例子供参考,最重要的是把作者工作中遇到的问题进行了总结并给出了解决方案。

2017-07-18

Java技术进阶推荐书单

发表于 2020-12-31 最后回复 2020-12-31

老铁们-呕心沥血之作-送分送分还是送分

发表于 2020-12-23 最后回复 2020-12-23

【散分】因为你这个世界才有爱

发表于 2020-10-26 最后回复 2020-10-26

下班前写了一篇文章

发表于 2020-09-16 最后回复 2020-09-16

浓浓棕情之自产自消

发表于 2020-06-25 最后回复 2020-07-13

周末给大家送分了

发表于 2020-04-25 最后回复 2020-05-02

鼎捷软件怎么样

发表于 2020-04-24 最后回复 2020-04-25

2020新的一年祝大家新年快乐开始散分了

发表于 2020-01-03 最后回复 2020-01-03

这个问题有更好的解决方式吗

发表于 2019-11-16 最后回复 2019-11-16

zookeeper的分享

发表于 2018-05-29 最后回复 2019-11-16

面试中的线程问题

发表于 2019-09-10 最后回复 2019-11-16

像外行一样思考,像专家一样实践

发表于 2015-04-13 最后回复 2018-08-10

spring boot你应该去看一看

发表于 2017-03-11 最后回复 2018-05-29

2016--在技术的浪潮中自我实现

发表于 2016-12-25 最后回复 2018-05-29

Spring AOP的问题请教

发表于 2016-08-28 最后回复 2018-05-29

线程池会吞掉异常你相信吗?

发表于 2016-12-03 最后回复 2018-05-29

新年第一篇博文请大家捧场

发表于 2018-02-15 最后回复 2018-02-28

为什么没有Redis版

发表于 2017-10-12 最后回复 2017-10-13

看了下C#高级编程所感

发表于 2015-02-10 最后回复 2017-09-12

JSON的几种解析方法

发表于 2017-06-17 最后回复 2017-07-01

最近写了一篇文章希望可以帮到大家

发表于 2017-06-28 最后回复 2017-07-01

java反射研究与君共享

发表于 2017-05-13 最后回复 2017-05-14

ThreadLocal应用

发表于 2017-03-26 最后回复 2017-03-26

新的一年你应该去了解的Java技术

发表于 2017-01-01 最后回复 2017-03-26

你想成为增长黑客吗

发表于 2015-11-23 最后回复 2016-12-03

多线程中采用锁控制并发

发表于 2016-08-06 最后回复 2016-12-03

@AutoWired如何使用来消除 set ,get方法

发表于 2016-02-18 最后回复 2016-12-03

多线程中的task中的业务逻辑代码没有执行

发表于 2016-07-16 最后回复 2016-12-03

Java可变参数详解

发表于 2015-12-06 最后回复 2016-12-03

程序猿节送给大家的礼物

发表于 2016-10-24 最后回复 2016-12-03

为什么要继承

发表于 2015-10-25 最后回复 2016-12-03

大伙出来讨论下AOP吧

发表于 2016-03-01 最后回复 2016-12-03

JSONP跨域获取数据

发表于 2014-04-02 最后回复 2016-07-21

Spring自动扫描装配bean 研究分享

发表于 2016-03-13 最后回复 2016-03-13

xml的两种解析方式

发表于 2015-07-08 最后回复 2016-03-13

看文送分之Java实现模拟路由功能

发表于 2015-08-28 最后回复 2016-03-13

JUnit的使用

发表于 2015-04-18 最后回复 2016-03-13

十进制数转为罗马数字问题思路

发表于 2014-10-16 最后回复 2015-10-25

java基础知识总结分享

发表于 2014-09-10 最后回复 2015-09-17

罗马数字加法实现程序分享

发表于 2014-11-03 最后回复 2015-07-08

空空如也

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

TA关注的人 TA的粉丝

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