自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!...

原创 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
原力计划

区块链是一种防篡改的共享数字分布式账本,可记录公共或私有对等网络中的交易。分布式账本分布到网络中的所有成员节点,以加密散列链接的块的顺序链,永久记录网络中对等点之间发生的资产交换的历史记录。 区块链的广为人知是从比特币开始的,但是区块链不是比特币,区块链只是比特币底层的技术基础。比特币可以看做是...

2020-05-21 06:42:40 9177 16

原创 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
原力计划

文章目录简介Spring Boot的基本操作Spring Boot的构建和部署Spring Boot工具Spring Boot的测试Spring Boot中使用JPASpring Boot和第三方系统的集成总结 简介 自从Spring横空出世之后,Spring就成了事实上的J2EE标准。Sprin...

2020-05-20 06:50:27 9398 11

原创 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
原力计划

是什么让java世界变得更好,程序员变得更友爱,秃头率变得不是那么的高,让程序员不必再每天996,有时间找个女朋友? 是Spring。 是什么让企业级java应用变得简单易懂,降低了java程序员的进入门槛,导致了现在遍地都是java程序员的窘境? 是Spring。 是什么从无冕之王变成了事实上的...

2020-05-20 06:30:50 9622 14

原创 JDK14性能管理工具:jstat使用介绍
原力计划

作为一个程序员,经常会为如何定位java程序的问题或者去调优JVM性能而苦恼不已。也许你听过一些java的profile的强力工具,比如jprofile。但是这些工具大部分都是要收费的,对于我们个人程序员来说十分不友好。 其实JDK已经自带了很多优秀的性能调优工具,你可以在JAVA_HOME/b...

2020-05-31 07:25:18 7536 2

原创 突发!HashiCorp禁止在中国使用企业版VAULT软件
原力计划

昨天HashiCorp突然发布一则消息,禁止在中国使用Vault软件的企业版本,HashiCorp的解释是因为中国的出口管制的原因导致无法出售HASHICORP软件或者使用企业版的Vault。所以在没有取得HashiCorp书面协议的前提下,不得在中国境内使用,部署和安装HashiCorp的Vau...

2020-05-30 08:23:16 13220 60

原创 JDK14性能管理工具:jstack使用介绍
原力计划

在之前的文章中,我们介绍了JDK14中jstat工具的使用,本文我们再深入探讨一下jstack工具的使用。 jstack工具主要用来打印java堆栈信息,主要是java的class名字,方法名,字节码索引,行数等信息。

2020-05-30 08:12:15 7568 6

原创 JDK14性能管理工具:Jconsole详解
原力计划

我们在开发java项目的时候,或多或少都会去用到Java的性能管理工具。有时候是为了提升应用程序的性能,有时候是为了查找java应用程序的bug。 性能监控和调试工具在英文中叫做profile tool,提起这种工具大家可能会想到一些非常出名的jprofile等收费工具,其实JDK也自带了一些性...

2020-05-29 06:13:36 7722 6

原创 12个月大厂主机免费领AWS Azure Google-Cloud还不快到碗里来
原力计划

文章目录简介AWSAzureGoogle CloudOracle总结 简介 最近有个朋友问我哪里有免费主机可以领,说实话这个问题也困扰了我很久,之前也在网上寻找免费主机,可是免费的基本上都有一定的限制,用起来实在是不尽如人意,但是不怕。随着云技术的发展,国外的优秀大厂例如微软,亚马逊,Google...

2020-05-28 06:04:15 8012 16

原创 使用site-maven-plugin在github上搭建公有仓库
原力计划

Maven是我们在开发java程序中经常使用的构建工具,在团队合作开发过程中,如果我们想要将自己写好的jar包共享给别人使用,通常需要自己搭建maven仓库,然后将写好的jar包上传到maven仓库中,以供其他用户使用。 搭建maven仓库需要服务器和域名,对公司而言域名和服务器多的是,但是如果...

2020-05-27 06:21:44 7943 8

原创 Maven的build生命周期和常用plugin
原力计划

Maven和gradle应该是现代java程序员中使用的最多的两种构建工具。在它们出现之前,则是ant的天下。 Maven为我们封装了很多构建中非常有用的操作,我们只需要执行简单的几个mvn命令即可。 今天我们要讨论一下mvn命令之下的生命周期的构建。

