自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序那些事

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

  • 博客(29)
  • 资源 (27)
  • 收藏
  • 关注

原创 Spring Boot注解

文章目录简介@SpringBootApplication@EnableAutoConfiguration条件自动配置@ConditionalOnClass 和 @ConditionalOnMissingClass@ConditionalOnProperty@ConditionalOnResource@ConditionalOnWebApplication 和 @ConditionalOnNotWe...

2020-01-30 10:40:07 11921

原创 Maven Wrapper简介

文章目录简介Maven Wrapper的结构下载Maven Wrapper使用Maven Wrapper简介简介开发java项目少不了要用到maven或者gradle,对比gradle而言,可能maven要更加常用一些。要使用maven那就必要要安装maven,如果有些用户不想安装maven怎么办?或者说用户不想全局安装maven,那么可以使用项目级别的Maven Wrapper来实现这个功...

2020-01-29 14:43:20 13209

原创 spring boot 使用maven和fat jar/war运行应用程序的对比

文章目录简介Spring Boot Maven Plugin使用Maven命令来运行应用程序作为fat jar/war包运行应用程序详解War文件详解jar文件如何选择使用maven和fat jar/war运行应用程序的对比简介上篇文章我们介绍了Spring boot的fat jar/war包,jar/war包都可以使用 java -jar 命令来运行,而maven也提供了mvn sprin...

2020-01-28 11:58:41 12091

原创 使用spring boot创建fat jar APP

文章目录介绍build和runfat jar和 fat war更多配置介绍在很久很很久以前,我们部署web程序的方式是怎么样的呢?配置好服务器,将自己写的应用程序打包成war包,扔进服务器中指定的目录里面。当然免不了要配置一些负责的xml和自定义一些servlet。现在有了spring boot,一切都变了,我们可以将web应用程序打包成fat jar包,直接运行就行了。本文将会关注于怎么...

2020-01-27 17:20:06 11801

原创 Spring boot自定义parent POM

文章目录概述不使用Parent POM来引入Spring boot覆盖依赖项版本概述在之前的Spring Boot例子中,我们都会用到这样的parent POM。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-...

2020-01-26 10:53:21 12613

原创 使用VSCode连接到IBM Cloud区块链网络

文章目录从IBM Cloud控制面板导出连接信息在VSCode中创建gateway和wallet在VSCode中提交transaction上篇文章我们讲到怎么在IBM Cloud搭建区块链环境并且将本地的智能合约导出并安装在IBM Cloud网络环境中。本篇文章我们会继续讲解如何通过本地的VSCode来远程连接和调用部署在远程的IBM Cloud上的智能合约。从IBM Cloud控制面板导出...

2020-01-25 11:59:20 11720

原创 Spring Boot Starters介绍

文章目录Web StartTest StarterData JPA StarterMail Starter结论对于任何一个复杂项目来说,依赖关系都是一个非常需要注意和消息的方面,虽然重要,但是我们也不需要花太多的时间在上面,因为依赖毕竟只是框架,我们重点需要关注的还是程序业务本身。这就是为什么会有Spring Boot starters的原因。Starter POMs 是一系列可以被引用的依赖...

2020-01-23 08:21:34 13051

原创 如何在Spring boot中修改默认端口

文章目录介绍使用Property文件在程序中指定使用命令行参数值生效的顺序如何在Spring boot中修改默认端口介绍Spring boot为应用程序提供了很多属性的默认值。但是有时候,我们需要自定义某些属性,比如:修改内嵌服务器的端口号。本篇文章就来讨论这个问题。使用Property文件第一种方式,也是最常用的方式就是在属性文件中,覆盖默认的配置。对于服务器的端口来说,该配置就是:...

2020-01-22 09:34:50 12509

原创 使用Spring Boot搭建你的第一个应用程序

文章目录依赖配置main程序配置MVC配置安全配置存储Web 页面和Controller异常处理测试结论Spring Boot是Spring平台的约定式的应用框架,使用Spring Boot可以更加方便简洁的开发基于Spring的应用程序,本篇文章通过一个实际的例子,来一步一步的演示如何创建一个基本的Spring Boot程序。依赖配置本例子使用Maven来做包的依赖管理,在pom.xml文...

2020-01-21 10:20:34 14124 6

