相较于最初的 Bourne shell,现代 bash 版本的最大改进之一体现在算术方面。早期的 shell 版本没有内建的算术功能,哪怕是给变量加1,也得调用单独的程序来完成。
1、算术方法一: $(( ))
只要都是整数运算,就可以在 $(( )) 的算术表达式内使用所有的标准运算符。还有一个额外的运算符:可以用** 进行幂运算,如下:
COUNT=$((COUNT + 5 + MAX * 2
Read More
moregeek program
一次jvm gc长暂停的排查过程-多极客编程
作者:京东科技 徐传乐背景在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。事情最初是线上某应用垃圾收集出现Full GC异常的现象,应用中个别实例Full GC时间特别长,持续时间约为15~30秒,平均每2周左右触发一次;JVM
Read More
Read More
spring boot 3.0横空出世,快来看看是不是该升级了-多极客编程
简介
Spring boot 3.0于2022年11月正式发布了,这次的发布对于我们普通程序员的影响有多少呢?我们是不是需要考虑立马升级到Spring Boot3.0呢?
别急,看完这篇文章再来做决定也不迟。
对JAVA17和JAVA19的支持
相信很多小伙伴到现在还是使用得是JDK8,但是JDK8已经发布很多年了,随着oracle加速JDK版本的发布,现在每半年发布一次,目前最新的JDK版本已经
Read More
Read More
nifi-1.16.0版本集群搭建过程记录-多极客编程
一、环境准备1、服务器资源分配IP服务192.168.0.11Zookeeper、NiFi、Kerberos192.168.0.12Zookeeper、NiFi192.168.0.13Zookeeper、NiFi文件下载链接:nifi-1.16.0-bin.tar.gz:下载nifi-toolkit-1.16.0-bin.tar.gz:下载相关参考文档:NIFI文档2、禁用
Read More
Read More
应用性能监控系统skywalking-多极客编程
1. 概念与架构SkyWalking是一个开源监控平台,用于从服务和云原生基础设施收集、分析、聚合和可视化数据。SkyWalking提供了一种简单的方法来维护分布式系统的清晰视图,甚至可以跨云查看。它是一种现代APM,专门为云原生、基于容器的分布式系统设计。SkyWalking从三个维度对应用进行监视:service(服务), service instance(实例), endpoint(端点)
Read More
Read More
不懂任务调度系统,快来看这篇-多极客编程
摘要:本文讲解如何实现一个任务调度系统的核心逻辑。本文分享自华为云社区《实现一个任务调度系统,看这篇文章就够了》,作者:勇哥java实战分享 。1 QuartzQuartz是一款Java开源任务调度框架,也是很多Java工程师接触任务调度的起点。下图显示了任务调度的整体流程:Quartz的核心是三个组件。任务:Job 用于表示被调度的任务;触发器:Trigger 定义调度时间的元素,即按照
Read More
Read More
jdk7 和jdk8的arraylist的区别对比-多极客编程
示例
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Object> jdk = new ArrayList<>();
jdk.add(123);
}
}
初始化操作
①调用无参构造器
jdk7从无参调用有参构造器
Read More
Read More
透过现象看本质,我找到了netty粘包与半包的这几种解决方案。-多极客编程
1、粘包与半包
啥也不说了,直接上代码是不是有点不太友好,我所谓了,都快过年了,还要啥自行车
我上来就是一段代码猛如虎
1.1 服务器代码
public class StudyServer {
static final Logger log = LoggerFactory.getLogger(StudyServer.class);
void start() {
Ni
Read More
Read More
如何通过java代码在pdf中插入、替换或删除图像?-多极客编程
图文并茂的内容往往让人看起来更加舒服,如果只是文字内容的累加,往往会使读者产生视觉疲劳。搭配精美的文章配图则会使文章内容更加丰富,增加文章可读性的同时,也能提升用户体验。但由于PDF文档安全性较高,不易对其进行修改编辑,那我们要如何在PDF中插入、替换或删除图像呢?别担心,今天为大家介绍一种高效便捷的方法。我们可以通过编程的方式来实现此操作。将图像插入PDF文档替换PDF文档中的图像删除PDF文档
Read More
Read More
第二十五章《图书管理系统》第1节:图书管理系统简介-多极客编程
图书管理系统具有图书信息管理、读者信息管理和借阅信息管理三大功能模块,本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。25.1.1系统功能简介图书管理系统第一大功能模块是图书信息管理,这个模块的软件界面如图25-1所示。图25-1图书信息管理界面从图25-1可以看出:图书信息管理模块能够完成图书的新增、修改、删除、借阅登记等常规的信息管理工作,并且还能以多种方式对图
Read More
Read More
一文教会你mock(mockito和powermock双剑合璧)-多极客编程
作者:京东物流 杨建民1.什么是MockMock有模仿、伪造的含义。Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。mock工具使用范畴:真实对象具有不确定的行为,产生不可预测的效果。真实对象很难被创建。真实对象的某些行为很难被触发。真实对象实际上还不存在。MockIto和PowerMock是众多Mock框架中的两种,类似的还有:JM
Read More
Read More
第二十二章《记事本》第2节:记事本功能实现-多极客编程
记事本有很多功能,本小节将讲解其中较为重要的功能的实现过程。22.2.1初始化菜单记事本界面上最多的就是菜单和菜单项。如果在窗体上添加菜单,先要添加一个菜单栏。在Swing体系中,用JMenuBar类表示菜单栏,创建菜单栏的语句如下:JMenuBar mainMenuBar=new JMenuBar();创建菜单栏、给菜单栏添加菜单、给菜单添加菜单项以及给菜单项添加监听器的操作全部集中在cr
Read More
Read More
es client性能测试初探-多极客编程
最近在工作中协助研发进行了ES优化,效果还是非常明显的,几乎翻倍。除了通过各种业务接口测试ES性能以外,还可以直接请求ES接口,绕过服务,这样应该数据回更加准确。所以,ES Client学起来。
准备工作
首先,先准备了一个ES服务,这里就不多赘述了,大家自己在尝试的时候一定主意好ES Server和ES Client的版本要一致。
其次,新建项目,添加依赖。
学习资料
搜一下,能搜到很多的ES学
Read More
Read More
io、nio、bio傻傻分不清吗,让我对象告诉你~~-多极客编程
1、Stream 与 Channel
stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层)
stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用
二者均为全双工,即读写可以同时进行
虽然 Stream 是单向流动的,但是它也是全双工的
2、IO 模型
同步:线
Read More
Read More
实时订阅推送设计与实现-多极客编程
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构等核心知识点,欢迎star~Github地址:https://github.com/Tyson0314/Java-learning什么是领劵的订阅推送?就是用户订阅了该劵的推送,在可领取
Read More
Read More
第二十章《java swing》第4节:事件处理与监听器-多极客编程
当程序员向窗体上添加了按钮等组件之后就能够操作这些组件,但在20.3小节的各个案例中,虽然在窗体上添加了一些按钮,但点击这些按钮并没有任何反应,因此这些按钮也就成了毫无意义的“摆设”。如果希望按钮等组件能够在被操作时执行一段代码并产生一个动作,就必须为组件添加一个监听器并由监听器负责处理组件所产生的事件,本小节将详细讲解事件处理的相关原理。20.4.1事件处理基本原理组件被操作时会产生事件,在事
Read More
Read More
第二十章《java swing》第5节:常用组件-多极客编程
窗体上的按钮、标签、文本框等都被称为“窗体组件”,简称“组件”。大部分组件都是Jcomponent类的子类,而Jcomponent又是Container的子类、Container又是Component的子类。这3个类中所定义的方法都会都会被组件各种组件继承下来,因此大部分组件都有相同的方法,这些方法如表20-5所示。表20-5 Jcomponent常用方法方法功能void setSize(
Read More
Read More
第二十章《java swing》第6节:中间容器-多极客编程
所有可以添加组件的组件都可以被称为“容器”,在Swing体系中,窗体可以被称为顶级容器,在顶级容器中还可以创建中间容器并用它们来存放其他组件,程序员也可以对中间容器单独设置布局管理器。Swing体系中,中间容器包括JPanel、JScollPane、JtabbedPane、JToolBar等,本小节将详细讲解中间容器的使用。20.6.1面板JPanel在Swing体系中用JPanel类来表示面板
Read More
Read More
第二十章《java swing》第7节:对话框-多极客编程
对话框是桌面应用程序中一种很重要的组件,例如在删除一个文件的时候,系统就会用对话框的形式提醒用户是否确定要删除这个文件。Swing体系中有两类对话框:第一类是系统对话框,第二类是自定义对话框。系统对话框就是Swing体系已经定义好的对话框,它们的基本界面是Java基础类库已经设计好的,程序员只需要调用一个方法就能把这个对话框显示出来。而自定义对话框是指由程序员自己设计的对话框,这种对话框的界面完全
Read More
Read More
jvm面试大总结-多极客编程
一、汇总
JVM是运行在操作系统之上的,它与硬件没有直接的交互。先说一下JVM的内存区域,当函数开始运行时,JVM拿到自己的内存将自己的内存区域进行了分割,分为五块区域:线程共享的有堆、方法区,线程私有的有java栈、本地方法栈、程序计数器。
方法区是用来加载class文件的区域,静态变量、常量、类元信息、运行时的常量池存放在在方法区中, 方法区在jdk1.7之前它又叫做永久代,但是jdk1.8之
Read More
Read More