2020-05-26 06:58:25 7946 6

原创 Java中的类型推断和lambda表达式
原力计划

java是强类型的编程语言,每个java中使用到的变量都需要定义它的类型,否则会编译失败。强类型语言的好处就是可以尽可能的在编译期间就发现代码中可能出现的问题,从而减少在运行时出现问题的可能性。 相对的,强类型语言的缺点就是不那么的灵活多变,写起来比较冗余。 JDK8之前,java是不支持类型...

2020-05-26 06:49:39 7873 5

原创 小师妹学JavaIO之:文件写入那些事
原力计划

小师妹又对F师兄提了一大堆奇奇怪怪的需求,要格式化输出,要特定的编码输出,要自己定位输出,什么?还要阅后即焚?大家看F师兄怎么一一接招吧。

2020-05-25 06:38:23 7942 4

原创 Lambda表达式和闭包Closure
原力计划

我们通常讲到闭包,一般都是指在javascript的环境中。闭包是JS中一个非常重要的也非常常用的概念。闭包产生的原因就是变量的作用域范围不同。一般来说函数内部的定义的变量只有函数内部可见。如果我们想要在函数外部操作这个变量就需要用到闭包了。

2020-05-25 06:28:07 7832 7

原创 小师妹学JavaIO之:文件编码和字符集Unicode
原力计划

小师妹一时兴起,使用了一项从来都没用过的新技能,没想却出现了一个无法解决的问题。把大象装进冰箱到底有几步?乱码的问题又是怎么解决的?快来跟F师兄一起看看吧。

2020-05-24 06:57:17 7816 3

原创 标记接口,注解和注解处理器的前世今生
原力计划

相信大部分的开发者都用过注解,尤其是对使用过Spring的开发者来说,注解是现代Spring中不可获取的一部分。Spring从最开始的xml配置到后面的注解配置,不论是从编程习惯还是项目的构建,都对我们程序员产生了非常重要的影响。 除了使用Spring自带的注解之外,我们还可以自定义注解。然后...

2020-05-24 06:45:13 7972 6

原创 JDK9的新特性:JVM的xlog
原力计划

在java程序中,我们通过日志来定位和发现项目中可能出现的问题。在现代java项目中,我们使用log4j或者slf4j,Logback等日志记录框架来处理日志问题。 JVM是java程序运行的基础,JVM中各种事件比如:GC,class loading,JPMS,heap,thread等等其实都...

2020-05-23 07:01:12 7933 5

原创 Apache Maven ToolChains的使用
原力计划

Maven是java中非常有用和常用的构建工具,基本上现在大型的java项目都是Maven和gradle的天下了。 因为JDK的版本现在以每半年一次的速度在飞速发展。不同的JDK版本就有不同的java路径,我们在使用Maven的过程中,可能经常会需要切换JDK的版本。

2020-05-23 06:48:12 8043 5

原创 小师妹学JavaIO之:文件读取那些事
原力计划

小师妹最近很迷糊:F师兄,上次你讲到IO的读取分为两大类,分别是Reader,InputStream,这两大类有什么区别吗?为什么我看到有些类即是Reader又是Stream?比如:InputStreamReader? 小师妹,你知道哲学家的终极三问吗?你是谁?从哪里来?到哪里去? F师兄,你...

2020-05-22 06:58:57 8485 5

原创 JDK9的新特性:JPMS模块化
原力计划

JDK9引入了一个新的特性叫做JPMS(Java Platform Module System),也可以叫做Project Jigsaw。模块化的本质就是将一个大型的项目拆分成为一个一个的模块,每个模块都是独立的单元,并且不同的模块之间可以互相引用和调用。 在module中会有元数据来描述该模块...

2020-05-22 06:50:41 8129 3

原创 JDK9的新特性:String压缩和字符编码

文章目录简介底层实现总结 简介 String的底层存储是什么?相信大部分人都会说是数组。如果要是再问一句,那么是以什么数组来存储呢?相信不同的人有不同的答案。 在JDK9之前,String的底层存储结构是char[],一个char需要占用两个字节的存储单位。 据说是JDK的开发人员经过调研了成千上...

2020-05-21 06:33:49 8492 2