原创 在IBM Cloud中运行Fabric

文章目录打包智能合约创建IBM Cloud services创建fabric网络创建org和相应的节点创建order org和相应节点创建和加入channel导入智能合约上篇文章我们讲了怎么使用IBM blockchain platform extension在VS Code编辑器中创建本地运行的智能合约。创建完智能合约之后,可以在自己搭建的blockchain环境中运行,也可以在各大云平台上...

2020-01-20 09:34:32 11744 4

原创 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约

文章目录安装IBM Blockchain Platform extension for VS Code创建一个智能合约项目理解智能合约打包智能合约Local Fabric Ops安装智能合约实例化智能合约提交和查询事务使用IBM Blockchain Platform extension开发你的第一个fabric智能合约IBM Blockchain Platform extension是VSC...

2020-01-19 10:49:38 12119 4

原创 Solidity的Bytecode和Opcode简介

Solidity的Bytecode和Opcode简介随着我们更深入地编写智能合约,我们将遇到诸如“ PUSH1”,“ SSTORE”,“ CALLVALUE”等术语。 他们是什么,我们什么时候应该使用到他们?要了解这些命令,我们必须更深入地了解以太坊虚拟机(EVM)。本文将会尝试尽可能简单地解释一些EVM基础。希望大家都有所收获。像许多其他流行的编程语言一样,Solidity是一种高级编程语...

2020-01-17 10:24:50 12685 6

原创 Fabric的6大特性

文章目录什么是Hyperledger Fabric1. 成员准入2. 性能,可伸缩性和信任级别3 需要了解的数据4 通过不可变的分布式账本进行复杂查询5 支持插件组件的模块化架构6 保护数字钥匙和敏感数据什么是Hyperledger Fabric为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是...

2020-01-17 10:06:34 12794 1

原创 混合密码系统

之前的文章我们讲了两种加密方式,一种是对称加密,一种是非对称加密。对称加密可以解决通信的机密性的问题,但是不能解决密钥配送的问题。而非对称加密算法虽然可以解决密钥配送的问题,但是它的加密速度比较慢,并且无法抵御中间人攻击。那么如果将对称加密算法和非对称加密算法结合起来,是不是就能够得到一种既不用配送密钥,加密速度又快的系统呢?答案是肯定的,著名的SSL/TLS协议就是这样的加密系统。这样的系...

2020-01-16 11:18:22 11661 1

原创 单向散列函数

文章目录单向散列函数单向散列函数的性质单向散列函数的实现对单向散列算法的攻击单向散列函数在介绍单向散列函数之前,我们先了解一下什么情况下需要使用到单向散列函数。如果你需要从国外的网站上下载一个软件,但是因为种种原因,国外的网络太慢了,下载几个G的数据几乎是不可能的。刚好国内有镜像网站,可以从国内下载数据。但是如何保证国内的镜像不是被篡改过后的呢?这个时候就需要单向散列函数了。一般来说网站会提...

2020-01-16 11:15:57 11831 1

原创 中间人攻击

前面的文章我们讲到了RSA算法以目前的手段是很难被攻破的,那么使用RSA算法是不是就一定安全了呢?答案当然是否,因为我们并没有考虑到网络传输中的各种情况。本文会讲一种攻击叫做中间人攻击,为了抵御这种攻击,我们引入证书的概念。我们会在后续的文章中讲解证书的概念。这里我们重点讲一下中间人攻击。所谓中间人攻击就是在A和B通信的过程中加入了恶意攻击者C。C作为中间人转发两者的请求。示意图如下:消息...

2020-01-15 09:49:13 18756 2

原创 RSA算法详解

文章目录什么是RSARSA的加密RSA的解密N,E,D的生成1. 生成N2. 求L3. 求E4. 求D破解RSA什么是RSA前面文章我们讲了AES算法,AES算法是一种是对称加密算法,本文我们来介绍一个十分常用的非对称加密算法RSA。非对称加密算法也叫公钥密码算法,通过生成的公私钥来对明文密文进行加密解密。 RSA的名字是由它的三个开发者Ron Rivest, Adi Shamir和 Leo...

2020-01-15 09:40:16 15562 5

原创 Scala的自定义类型标记

