Java踩坑记系列之BigDecimal

Java系列 4年前 (2020-02-09) 浏览: 1511 评论: 0

在java.math包中提供了对大数字的操作类,用于进行高精确计算,如BigInteger,BigDecimal类。而平常我们开发中使用最多的float和double只能适用于一般的科学和工程计算,如果要在比较精确的计算方面如货币,那么使用float和double会相应的丢失精度,因此用于精密计算大数字的类BigDecimal就必不可少了。所以BigDecimal适合商业计算场景,用来对超过16位

Java递归函数Recursive算法讲解系列五

Java系列 4年前 (2020-10-18) 浏览: 524 评论: 0

递归的缺点和问题 虽然递归是一种非常强大的工具,但它很容易被以各种方式滥用。在本节中,我们将研究几个实施不当的重新诅咒会导致严重的效率低下的情况,并讨论一些识别和避免此类陷阱的策略。 我们首先回顾上一章文章中定义的元素唯一性问题。我们可以使用下面的递归公式来确定序列的n个元素是否都是唯一的。作为基本情况,当n=1时,元素通常是唯一的。对于n≥2,当且仅当前n−1个元素是唯一的,最后n−1个元素是唯

Windows,macOS,Linux中的jdk环境变量配置

Java系列 3年前 (2021-02-02) 浏览: 545 评论: 0

1. 什么是环境变量? 环境变量是在操作系统(如Windows、macOS和Linux)下运行的所有进程/用户都可以访问的全局系统变量。环境变量对于存储系统范围的值很有用,例如: PATH:最常用的环境变量,它存储一个目录列表,用于搜索可执行程序。 操作系统:操作系统。 COMPUTENAME,USERNAME:存储计算机和当前用户名。 SystemRoot:系统根目录。 (Windows)HOM

Java中System.getProperty和System.getenv的区别

Java系列 3年前 (2021-03-29) 浏览: 1003 评论: 0

java.lang包在Java应用程序中自动导入。这个包包含许多常用的类,从NullPointerException到Object、Math和String。 这个java.lang.System系统类是最后一个类,这意味着我们不能将其子类化,因此所有方法都是静态的。 我们将研究两种读取系统属性和环境变量的系统方法之间的差异。 这些方法是getProperty和getenv。 使用System.ge

Java8 Lambda和invokedynamic

Java系列 3年前 (2021-09-14) 浏览: 540 评论: 0

Java8于2014年3月发布,并引入了lambda表达式作为其旗舰功能。您可能已经在代码库中使用它们来编写更简洁、更灵活的代码。例如,您可以将lambda表达式与新的Streams API结合起来,以表达丰富的数据处理查询: int total = invoices.stream() .filter(inv -> inv.getMonth() == Month.JULY) .mapToIn

用lambda表达式进行Java编程

Java系列 2年前 (2022-01-10) 浏览: 384 评论: 0

在JavaOne 2013的技术主题演讲中,Oracle Java平台组首席架构师Mark Reinhold将lambda表达式描述为Java编程模型有史以来最大的一次升级。虽然lambda表达式有很多应用程序,但本文主要关注数学应用程序中经常出现的一个特定示例;也就是说,需要将函数传递给算法。 数学中的许多应用要求函数作为参数传递给算法。大学代数和基础微积分的例子包括解方程或计算函数的积分。15

Java中的StackOverflowError错误

Java系列 2年前 (2022-07-11) 浏览: 351 评论: 0

StackOverflowError可能会让Java开发人员感到恼火,因为它是我们可能遇到的最常见的运行时错误之一。 在本文中,我们将通过查看各种代码示例以及如何处理它来了解此错误是如何发生的。 Stack Frames和StackOverflowerError的发生方式 让我们从基础开始。调用方法时,将在调用堆栈上创建新的堆栈帧(stack frame)。该堆栈框架包含被调用方法的参数、其局部变

Java异步编程指南

Java系列 4年前 (2020-03-01) 浏览: 3378 评论: 0

在我们平时开发中或多或少都会遇到需要调用接口来完成一个功能的需求,这个接口可以是内部系统也可以是外部的,然后等到接口返回数据了才能继续其他的业务流程,这就是传统的同步模式。 同步模式虽然简单但缺点也很明显,如果对方服务处理缓慢迟迟未能返回数据,或网络问题导致响应变长,就会阻塞我们调用方的线程,导致我们主流程的耗时latency延长,传统的解决方式是增加接口的超时timeout设置,防止无限期等待。

Java反射的利弊

Java系列 4年前 (2020-10-29) 浏览: 833 评论: 0

这篇文章将介绍如何使用java reflection api在运行时访问和使用一些相同的信息。为了帮助那些已经了解反射基础知识的开发人员保持有趣,我将介绍反射性能与直接访问的比较。 使用反射不同于普通的Java编程,因为它处理元数据——描述其他数据的数据。Java语言反射访问的特定类型的元数据是JVM中类和对象的描述。反射使您能够在运行时访问各种类信息。它甚至允许您读写字段和调用在运行时选择的类的

找不到或无法加载主类什么意思?

Java系列 3年前 (2021-02-13) 浏览: 6294 评论: 0

今天我们将探讨java的一个常见问题,即如何修复java中的“error:couldnotfind or load main class”错误。顾名思义,当java找不到您要执行的类时,就会发生这个错误。为了更好地理解错误,您应该熟悉类路径CLASSPATH。如果你不熟悉类路径,那么请检查一下什么是类路径以及它与路径的区别。 另请阅读:PATH和CLASSPATH之间的区别 如果java查找所有类