原创 小师妹学JavaIO之:File copy和File filter
原力计划

文章目录简介使用java拷贝文件使用File filter总结 简介 一个linux命令的事情,小师妹非要让我教她怎么用java来实现,哎,摊上个这么杠精的小师妹,我也是深感无力,做一个师兄真的好难。 使用java拷贝文件 今天小师妹找到我了:F师兄,能告诉怎么拷贝文件吗? 拷贝文件?不是很简单...

2020-05-19 06:58:54 8211 4

原创 JDK10的新特性:var和匿名类

文章目录简介匿名类中自定义变量lambda表达式中的匿名类总结 简介 匿名类相信大家都用过了,学过JDK8中的lambda表达式之后,可以发现有些匿名类是可以用lambda表达式来替代的,能够被替代的类叫做funcational interface。 具体的有关lambda表达式和匿名类的介绍,大...

2020-05-19 06:50:09 8449 4

原创 小师妹学JavaIO之:File文件系统
原力计划

小师妹又遇到难题了,这次的问题是有关文件的创建,文件权限和文件系统相关的问题,还好这些问题的答案都在我的脑子里面,一起来看看吧。 文件权限和文件系统 早上刚到公司,小师妹就凑过来神神秘秘的问我:F师兄,我在服务器上面放了一些重要的文件,是非常非常重要的那种,有没有什么办法给它加个保护,还兼顾一点隐...

2020-05-18 06:57:34 8641 4

原创 JDK10的新特性:var泛型和多个接口实现
原力计划

文章目录简介实现多个接口使用多个接口使用var总结 简介 在JDK10的新特性:本地变量类型var中我们讲到了为什么使用var和怎么使用var。 今天我们来深入的考虑一下var和泛型,多个接口实现的问题。 实现多个接口 在JDK的实现和我们日常的工作中,很多时候都需要实现多个接口,我们举常用的两个...

2020-05-18 06:50:36 8397 2

原创 JDK10的新特性:本地变量类型var
原力计划

java以面向对象的特性显著于世并得到了蓬勃的发展。在语言的发展过程中,为了让java语言更加简洁和方便使用,JDK也在不断的进行改进。 今天本文将要介绍一下JDK10中引入的本地变量类型var。 为什么我们需要var 类型推断是很多编程语言都具有的特性,编译器可以在我们不指定具体变量类型的情...

2020-05-17 07:27:02 8103 2

原创 JDK11的新特性:HTTP API和reactive streams
原力计划

