Java中BigDecimal类型的加减乘除运算 add():加法, subtract():减法:, multiply():乘法; divide():除法, 1.简单的加减乘除运算 public class test { public static void main(String[] args) { &n...
Java是当今最流行的编程语言之一,常年位居最受欢迎编程语言排行榜前三。 一个优秀的Java程序员,在研发时离不开对测试框架的了解,从而开发出更安全和更高效的代码。使用这些测试框架的其中一个最重要的原因是减少出错的可能性,提高开发效率,并降...
1. 简介 1.1 什么是Redis事务 Redis事务(Transaction)通过将多个Redis操作封装为一个原子性的操作序列,确保在事务执行过程中,不会受到其他客户端的干扰。从而在保证数据一致性的同时,协调并发,提高数据操作的效率和性能。 1.2 Redis事务...
大家经常听到内存泄漏, 那么线程泄漏是指什么呢? 线程泄漏是指 JVM 里面的线程越来越多, 而这些新创建的线程在初期被使用之后, 再也不被使用了, 然而也没有被销毁. 通常是由于错误的代码导致的这类问题。 一般通过监控 Java 应用的线程数量的相关...
Ant介绍 Ant是Java的生成工具,是Apache的核心项目; Ant类似于Unix中的Make工具,都是用来编译、生成; Ant是跨平台的,而Make不能。 Ant的主要目的就是把你想做的事情自动化,不用你手动一步一步做,因为里面内置了javac、java、创建目录...
一、CopyOnWriteArrayList简介 1.1 什么是CopyOnWriteArrayList CopyOnWriteArrayList是Java并发包(java.util.concurrent)中的一个线程安全的ArrayList实现。它采用“写时复制”(Copy-On-Write,简称COW)策略来实现对列表的高性能读取和写操...
首先,思考这么一种场景,假如现在A类继承了B类和C类,并且B类和C类中,都存在test()方法,那么当A类对象调用test()方法时,该调用B类的test()呢?还是C类的test()呢?是没有答案的,所以Java中不允许多继承。 但是,Java中接口是可以多继承的,比如...
Stream是Java 8添加的一个API,结合Lambda表达式,可以提高我们对对集合处理的编码效率。在日常工作中,我们经常会遇到List转Map的情况,在Stream出来之前,我们一般都是遍历放进map中。 这里,我们假设有个User对象。 @Getter @Setter pub...
1、前言 Java 中的 I/O 流是实现输入和输出的一种机制,可以用来读写文件、网络、内存等各种资源。Java 提供了各种类型的流,包括字节流和字符流,以及面向文本和二进制数据的流。在本文中,我们将深入探讨 Java I/O 流的各个方面,从流的类型和分类...
背景 今天收到业务团队反馈线上有个应用往 Pulsar 中发送消息失败了,经过日志查看得知是发送消息时候抛出了 java.lang.InterruptedException 异常。 和业务沟通后得知是在一个 gRPC 接口中触发的消息发送,大约持续了半个小时的异常后便恢复正常...
永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。 但从《Java 虚拟机规范》的层面来说,并没有所谓...
文件操作是每个项目中必备的一个模块,Hutool中的FileUtil类库封装了大多数文件操作,非常方便,今天给大家分享一下具体的使用示例。 1、pom.xml 导入依赖包 <dependency> <groupId>c...
线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。 在程序执行的时候,难免会遇到死锁的情况。 下面介绍一下如何排查Java中的死锁线程。 先来个死锁的例子: import java.util.concurrent.T...
一、问题 最近在写代码,有两个属性很相近的类,其中80%的属性(字段)都是一样的,剩下的才是各自不一样的,在设计的时候,采用了继承的方式,抽象除了一个父类,大概如下, 有FirstChild和SecondChild两个类,因为其中的属性name、code等是相同的...
其实异步的I/O的难点与不适,在NodeJs、甚至JavaScript中有着很具体的体现。 异常处理难 在处理异常时,我们经常使用try/catch/final的语句块进行异常捕获,但这对于异步编程不太实用。我们来看书中的一个经典示例。var async = function(callba...
什么是零拷贝 零拷贝是指计算机在执行IO操作的时候, CPU不需要将数据从一个存储区复制到另一个存储区, 进而减少上下文切换以及 CPU 拷贝的时间, 这是一种IO操作优化技术 零拷贝不是没有拷贝数据, 而是减少用户态, 内核态的切换次数 和 CPU拷贝次...
一、对象头、Mark Word、monitor、synchronized怎么关联起来 (1)首先java里面每个对象JVM底层都会为它创建一个监视器monitor,这个是JVM层次为我们保证的。这个监视器就类似一个锁,哪个线程持有这个monitor的操作权,就相当于获取到了锁 (2)...
前言 大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他们二者之间的性能是怎么样的呢? Random的使用 Random类是J...
有些时候我们需要把网站页面变成黑白色或灰色,特别是对于一些需要悼念的日子,以及一些影响力很大的伟人逝世或纪念日的时候,都会让网站的全部网页变成灰色(黑白色),以表示我们对逝者或者英雄的缅怀和悼念。 当大家看到全站的内容都变成了灰色,...
如果问你在日常开发中用到的最多的一个 Java? 类是什么,阿粉敢打赌绝对是 String.class?。说到 String? 大家都知道 String 是一个不可变的类;虽然用的很多,那不知道小伙伴们有没有想过怎么样创建一个自己的不可变的类呢?这篇文章阿粉就带大家来实践...