Scala的自定义类型标记Scala中有很多千奇百怪的符号标记,看起来是那么的独特,就像是一杯dry martini…好像黑夜中的萤火虫,那么耀眼,那么出众。好了言归正传,这一篇文章我们会讲一下Scala中的自定义类型标记,通过自定义类型标记可以将this指向额外的类型期望。我们先看一个观察者模式的例子:abstract class SubjectObserver { ...

2020-01-14 10:19:12 3006 1

原创 新版gitbook导出pdf

文章目录gitbook自带的npm模块gitbook使用vscode的插件Markdown PDF使用CommandBox GitBook Exporter最近想把自己写的一个gitbook转成pdf分享出去,突然发现最新的gitbook版本已经不支持导出PDF了。于是在网上找了好久终于被我发现了三个将gitbook转换成pdf的方式,现分享给大家。我使用的是mac系统,如果是其他系统大家可以查...

2020-01-14 10:15:49 11636 2

原创 Spring MVC 中的http Caching

文章目录过期时间Last-ModifiedETagSpring ETag filterSpring MVC 中的http CachingCache 是HTTP协议中的一个非常重要的功能,使用Cache可以大大提高应用程序的性能,减少数据的网络传输。通常来说我们会对静态资源比如:图片,CSS,JS文件等做缓存。同样的我们可以使用HTTP Cache配合Spring MVC来做动态资源的缓存。...

2020-01-13 10:46:03 10890 1

原创 scala教程之:可见性规则

文章目录publicProtectedprivatescoped private 和 scoped protected和java很类似,scala也有自己的可见性规则,不同的是scala只有private和protected关键字,没有public关键字,同时scala还提供了更加细粒度的访问控制如protected[scope]和private[scope]。publicscala中默认的...

2020-01-13 10:43:00 2851 1

原创 Scala教程之:深入理解协变和逆变

文章目录函数的参数和返回值可变类型的变异在之前的文章中我们简单的介绍过scala中的协变和逆变,我们使用+ 来表示协变类型;使用-表示逆变类型;非转化类型不需要添加标记。假如我们定义一个class C[+A] {} ,这里A的类型参数是协变的,这就意味着在方法需要参数是C[AnyRef]的时候,我们可以是用C[String]来代替。同样的道理如果我们定义一个class C[-A] {}, 这...

2020-01-10 10:13:18 3117 1

原创 Scala教程之:Either

在之前的文章中我们提到了Option,scala中Option表示存在0或者1个元素,如果在处理异常的时候Option就会有很大的限制,因为Option如果返回None,那么我并不知道具体的异常到底是什么,这样scala引入了Either。顾名思意,Either表示或者是这一个元素或者是那个元素。这样在异常处理的时候就非常有用了。我们先看一下Either的定义:sealed abstract...

2020-01-09 10:34:06 3264

原创 @SessionAttributes 和 @SessionAttribute的区别

@SessionAttributes 和 @SessionAttribute的区别Spring MVC中有两个长得非常像的注解:@SessionAttributes 和 @SessionAttribute。我们先看下@SessionAttributes的定义:@SessionAttributes用于在请求之间的HTTP Servlet会话中存储model属性。 它是类型级别的注解,用于声明特...

2020-01-08 14:23:42 6317

原创 Scala教程之:可变和不变集合

文章目录mutable HashMapimmutable HashMap集合在程序中是非常有用的,只有用好集合才能真正感受到该语言的魅力。在scala中集合主要在三个包里面:scala.collection, scala.collection.immutable和scala.collection.mutable。scala中引入不可变集合是为了方便程序的使用并减少在程序中的未知风险。如果一个集...

2020-01-08 14:10:25 3479

原创 分布式账本简介

文章目录什么是分布式分布式账本分布式账本在现实业务中的作用当前业务分布式账本的问题什么是区块链区块链网络如何工作区块链的商业利益区块链的使用什么是超级账本企业区块链要求什么是分布式分布式账本分布式账本是一种数据库类型,可在分散网络的成员之间共享,复制和同步。分布式账本记录网络参与者之间的交易,例如资产或数据交换。网络的参与者对分布式账本中记录的更新进行管理并达成共识。不涉及中央机构或第三方调...

2020-01-07 11:02:09 15555 1

原创 Scala教程之:Future和Promise

文章目录定义返回Future的方法阻塞方式获取Future的值非阻塞方式获取Future的值Future链flatmap VS mapFuture.sequence() VS Future.traverse()Future.foldLeft VS Future reduceLeftFuture firstCompletedOfFuture zip VS zipWithFuture andThen...

2020-01-07 10:59:32 3989

原创 Scala教程之:PartialFunction

Scala中有一个很有用的traits叫PartialFunction,我看了下别人的翻译叫做偏函数,但是我觉得部分函数更加确切。那么PartialFunction是做什么用的呢?简单点说PartialFunction用在模式匹配中,是一个不完整的函数,它只实现了函数的部分功能,也就是列举了部分case的情况。我们先看下PartialFunction的定义:trait PartialFunc...

2020-01-06 09:53:53 3590

原创 Hyperledger Fabric基础知识

文章目录什么是Hyperledger Fabric?Hyperledger架构是怎么工作的?Hyperledger交易如何执行总结Hyperledger Fabric基础知识本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。区块链技术为创新提供了丰富的机会。它提供了一种新的交易方式,从而可以从根本上改变业务的实现。那么,在众多的区块链框...

2020-01-06 09:51:15 11761

Stream和Lambda表达式最佳实践

Stream和Lambda表达式是Java 8引入的两个重要特性,它们极大地简化了集合处理和函数式编程的复杂性。以下是关于Stream和Lambda表达式的最佳实践介绍: Lambda表达式 Lambda表达式允许我们以简洁的方式表示匿名函数。最佳实践包括: 保持简洁:Lambda表达式应尽可能简洁,避免冗长的代码块。 避免副作用:Lambda表达式通常不应修改外部状态或具有副作用,以保持其纯函数性质。 类型推断:尽量利用Java的类型推断功能,避免显式指定Lambda表达式的参数类型。 Stream API Stream API提供了一种高效且声明式的方式来处理集合数据。最佳实践包括: 链式操作:利用Stream的链式操作,可以流畅地组合多个转换和过滤操作。 并行处理:对于大型数据集,考虑使用并行流(parallel streams)来加速处理。但要注意,并非所有操作都适合并行化,需要根据具体情况进行选择。 中间操作与终止操作:明确区分Stream的中间操作和终止操作。中间操作会返回一个新的Stream,而终止操作会生成一个结果或副作用。

2024-04-24

JAVA IO-NIO 详解

在Java中,IO(输入/输出)是程序与外部世界进行交互的重要桥梁,而NIO(非阻塞IO)则是Java IO的一个重要扩展,它提供了更为高效、灵活的数据处理方式。 传统的Java IO是阻塞式的,即当程序进行读写操作时,如果数据没有准备好,线程会阻塞等待,这在高并发场景下会导致线程资源的浪费。而NIO则是非阻塞式的,它允许线程在等待数据准备好的同时,继续执行其他任务,从而提高了系统的整体吞吐量和响应速度。 NIO的核心组件包括Channel(通道)、Buffer(缓冲区)和Selector(选择器)。Channel是数据传输的通道,它替代了传统IO中的流;Buffer是数据的容器,它可以在Channel和程序之间进行数据的读写操作;Selector则用于监控多个Channel的状态,实现单线程处理多个Channel的目的。

2024-04-24

JAVA高质量并发详解,多线程并发深入讲解

是一本深入探讨Java并发编程的经典之作。本书全面解析了Java并发编程的核心概念、原理和实践,帮助读者深入理解多线程并发编程的精髓,提升编程能力和系统性能。 书中首先介绍了并发编程的基础知识,包括线程的基本概念、线程的生命周期、线程安全等问题。接着,深入讲解了Java并发编程的核心API,如synchronized关键字、Lock接口、Condition接口、Semaphore等,帮助读者掌握Java并发编程的基本工具和方法。 除了基础知识和API的讲解,本书还重点介绍了Java并发编程的高级特性和设计模式。例如,通过讲解线程池、Future模式、Fork/Join框架等,帮助读者解决复杂的并发问题,提高系统的响应能力和吞吐量。此外,书中还深入剖析了并发编程中的常见问题,如死锁、活锁、饥饿等,并提供了相应的解决方案和最佳实践。 本书注重理论与实践相结合,通过大量的示例代码和案例分析,帮助读者更好地理解和掌握并发编程的技巧和精髓。同时,书中还提供了丰富的练习和思考题,帮助读者巩固所学知识,提升编程实践能力。

2024-04-24

java-io-all-in-one.pdf

和小师妹一起,从零开始,掌握java中最核心的IO和NIO技巧吧!

2021-08-05

java-collection-all-in-one.pdf

详细讲解java中集合的分类和使用,并介绍了java集合中一些不为人知的小秘密。还详细介绍了java并发包中的集合特性。

2020-10-26

JDK14GC-cheatsheet.pdf

JDK14 GC调优秘籍 JDK14 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK14中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-13的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK13GC-cheatsheet.pdf

JDK13 GC调优秘籍 JDK13 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK13中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-12的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK12GC-cheatsheet.pdf

JDK12 GC调优秘籍 JDK12 GC cheatsheet, 一张PDF包含所有的调优参数! 为了方便大家的参考,特意将JDK12中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8-11的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-07-24

JDK11GC-cheatsheet.pdf

JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。同时还提供了新的HTTP API,支持响应性stream。 当然上面的都不是重点,重点的是JDK11是一个LTS版本,是继JDK8之后的又一个LTS版本,也可能是大家日后使用的最多的一个版本。 所以JDK11的JVM参数吸收了JDK9,JDK10的新特性和改动,并在他们的基础上进行了微调。 同样在文章最后,我也将JDK11的GC调优秘籍做成了一张PDF,欢迎大家下载。

2020-07-22

JDK10GC-cheatsheet.pdf

为了方便大家的参考,特意将JDK10中的GC参数总结成了一张PDF,这个PDF在之前的JDK9的基础上进行了增减和修正,欢迎大家下载。

2020-07-16

JDK9GC-cheatsheet.pdf

JDK9 GC调优秘籍 JDK9 GC cheatsheet, 一张PDF包含所有的调优参数! 今天我们讲讲JDK9中的JVM GC调优参数,JDK9中JVM的参数总共有2142个,其中正式的参数有659个。好像比JDK8中的参数要少一点。 为了方便大家的参考,特意将JDK9中的GC参数总结成了一张PDF,这个PDF比之前总结的JDK8的PDF在排版,颜色和内容准确性上面又有了非常大的提升,欢迎大家下载。

2020-06-26

JDK8GC-cheatsheet.pdf

JVM的参数有很多很多,根据我的统计JDK8中JVM的参数总共有1853个,正式的参数也有680个。 这么多参数带给我们的是对JVM的细粒度的控制,但是并不是所有的参数都需要我们自己去调节的,我们需要关注的是一些最常用的,对性能影响比较大的GC参数即可。 为了更好的让大家理解JDK8中 GC的调优的秘籍,这里特意制作了一张PDF,遇到问题就看两眼,不美吗?

2020-06-22

Spring5.1中文参考指南.pdf

最新版Spring5.1参考指南中文版,带全部标签,可能是全网最好的PDF了,欢迎大家下载! 除了Spring之前的功能介绍之外,增加了Spring5最新的webflux技术,让你的程序更快更强更好

2019-11-30

Android编程入门教程

Android编程入门教程. android 入门教程, 非常适合新手。赶紧来下载吧。

2015-06-25

Android编程权威指南

Android编程权威指南 想要精通安卓的快来看看啊, 绝对是不可多得的一本好书。

2015-06-25

Android应用开发详解.pdf

Android应用开发详解, 非常牛逼的书。 必看

2015-04-03

概观C++程序设计语言.chm

概观C++程序设计语言.chm

2007-04-21

Inside C++ Object Model.chm

Inside C++ Object Model.chm<br/>Inside C++ Object Model.chm

2007-04-20

高质量C、C++编程指南.pdf

高质量C、C++编程指南.pdf

2007-04-20

spring live 中文版

spring live 中文版<br/>好东西

2007-04-20

Hibernate原理与配置快速入门.pdf

Hibernate原理与配置快速入门.pdf

2007-04-20

j2ee 1.4 API

j2ee 1.4 API

2007-04-19

UML ROSE

Uml 的好帮手

2007-04-19

CSS 2.0

CSS 2.0 页面设计必备

2007-04-19

struts in action

struts in action

2007-04-13

struts-api

struts-api

2007-04-13

空空如也

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

TA关注的人

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