在[JDK11的新特性:新的HTTP API](http://www.flydean.com/jdk11-http-api/)中,我们介绍了通过新的HTTP API,我们可以发送同步或者异步的请求,并获得的返回的结果。 今天我们想探讨一下这些同步或者异步请求和响应和reactive streams...

2020-05-17 07:20:26 8363 2

原创 什么?注释里面的代码居然能够执行

注释大家都写过,应该都懂。注释就是给人看的,不是给机器看的,自然也就无法执行。 但是今天就有一个例外,快让我们看一下吧。 如果是下面一段代码,大家期望的输出是什么? public class escapesUsage { public static void main(String[] ...

2020-05-16 07:52:42 8861 13

原创 reactive stream协议详解
原力计划

Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。优雅的链式操作,流式处理逻辑,相信用过的人都会爱不释手。 每个数据流都有一个生产者一个消费者。生产者负责产生数据,而消费者负责消费数据。如果是同步系统,生产一个消费一个没什么问题。但是如果在异步系统中,就会产生...

2020-05-16 07:44:07 8504 2

原创 小师妹学JavaIO之:try with和它的底层原理
原力计划

小师妹是个java初学者,最近正在学习使用java IO,作为大师兄的我自然要给她最给力的支持了。一起来看看她都遇到了什么问题和问题是怎么被解决的吧。 这一天,小师妹一脸郁闷的问我:F师兄,我学Java IO也有好多天了,最近写了一个例子,读取一个文件没有问题,但是读取很多个文件就会告诉我:”Ca...

2020-05-15 06:24:36 8311 4

原创 Java中IO和NIO的本质和区别
原力计划

终于要写到java中最最让人激动的部分了IO和NIO。IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就存在的。NIO叫做new IO,是在java1.4中引入的新一代IO。 IO的本质是什么呢?它和NIO...

2020-05-15 06:15:55 8549 5

原创 响应式系统reactive system初探
原力计划

第一次听到reactive这个词还是在几年前,偶然了解到了Rxjava这个项目,仿佛为我打开了一扇新的大门,Rxjava是ReactiveX的java实现,ReactiveX家族除了Rxjava还有RxJS, Rx.NET,RxScala等等。 ReactiveX的本质就是Observer+It...

2020-05-14 06:51:27 8694 2

原创 JDK11的新特性:新的HTTP API
原力计划

JDK11之前,java的HTTP功能很弱,只提供了HttpURLConnection来进行HTTP连接,并且使用起来非常复杂。所以一般大家都是用第三方的HTTP client(Apache HttpComponents 或者 OkHttp)来进行HTTP请求。 一切在JDK11的时候完全变了,...

2020-05-14 06:42:45 8776 2

原创 JDK12的新特性:CompactNumberFormat
原力计划

JDK12引入了新的格式化数字的类叫做CompactNumberFormat。主要方便我们对很长的数字进行简写。比如1000可以简写为1K或者1 thousand。 本文将会讲解CompactNumberFormat的基本构成和使用方法,最后在实际的例子中结束文章的讲解。

2020-05-13 07:02:31 8376 1

原创 JDK12的新特性:teeing collectors
原力计划

文章目录简介talk is cheap, show me the codeTeeing方法深度剖析Characteristics总结 JDK12的新特性:teeing collectors 简介 JDK12为java.util.stream.Collectors添加了一个新的teeing方法,怎么...

2020-05-13 06:54:49 10400 1

原创 JDK13的新特性:AppCDS详解
原力计划

AppCDS的全称是Application Class-Data Sharing。主要是用来在不同的JVM中共享Class-Data信息,从而提升应用程序的启动速度。 通常来说,如果要执行class字节码,JVM需要执行下面的一些步骤:给定一个类的名字,JVM需要从磁盘上面找到这个文件,加载,并...

2020-05-12 07:09:15 8555 1

原创 JDK14的新特性:JFR,JMC和JFR事件流
原力计划

Java Flight Recorder(JFR)是JVM的诊断和性能分析工具。它可以收集有关JVM以及在其上运行的Java应用程序的数据。JFR是集成到JVM中的,所以JFR对JVM的性能影响非常小,我们可以放心的使用它。 一般来说,在使用默认配置的时候,性能影响要小于1%。 JFR的历史很...

2020-05-12 06:58:39 8157 1

原创 java深入理解浅拷贝和深拷贝
原力计划

拷贝对象是java中经常会遇到的问题。java中存在两种类型,基础类型和引用类型。 java的赋值都是传值的,对于基础类型来说,会拷贝具体的内容,但是对于引用对象来说,存储的这个值只是指向实际对象的地址,拷贝也只会拷贝引用地址。 因为引用对象的存在,所以经常会出现和预期不一样的情况。 本文将...

2020-05-11 06:46:53 7998 1

原创 jcmd:JDK14中的调试神器
原力计划

jcmd是JDK自带的调试工具,具有非常强大的功能。jcmd是JDK7中正式引入的,有了jcmd,完全可以替换很多常用的其他工具,比如jstak和jmap。 jcmd可以将具体的诊断命令发送给JVM。为了安全起见,使用jcmd的用户必须跟运行的java程序具有同样的用户和用户组。 jcmd的调...

2020-05-11 06:39:08 8493 5

原创 你真的了解java class name吗?
原力计划

在面向对象的世界,Class是java的基础。java.lang.Class实际上是继承自java.lang.Object。 class有一个方法叫做getName,该方法会返回(class, interface, array class, primitive type,或者 void)的Clas...

2020-05-10 06:45:01 8215 1

原创 JDK14中的java tools简介
原力计划

在还没有IDE的时代,高手们还是通过记事本来编程。那时候能够写程序的都是牛人。能把程序写得好的更是牛人中的牛人。 秃头大叔的程序员形象就是在那个时候建立起来的。 还记得十几年前的那一个春天,微风不动,太阳都羞红了脸。因为那时候的我还在一个javac,一个java的编译,运行着java程序。 ...

2020-05-10 06:30:55 8313 1

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