在Windows、Mac OS X和Linux上设置JAVA_HOME环境变量

Java系列 3年前 (2021-06-05) 浏览: 444 评论: 0

在本文中,我们将了解如何在Windows、Mac OS X和Linux上设置JAVA_HOME变量。 Windows Windows 10 和 8 1. 打开搜索并键入高级系统设置 2. 在显示的选项中,选择查看高级系统设置链接 3. 在“高级”选项卡下,单击“环境变量” 4. 在“系统变量”区域中,单击“新建”(或“用户变量”用于单用户设置) 5. 将JAVA_HOME设置为变量名,将JDK安装

Java中使用lambda表达式和函数编程示例

Java系列 3年前 (2021-10-07) 浏览: 234 评论: 0

第一个示例演示变量声明上下文中的lambda。它将lambda()->{System.out.println(“running”);}分配给可运行接口类型的变量r。第二个示例类似,但演示了赋值上下文中的lambda(到先前声明的变量r)。 第三个示例演示了return语句上下文中的lambda。它使用指定的文件扩展名参数调用getFilter()方法以返回java.io.FileFilter

Java 8中的Collectors API详解

Java系列 2年前 (2022-03-14) 浏览: 787 评论: 0

在本文中,我们将介绍Java8的收集器Collectors,它们用于处理流的最后一步。 如果我们想了解如何利用收集器Collectors的能力进行并行处理,我们可以看看这个项目:https://github.com/pivovarit/parallel-collectors Stream.collect() 方法 Stream.collect()是Java 8的流API的终端方法之一。它允许我们对

Chronicle Map:一款基于堆外内存的键值存储

Java系列 1年前 (2023-03-06) 浏览: 533 评论: 0

Chronicle Map 是一种超快、内存中、非阻塞、键值存储,专为低延迟和多进程应用程序而设计。 简而言之,它是一个堆外键值存储。该map不需要大量 RAM 即可正常运行。它可以根据可用磁盘容量增长。此外,它还支持在多主服务器设置中复制数据。 使用场景 实时交易系统:Chronicle Map 提供内存中访问速度,并支持超低垃圾收集。Chronicle Map 可以支持最苛刻的应用程序。 高并

递归算法科普一

Java系列 4年前 (2020-10-06) 浏览: 523 评论: 0

在计算机科学中,递归是一种解决问题的方法,其中解决方案依赖于同一问题的较小实例的解决方案。这类问题通常可以通过迭代来解决,但这需要在编程时识别和索引较小的实例。递归通过使用在自己的代码中调用自己的函数来解决这种递归问题。 这种方法可以应用于许多类型的问题,递归是计算机科学的核心思想之一 递归的力量显然在于可以用一个有限语句定义一个无限的对象集。同样地,一个有限的递归程序可以描述无限多的计算,即使这

为什么反射慢?

Java系列 4年前 (2020-11-09) 浏览: 965 评论: 0

现在您仍然从其他开发人员那里听到的一句话是,Java不仅速度慢,而且反射是JDK中异常缓慢的一部分。这篇文章是为那些相信或希望与信徒进行建设性对话的人准备的。 这篇文章中介绍的技术主题已经有很多年了,但是当你发现它们的时候,有些东西会让你大吃一惊。因此,即使您是一个经验丰富的Java开发人员,您也可以在这里找到一些有趣的地方。 有人怎么能测量出反射是慢的呢?第一个想法是运行一个基准应用程序。这可以

java找不到或无法加载主类

Java系列 3年前 (2021-02-24) 浏览: 2306 评论: 0

刚开始做Java开发的人遇到的一个常见问题是,他们的程序无法运行并显示错误消息:找不到或加载主类 Could not find or load main class。。。 这意味着什么,是什么原因造成的,我们应该如何修复它呢? java <class name>命令语法 首先,您需要了解使用java(或javaw)命令启动程序的正确方法。 正常的语法是这样的: java [ <o

JAR和WAR文件之间有什么区别?

Java系列 3年前 (2021-08-14) 浏览: 741 评论: 0

JAR和WAR文件之间的主要区别在于,JAR文件是包含Java类文件、相关元数据和资源的文件,这些文件聚合到一个文件中以执行Java应用程序,而WAR文件是包含Servlet、JSP、HTML、JavaScript和开发web应用程序所需的其他文件的文件。 Java是一种高级通用编程语言,用于开发各种领域的应用程序。Java之所以流行是因为多种原因。Java源代码编译成称为字节码的中间代码。任何具

JUC并发包概述

Java系列 3年前 (2021-10-30) 浏览: 397 评论: 0

java.util.concurrent包提供了创建并发应用程序的工具。 在本文中,我们将对整个包进行概述。 主要组件 java.util.concurrent包含的特性太多,无法在一次编写中讨论。在本文中,我们将主要关注此软件包中一些最有用的实用程序,如: Executor ExecutorService ScheduledExecutorService Future CountDownLatc

你真的了解java.util.Date吗?

Java系列 2年前 (2022-05-30) 浏览: 342 评论: 0

很少有类能像java.util.Date那样在堆栈溢出方面引起如此多的类似问题,有四个原因: 日期和时间工作基本上相当复杂,而且充满了拐弯抹角的情况。这是可以管理的,但你确实需要花一些时间来理解它。 java.util.Date类在很多方面都很糟糕(详情如下)。 一般来说,开发人员对它的理解很差。 它被库作者严重滥用,进一步加剧了混乱。 了解java.util.Date最重要的事情为: 如果可能的

登录

忘记密码 ?

切换登录

注册