背景今天收到业务团队反馈线上有个应用往Pulsar中发送消息失败了,经过日志查看得知是发送消息时候抛出了 java.lang.InterruptedException 异常。和业务沟通后得知是在一个 gRPC 接口中触发的消息发送,大约持续了半个小时的异常后便
只要某些预定的条件为真,一个 while 循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据它发现的情况采取行动。Java中的两种 while
据软件测试公司Veracode最新的报告,超过四分之三使用Java和.NET编写的应用程序至少存在一个以上的OWASPTop10漏洞。OWASPTop10是根据开放Web应用程序安全项目公开共享的10个最关键的Web应用程序安全漏洞列表。Veracode对76万个应用程序的安全性进行分析之后发现,使
前言介绍在上一章节介绍了领域驱动设计的基本概念以及按照领域驱动设计的思想进行代码分层,但是仅仅只是从一个简单的分层结构上依然没法理解DDD以及如何去开发这样的微服务。另外往往按照这样分层后依然感觉和MVC也没有什么差别,也没有感受到带来什么非常大的好处。那么问题出在哪呢?我个人觉得DDD学起来更像是
一、前言你会对你用到都技术,好奇吗?虽然我们都被称为码农,也都是写着代码,但因为所处场景需求的不同,所以各类码农也都做着不一样都事情。有些人统一规范、有些人开发组件、有些人编写业务、有些人倒腾验证,但越是工作内容简单如CRUD一样的码农,用到别人提供好的东西却是越多。一会安装个插件、一会引入个Jar
JDK8的重要更新除去Lambda之外还有Stream,两者结合使用为操作和计算数据提供了极大的便利。本篇文章并不打算长篇大论,文章过长会阅读疲劳,Stream也并不是一两篇文章可以介绍清楚的,本篇主要介绍Stream的简单理论加上案例来体会一下Stream的作用,便利和魅力,后续文章会系统讲解S
JDK如何运作?JDK功能以下是JDK的重要组件:JDK和JRE:程序员通过使用JDK创建由JRE运行的Java程序,其中包括JVM和类库。类库:是一组可动态加载的库,Java程序在运行时调用。编译器:是一个Java程序,开发人员的文本文件通过编译器编译成Java类文件。编译器给出的常见输出形式,包
成立于2000年的Tiobe公司,二十多年来一直以衡量编程语言流行度而闻名。由Tiobe推出的年度编程语言奖项2021年再度花落Python,这是Python连续第二年被评为年度编程语言,也是第五次获得该奖项。该奖项旨在颁发给一年内使用率增幅最大的编程语言。Tiobe表示,C#的增幅原本有望首次夺冠
背景今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下。复制package com.lingyejun.authenticator; public class&
图片来自包图网而某段时间写起来行云流水的Bash脚本,每次重新拿起,都会进入看文档写代码的境地。因为工作和个人兴趣的原因,需要在多种语言中进行切换,这种感觉尤为强烈。个人精力有限,不可能每天都照顾到这些刁钻的,五花八门的语言,所以最后干脆放弃了挣扎,让语言的圈子渐渐的将开发人员隔离开来。
前言作为一名Java程序员,我们需要知道Java代码是怎么运行的。最近复习了深入理解Java虚拟机,做了一下总结,希望对大家有帮助,如果有不正确的地方,欢迎提出,感激不尽。java代码运行主要流程 本文主要讲解流程如下:java源文件编译为class字节码类加载器把字节码加载到
1月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看上榜详情:1.Javahttps://github.com/TheAlgorithms/JavaStar14277该项目用Java实现的所有算法。2.CS-Noteshttps://github.com/CyC2018/CS-No
微服务是什么?微服务是一种细粒度(Fine-Grain)的SOA或许在座的高朋了解过其概念。个人认为,与其说微服务是一种技术,不如将其定义为一种架构,而架构则是"技"的实现与"术"的策略相辅相成。"术"的策略需要分析使用场景,进行合理地划分业务边界,实现"业以类聚",然而"技"的实现则通
1995年,Java之父JamesGosling和Sun公司科学办公室主任JohnGage一起前往蒙特利,去参加一个TED会议,两人要在那里展示一个划时代的技术,号称向能把枯燥的静态网页变得栩栩如生,美轮美奂。不知道JamesGosling当时的心情如何,是忐忑不安?还是满怀信心?在C++统治的年代
引言D语言是一门语法相当优雅的编译型语言,自1999年发布至今已发展了20年,它既拥有Java那样强大的表现力,又具有C++相当的性能,本来是一门未来相当明朗的语言,但是当年因为2.x版本破坏性升级导致社区大量核心开发者将其放弃。2010年,伴随着AndreiAlexandrescu新书
1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到节约资源的目的;控制数据共享,在不建立直接关联的条件下,让多
之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是C++程序员,吃完直接就走的,是Java程序员。图片来自Pexels确实,在Java的世界里,似乎我们不用对垃圾回收那么的专注,很多初学者不懂GC,也依然能写出一个能用甚至还不错的程序或系统。但其实这并不代表Java的GC就不重要。
区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的。这篇文章就是帮助你使用Java语言来实现一个简单的区块链,用不到120行代码来揭示区块链的原理!“用不到120行Java代码就能实现一个自己的区块链!”听起来不可思议吧?有什么能比开发一个自己
在Java中,常量池的概念想必很多人都听说过。这也是面试中比较常考的题目之一。在Java有关的面试题中,一般习惯通过String的有关问题来考察面试者对于常量池的知识的理解,几道简单的String面试题难倒了无数的开发者。所以说,常量池是Java体系中一个非常重要的概念。谈到常量池,在J
老A“每个人的宿命都是从文本走向二进制,你也不例外!”年长的Account.java教训我这个刚刚诞生的Employee.java。Account.java,我称呼它为老A,他的源码经过程序员的多次修改,多次编译,历经沧桑。“走向二进制?难道我们存储在硬盘上,内存中不是以二进制的形式吗?