国外翻译文章
陆理手记
求学问是,敢为人先
展开
-
Java泛型中<?> 和 <? extends Object>的异同分析
相信很多人和我一样,接触Java多年,却仍旧搞不清楚 Java 泛型中 <?>和 <? extends Object>的相似和不同。但是,这应该是一个比较高端大气上档次的Question, 在我们进行深入的探讨之前,有必要对Java泛型有一个基础的了解。详细请看上一篇文章!1. 泛型产生的背景在 JDK5 中引入了泛型来消除编译时错误和加强类型安全性。这种额外的类型安全性消除了某些用例中的强制转换,并使程序员能够编写泛型算法,这两种方法都可以生成更具可读性的代码。例如,在 J原创 2020-11-18 12:57:15 · 4100 阅读 · 0 评论 -
如何更好的记忆 LinkedBlockingQueue 以及 ConcurrentLinkedQueue
1. 简单的开篇LinkedBlockingQueue 和 ConcurrentLinkedQueue 是 Java 高并发场景中最常使用的队列。尽管这两个队列经常被用作并发场景的数据结构,但它们之间仍有细微的特征和行为差异。在这篇文章中,我将和大家一起探讨这两者之间的异同点。欢迎大家在留言讨论~2. LinkedBlockingQueue首先 LinkedBlockingQueue 是一个 “可选且有界” 的阻塞队列实现,你可以根据需要指定队列的大小。接下来,我将创建一个LinkedBlocki原创 2020-08-19 14:24:45 · 580 阅读 · 0 评论 -
不管你年底换不换工作,了解下单例模式
1. 单例模式什么是单例模式?简言之就是确保定义为单例模式的类在程序中有且只有一个实例。单例模式的特点:只有一个实例 (只能有一个对象被创建)自我实例化(类构造器私有)对外提供获取实例的静态方法2.单例模式的实现常见的单例模式实现方式有五种:2.1. 懒汉式懒汉式(一般也称之为 饱汉式),具体代码实现如下:public class Singleton { /*...原创 2019-12-01 23:00:23 · 1322 阅读 · 1 评论 -
微服务中的Kafka与Micronaut
今天,我们将通过Apache Kafka主题构建一些彼此异步通信的微服务。我们使用Micronaut框架,它为与Kafka集成提供专门的库。让我们简要介绍一下示例系统的体系结构。我们有四个微型服务:订单服务,行程服务,司机服务和乘客服务。这些应用程序的实现非常简单。它们都有内存存储,并连接到同一个Kafka实例。我们系统的主要目标是为客户安排行程。订单服务应用程序还充当网关。它接收来自客户的请求...原创 2019-11-21 08:54:41 · 8303 阅读 · 1 评论 -
用Java实现简单的区块链
用 Java 实现简单的区块链1. 概述本文中,我们将学习区块链技术的基本概念。也将根据概念使用 Java 来实现一个基本的应用程序。进一步,我们将讨论一些先进的概念以及该技术的实际应用。2. 什么是区块链?因此,让我们首先了解到底什么是区块链...它的起源可以追溯到2008年 Satoshi Nakamoto 在比特币上发布的白皮书。区块链是一个分散的信息分类账。它由通过使...原创 2019-11-13 07:48:01 · 8201 阅读 · 7 评论 -
谁说搞Java的不能玩机器学习?
简介机器学习在全球范围内越来越受欢迎和使用。 它已经彻底改变了某些应用程序的构建方式,并且可能会继续成为我们日常生活中一个巨大的(并且正在增加的)部分。没有什么包装且机器学习并不简单。 它对许多人来说似乎非常复杂并常常令人生畏。像谷歌这样的公司将自己的机器学习概念与开发人员联系起来,在谷歌帮助下让他们逐渐迈出第一步,故TensorFlow的框架诞生了。TensorFlow为何物?Tensor...原创 2019-11-05 21:32:01 · 2162 阅读 · 0 评论 -
Spring Boot 配置元数据指南
1. 概览在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的。但是,记录这些属性的最好方法是什么呢?在本教程中,我们将探讨 Spring Boot Configuration Processor 和 关联的 JSON 元数据文件,该 JSON 文档记录每个属性的含义、约束等。2. 配置元数据作为开发人员,我们开发的大多数应用程序在某种程度上必须...原创 2019-10-24 09:51:53 · 1333 阅读 · 0 评论 -
注解在Java中是如何工作的?
来一点咖啡,准备好进入注解的世界。注解一直是 Java 的一个非常重要的部分,它从 J2SE 5.0 开始就已经存在了。在我们的应用程序代码中,经常看到 @Override 和 @Deprecated 这样的注解。在本文中,我将讨论注解到底是什么,为什么引入注解,它们是如何工作的,如何编写自定义注解(有示例代码),注解的有效场景是什么,最后是注解和 ADF。这将是一个很长的帖子,所以来一...原创 2019-10-22 13:53:01 · 1224 阅读 · 0 评论 -
10步成为一个优秀的Java开发!
1、拥有坚实的基础并理解面向对象原则Java开发人员必须深刻理解面向对象编程。如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感。 如果你不太了解现象对象编程是什么,即使你使用的是面向对象编程语言,你仍可能会面向过程进行编码。仅研究面向对象原则并没有太多的帮助, 我们应该知道如何使用面向对象的方式应用这些原则来设计解决方案。 因此我们需要拥有丰富的对象建模,继承,...原创 2019-10-21 10:05:17 · 3885 阅读 · 2 评论 -
回调“地狱”和反应模式
了解更多有关基于反应流的方法以及如何避免回调地狱的信息。更好地理解基于反应流的方法的有用性的方法之一是它如何简化非阻塞 IO 调用。本篇文章将简要介绍进行同步远程调用所涉及的代码类型。然后,我们将演示非阻塞 IO 中的分层如何高效使用资源(尤其是线程),引入了称为回调地狱带来的复杂性以及基于反应流方法如何简化编程模型。1. 目标服务客户端调用表示城市详细信息的目标服务有两个端口。当使用类型...原创 2019-06-28 10:59:39 · 306 阅读 · 0 评论 -
性能监控: SPF4J介绍
1. 总体介绍性能测试是一项在软件生命开发周期中总是被置于最后一环的活动。我们经常依靠 Java profilers 去帮助发现性能问题。在这篇文章中,我们将会学习关于 Java 的简单性能测试框架 - SPF4J。它提供了可以加在我们代码中的 API。因此,我们可以将 性能监视变为我们组件的一部分。2. 度量捕获和可视化的基本概念在我们开始之前,让我们用一个简单的例子来理解度量捕获和可视...翻译 2019-07-05 09:39:10 · 243 阅读 · 0 评论 -
JVM中的本机内存跟踪
1.概述有没有想过为什么Java应用程序通过众所周知的-Xms和-Xmx调优标志消耗的内存比指定数量多得多?出于各种原因和可能的优化,JVM可以分配额外的本机内存。这些额外的分配最终会使消耗的内存超出-Xmx限制。在本教程中,我们将列举JVM中的一些常见内存分配源,以及它们的大小调整标志,然后学习如何使用本机内存跟踪监视它们。2.原生分配堆通常是Java应用程序中最大的内存使用者,但还有其...翻译 2019-07-06 18:14:25 · 216 阅读 · 0 评论 -
Solr 全文搜索
Solr 全文搜索原创 2019-07-18 11:20:28 · 923 阅读 · 0 评论 -
Java并发之线程封闭
Java并发之线程封闭读者们好! 在这篇博客中,我们将探讨线程封闭是什么意思,以及我们如何实现它。 所以,让我们直接开始吧。1. 线程封闭大多数的并发问题仅发生在我们想要在线程之间共享可变变量或可变状态时。如果在多个线程之间操作共享变量,则所有线程都将能够读取和修改变量的值,从而出现意外或不正确的结果。一种简单的避免此问题的方式是不在线程之间共享数据。 这种技术称为线程封闭,是在我们的...翻译 2019-07-16 10:36:53 · 129 阅读 · 0 评论 -
Java中的关键字synchronized
1. 介绍在Java并发系列的文章中,这个是第二篇文章。在前面的一篇文章中,我们学习了Java中的Executor池和Excutors的各种类别。在这篇文章中,我们会学习synchronized关键字以及我们在多线程的环境中如何使用。2. 什么是同步?在一个多线程的环境中,多个线程同时访问相同的资源的情况是存在的。例如,两个线程试图写入同一个文本文件。它们之间没有任何的同步,当两个或多个线...翻译 2019-07-12 09:42:20 · 120 阅读 · 0 评论 -
Scrum是脆弱的,不敏捷的
Scrum是脆弱的,不敏捷的原创 2019-07-19 11:32:17 · 960 阅读 · 0 评论 -
使用 Spring Framework 时常犯的十大错误
使用 Spring Framework 时常犯的十大错误原创 2019-07-24 09:47:32 · 1012 阅读 · 0 评论 -
利用微设计实现可持续高效的基础设施
利用微设计实现可持续高效的基础设施转载 2019-07-26 09:22:20 · 914 阅读 · 0 评论 -
Spring WebClient vs. RestTemplate
Spring WebClient vs. RestTemplate原创 2019-07-31 11:56:32 · 501 阅读 · 0 评论 -
为什么选择 Spring 作为 Java 框架
为什么选择 Spring 作为 Java 框架原创 2019-07-23 09:00:48 · 635 阅读 · 0 评论 -
数据作为微服务 分布式数据集中集成
1.引言 Microservices(微服务)是新软件项目中所青睐的架构设计。随着从单一系统到分布式系统的演化不仅发生在应用程序空间中,而且发生在数据存储中,管理数据成为最困难的挑战之一,然而,要从这种类型的方法中获得最大的收益,需要克服前面的几个需求。本文研究了将数据作为服务实现的一些考虑事项。 在遵循微服务设计指南时,我们找到一些对数据处理的参考。其中一些常见的方向包括: 每个服...原创 2019-08-05 09:43:29 · 635 阅读 · 0 评论 -
Top11 构建和测试API的工具
立刻像专业人士一样构建API 组织正在改变他们已经在软件应用项目中成功的微服务架构模型,这就是大多数微服务项目使用API(应用程序接口)的原因。我们要为微服务喝彩,因为它相对于其他的模型有各种先进的特性。 与此类似,这些数据存储区具有独立的命令来处理每个数据存储区;此外,它还允许软件提供商更快地部署组件。如果更新了一个应用程序,则不需要更新其余的应用程序;它们可以继续其功能。 我们正...原创 2019-08-25 21:18:57 · 1070 阅读 · 0 评论 -
Top 10 顶级项目管理工具
成功的项目都要归功于成功的项目管理。这些工具帮你踏上成功之旅! 项目管理是成功完成项目并使公司变得伟大的秘诀。不,这不是标题党(clickbait) —— 我已经看到两家软件公司(我在那里工作)因为项目管理不善而在1 - 2年内濒临破产,其他一些人看到他们的产品发布推迟了几个月。虽然我同意,与其他大多数学科一样,项目管理中也有很多骗人的把戏,但这并没有降低其重要性和影响。 适用于项目管理...原创 2019-08-17 21:51:55 · 2329 阅读 · 0 评论 -
Java 迭代接口:Iterator、ListIterator 和 Spliterator
1. 简介 当我们使用 for 或 while 循环来遍历一个集合的元素,Iterator 允许我们不用担心索引位置,甚至让我们不仅仅是遍历一个集合,同时还可以改变它。例如,你如果要删除循环中的元素,那么 for 循环不见得总是可行的。 结合自定义的迭代器,我们可以迭代更为复杂的对象,以及向前和向后移动,并且知晓如何利用其优势也将变得非常清楚。 本文将深入讨论如何使用 Iterato...原创 2019-08-27 08:12:56 · 1404 阅读 · 0 评论 -
Java 8 Comparator: 列表排序
在本文中,我们将看到几个关于如何在Java 8中对List进行排序的示例。1.按字母顺序排序字符串列表List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", ...原创 2019-05-28 09:33:18 · 317 阅读 · 0 评论 -
Java并发框架:Executor
介绍随着当今处理器中可用的核心数量的增加, 随着对实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行。 Java 提供了自己的多线程框架,称为 Executor 框架.1. Executor 框架是什么?Executor 框架包含一组用于有效管理工作线程的组件。Executor API 通过 Executors 将任务的执行与要执行的实际任务解耦。 这是 生产者-消费者 模式的一种...翻译 2019-07-09 09:17:59 · 172 阅读 · 0 评论 -
Spring Batch 入门级示例教程
我将向您展示如何使用Spring Boot创建一个的Spring Batch的Hello World示例。(循序渐进)因此,如果您是Spring Batch的初学者,您一定会喜欢本指南。准备好了吗?如果您想了解更多关于Spring Batch的信息,请访问Spring Batch教程页面。1.Spring Batch框架工作原理在深入研究代码之前,让我们先看看Spring Batch框...翻译 2019-07-03 09:15:25 · 1004 阅读 · 0 评论 -
Jest — ElasticSearch Java 客户端
1. 介绍任何使用过Elasticsearch的人都知道,使用基于rest的搜索API构建查询可能是单调乏味且容易出错的。在本教程中,我们将研究Jest,一个用于Elasticsearch的HTTP Java客户端。Elasticsearch提供了自己原生的Java客户端,然而 Jest提供了更流畅的API和更容易使用的接口。2. Maven 依赖我们需要做的第一件事是导入Jest库到我们...翻译 2019-06-24 09:23:10 · 327 阅读 · 0 评论 -
Java模块解耦的设计策略
1. 概述Java 平台模块系统 (Java Platform Module System,JPMS)提供了更强的封装、更可靠且更好的关注点分离。但所有的这些方便的功能都需要付出代价。由于模块化的应用程序建立在依赖其他正常工作的模块的模块网上,因此在许多情况下,模块彼此紧密耦合。这可能会导致我们认为模块化和松耦合是在同一系统中不能共存的特性。但事实上可以!在本教程中,我们将深入探讨两种众所...原创 2019-06-13 12:47:45 · 1200 阅读 · 0 评论 -
Java泛型构造函数
推荐关注公众号:锅外的大佬每日推送国外优秀的技术翻译文章,励志帮助国内的开发者更好地成长!1.概述我们之前讨论过Java Generics的基础知识。在本文中,我们将了解Java中的通用构造函数。泛型构造函数是至少需要有一个泛型类型参数的构造函数。我们将看到泛型构造函数并不都是在泛型类中出现的,而且并非所有泛型类中的构造函数都必须是泛型。2.非泛型类首先,先写一个简单的类:Entry...原创 2019-05-29 13:55:49 · 3890 阅读 · 1 评论 -
Lombok简介
和其他语言相比,Java经常因为不必要的冗长被批评。Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁。较少的模板意味着更简洁的代码,更易于阅读和维护。在本文中,我将涉及我经常使用的Lombok功能,并想你展示如何使用他们生产更清晰、更简洁的代码。1.局部变量类型推断:val 和 var许多语言通过查看等号右侧的表达式来推断局部变量类型。尽管现在...翻译 2019-06-01 08:39:43 · 194 阅读 · 0 评论 -
让Spring Boot启动更快
关注公众号:锅外的大佬每日推送国外优秀技术好文!帮助每个开发者更好地成长原文链接:https://dev.to/bufferings/lets-make-springboot-app-start-faster-k9m作者:Mitz译者:Lensen“Spring有多快?” 这是2018年”Spring One Platfrom“大会的一个主题,我看了视频并亲自尝试了一下。所以我将在这篇...翻译 2019-05-24 09:12:18 · 244 阅读 · 0 评论 -
Spring Boot中使用RSocket
1. 概述RSocket应用层协议支持 Reactive Streams语义, 例如:用RSocket作为HTTP的一种替代方案。在本教程中, 我们将看到RSocket用在spring boot中,特别是spring boot 如何帮助抽象出更低级别的RSocket API。2. 依赖让我们从添加spring-boot-starter-rsocket依赖开始:<dependency&...原创 2019-06-05 11:13:43 · 1394 阅读 · 0 评论 -
Spring Boot实现STOMP协议的WebSocket
关注公众号:锅外的大佬每日推送国外优秀的技术翻译文章,励志帮助国内的开发者更好地成长!1.概述我们之前讨论过Java Generics的基础知识。在本文中,我们将了解Java中的通用构造函数。泛型构造函数是至少需要有一个泛型类型参数的构造函数。我们将看到泛型构造函数并不都是在泛型类中出现的,而且并非所有泛型类中的构造函数都必须是泛型。2.非泛型类首先,先写一个简单的类:Entry,它...原创 2019-05-30 09:35:34 · 530 阅读 · 0 评论 -
使用Spring Boot和Elastic Stack进行日志记录
原文链接:https://piotrminkowski.wordpress.com/2019/05/07/logging-with-spring-boot-and-elastic-stack/作者: PiotrMińkowski译者:Yunooa在本文中,我将介绍我的日志库,专门用于Spring Boot RESTful Web应用程序。关于这个库的主要设想是:使用完整正文记录所有传入...原创 2019-05-27 09:53:40 · 611 阅读 · 0 评论 -
架构级开闭原则
原文链接:https://dzone.com/articles/the-open-closed-principle-at-an-architectural-leve作者:David Llobregat译者:Darren Luo关注公众号:"锅外的大佬", 专注翻译国外技术文章,帮助每一位开发者更好地成长1. 介绍这是在架构级应用 SOLID 原则的系列文章的第一篇。如...原创 2019-05-22 17:48:29 · 218 阅读 · 0 评论 -
Sping、SpringMVC、SpringBoot的对比
原文链接:https://dzone.com/articles/spring-boot-vs-spring-mvc-vs-spring-how-do-they-compare作者: Ranga Karanam译者:Yunooa推荐关注公众号: 锅外的大佬每日推送,专注分享国外最新技术内容,帮助每位开发者更优秀地成长在本文中,你将获取到有关于Spring,Spring MVC和Sprin...原创 2019-05-26 14:28:32 · 297 阅读 · 0 评论 -
Java FileChannel
FileChannel,你真的会吗?原文链接:https://www.baeldung.com/java-filechannel作者:baeldung译者:Leesen推荐关注公众号: 锅外的大佬每日推送,专注分享国外最新技术内容,帮助每位开发者更优秀地成长1.概述在这篇速学教程中,我们将研究Java NIO库中提供的FileChannel类,讨论如何使用FileChannel和B...原创 2019-05-25 08:47:24 · 3362 阅读 · 1 评论 -
Spring Cloud Turbine
1.概述本文中,我将向你介绍Spring Cloud Netflix Turbine。它将多个Hystrix Metrics Streams 聚合为一个,以便显示在一个仪表板视图中。简要介绍Hystrix 。 在微服务架构中,我们有许多小应用程序相互通信以完成请求。这些下游服务有可能无法正确响应或完全失败。为了防止发生级联故障,我们为微服务设置了Hystrix回退机制。每个实现Hystrix...原创 2019-06-07 21:21:03 · 163 阅读 · 0 评论 -
Java系统中如何拆分同步和异步
很多开发人员说,将应用程序切换到异步处理很复杂。因为他们有一个天然需要同步通信的Web应用程序。在这篇文章中,我想介绍一种方法来达到异步通信的目的:使用一些众所周知的库和工具来设计他们的系统。 下面的例子是用Java编写的,但我相信它更多的是基本原理,同一个应用程序可以用任何语言来重新写。所需的工具和库:Spring BootRabbitMQ1.Web应用程序一个用Spring MV...原创 2019-06-14 09:24:39 · 224 阅读 · 0 评论