Java递归函数与算法讲解系列一

Java递归函数与算法讲解系列一

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

在计算机程序中描述重复的一种方法是使用循环,如Java的while循环和for循环结构。实现重复的完全不同的方法是通过一个称为递归的过程。 递归是一种方法对自身进行一次或多次调用的技术,在执行期间,或数据结构依赖于同一类型的结构。有很多例子艺术与自然中的递归。例如,分形图案是自然递归的。艺术中使用递归的物理例子是俄罗斯的Matryoshka玩偶。每个玩偶要么是实木做的,要么是空心的,里面装着另一个

Java9的9个新特性

Java9的9个新特性

Java系列 3年前 (2021-01-28) 浏览: 354 评论: 0

Java8发布三年多后,下一个版本即将发布,暂定发布日期为2017年9月21日。您可能听说过Java9的模块系统,但这个新版本还有更多的内容。下面是Java9将提供的9个令人兴奋的新特性。 1. Java平台模块系统 Java9的定义特性是一个全新的模块系统。当代码基变得更大时,创建复杂、纠结的“意大利面代码”的几率就会成倍增加。有两个基本问题:很难真正地封装代码,而且系统的不同部分(JAR文件)

使用JCTools实现Java并发程序

使用JCTools实现Java并发程序

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

  概述 在本文中,我们将介绍JCTools(Java并发工具)库。 简单地说,这提供了许多适用于多线程环境的实用数据结构。 非阻塞算法 传统上,在可变共享状态下工作的多线程代码使用锁来确保数据一致性和发布(一个线程所做的更改对另一个线程可见)。 这种方法有许多缺点: 线程在试图获取锁时可能会被阻塞,在另一个线程的操作完成之前不会取得任何进展—这有效地防止了并行性 锁争用越重,JVM处理

JDK最新高速垃圾收集器概览

JDK最新高速垃圾收集器概览

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

ZGC、Shenandoah和对G1的改进使开发人员比以往任何时候都更接近无停顿Java。 在过去的六个月里,JDK的垃圾收集器(GC)出现了一些最令人兴奋的发展。本文介绍了一系列不同的改进,其中许多最早出现在JDK 12中,并在JDK 13中继续介绍。首先,我们将介绍Shenandoah,一种低延迟GC,它主要与应用程序同时运行。我们还将介绍作为JDK 12的一部分发布的ZGC(Java11中引

JNI是什么?

JNI是什么?

Java系列 2年前 (2021-12-20) 浏览: 316 评论: 0

JNI或Java本机接口充当桥梁,允许其他语言编程的支持包,以克服Java平台设置的限制。Java中的这个特性有助于将任何编程语言合并到Java中。JNI以其关键功能而闻名,如JNI有助于提高构建的应用程序的效率、提高应用程序性能、集成其他编程语言的空间、便于将来使用最新编程技术进行升级等。JNI使过于热情的开发人员受益,他们喜欢玩自己的程序,提高自己的编码能力。 理解Java中的JNI 为了理解

Java树遍历简介

Java树遍历简介

Java系列 2年前 (2022-06-29) 浏览: 509 评论: 0

Java树遍历被定义为一种用Java编程语言实现的算法,它将树作为一种数据结构,并结合了通过算法实现访问树的所有节点的基本原理。计算机科学数据结构术语中的遍历表示需要访问数据结构中的所有节点以完成手头的更大任务。树的组件是根节点和子节点,其中一些结束于该特定节点,并命名为叶子,其他组件创建更多子树。在本文中,我们将介绍Java中树遍历的实现,并查看实现相同的树遍历的不同方法。 语法 Java中的类

Java开发规范之性能篇

Java开发规范之性能篇

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

JAVA开发中,大部分的性能问题原因并不在于JAVA语言本身,而是我们用这些语言写的程序,所以养成良好的编码习惯非常重要。 下面给大家分享一些日常开发中比较常见的典型案例: 一. 类中的内部方法声明为private 很多同学觉得这个无所谓,写代码时喜欢一个类里的所有方法都是public的(原因大家都懂),美其名曰:便于后期扩展。。 对于不需要外部访问的方法改为私有的,不仅仅是因为面向对象的思想,符

Java反射API讲解

Java反射API讲解

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

Java反射是在运行时检查或修改类的运行时行为的过程。Java反射API用于在运行时操作类及其成员,包括字段、方法、构造函数等。在本文中,我们将详细了解Java反射API。 本文将重点关注以下几点: Java反射API在哪里使用? java.lang.reflect包下的类 使用的方法java.lang.Class 如何获取类的对象? 使用Java反射API的优缺点 因此,让我们从这篇关于Java

tomcat环境变量配置

tomcat环境变量配置

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

一旦在服务器上启动并运行Tomcat,下一步就是配置它的基本设置。您的初始配置过程将由两个任务组成,本文将详细介绍这两个任务。第一个是编辑Tomcat的XML配置文件,第二个是定义适当的环境变量。 XML配置文件 启动和运行Tomcat的两个最重要的配置文件称为server.xml以及web.xml. 默认情况下,这些文件位于TOMCAT-HOME/conf/server.xml以及TOMCAT-

在Windows中设置JAVA_HOME变量

在Windows中设置JAVA_HOME变量

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

要在Windows上手动安装Confluence,需要设置一个环境变量,将Confluence指向Java安装目录。 在大多数情况下,您应该设置JRE_HOME环境变量,但是如果没有设置,Confluence将使用JAVA_HOME。 设置JAVA_HOME变量 要设置JRE_HOME或JAVA_HOME变量: 1. 找到Java安装目录 如果您在安装过程中没有更改路径,它将类似于C:\Progr

Java8之后新的开发者友好特性

Java8之后新的开发者友好特性

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

在本文中,我将描述自第8版以来Java最重要、最有利于开发人员的特性。为什么会有这样的想法?您可以在Web上找到许多文章,其中列出了每个Java版本的新特性。然而,缺少文章简要概述自第8版以来最重要的变化。好的,但是为什么是第八版呢?令人惊讶的是,它仍然是Java最常用的版本。尽管Java17已发布,但所有这些都是值得一提的。你可以在Twitter上查看我的调查结果。正如您所看到的,46%以上的响

JVM内置函数intrinsics简介

JVM内置函数intrinsics简介

Java系列 2年前 (2022-02-21) 浏览: 355 评论: 0

在本文中,我们将学习什么是intrinsics(内部/内置函数),以及它们如何在Java和其他基于JVM的语言中工作。 什么是内置? 内置函数是由我们的编程语言的编译器或解释器进行特殊处理的函数。更具体地说,这是一种特殊情况,因为各种原因,编译器或解释器可以用替代实现替换函数。 编程语言通常通过理解一个特定的方法调用是特殊的来处理这个问题,无论何时我们调用这个方法,结果都是不同的。这样一来,我们的

Java中的按值调用和按引用调用

Java中的按值调用和按引用调用

Java系列 2年前 (2022-08-24) 浏览: 233 评论: 0

今天,我们将看一看基本但棘手的面试问题,Java中的值调用和引用调用。无论是初学者还是有经验的开发人员都会在面试中遇到这个问题。这是技术面试官最喜欢的问题。这篇文章不只是用一句话来回答你,而是试着解释它。 为什么按值调用和按引用调用??? 方法或函数可以用两种方式调用。一种是按值调用,另一种是根据引用调用,这两种方式通常根据作为输入或参数传递给它们的值的类型来区分。 在开始之前,让我澄清一件事,在

Java递归编程

Java递归编程

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

在Java中,调用自身的方法称为递归方法。这个过程被称为递归。 一个物理世界的例子是将两个平行的镜子相对放置。它们之间的任何对象都将被递归地反射。 递归是如何工作的? 在上面的示例中,我们从main方法内部调用了recurse()方法。(普通方法调用)。在recurse()方法中,我们再次调用相同的recurse方法。这是一个递归调用。 为了停止递归调用,我们需要在方法内部提供一些条件。否则,方法

Java反射的性能成本

Java反射的性能成本

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

在Java中,普遍认为java.reflect API的性能代价很高。旧的Java版本有巨大的性能开销,而新版本似乎使其处于可接受的范围内。但“可接受”到底是什么意思呢? 这是我在评论一个建议用标准代码替换基于反射的代码的性能评估时提出的问题。由于我们的许多决策不是基于事实而是基于信念,所以我决定执行一些测试来获得Java8中的指标。 测试协议 为了通过一个不受挑战的协议获得实际的度量,我使用了优

如何在macOS上配置jdk环境变量

如何在macOS上配置jdk环境变量

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

本文展示了如何在较旧的Mac OS X和最新的macOS11上设置$JAVA_HOME环境变量。 解决方案 在macOS上设置$JAVA_HOME环境变量的步骤。 1. 找出你的macOS版本。 2. 找出你用的是哪个shell,bash还是zsh? 3. 对于zsh shell,在~/.zshenv或~/.zshrc导出$JAVA_HOME。 4. 对于bashshell,将$JAVA_HOME

如何在MAC或Linux上设置JDK环境变量?

如何在MAC或Linux上设置JDK环境变量?

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

Mac OS 设置环境变量 正在Mac上运行Java应用程序,需要将JAVA_HOME设置为主页?请按照以下说明进行操作: 1. 打开终端 2. 通过键入“which java”确认您拥有JDK。它应该显示类似于/usr/bin/java的内容。 3. 通过键入“java-version”,检查您是否拥有所需的Java版本。 JAVA_HOME本质上是目录的完整路径,其中包含名为bin的子目录,而

Java17新功能概述

Java17新功能概述

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

当我们想到新Java时™, 我们喜欢想象它像一辆来自受人尊敬的系列的时尚现代汽车——忠实于其根源,但速度快、舒适,并配备了驾驶所需的所有小发明。当然,更新的车型不断推出,但当你需要可靠和实用的时候,你就不会错了。 因此,请与我们一起探索使用Java17打开的所有新道路,我们将看到这条道路的走向。 Java意味着商业 当您不想在稳定性、安全性和支持之间做出选择时,Java工作得最好。世界各地的开发人

JDK 19:针对Java 19的功能

JDK 19:针对Java 19的功能

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

虚拟线程、switch表达式的模式匹配、vector API和Linux/RISC-V端口将用于Java 19,这是标准Java的非LTS版本,将于9月发布。 定于今年9月发布的Java Development Kit 19现在正式提出了五项功能。最近新增的三个功能,一个外部函数和内存API、虚拟线程和模式匹配(所有预览),将之前提到的两个功能、一个vector API(第四个孵化器中)和一个JD

JUnit 5的格式驱动参数化测试介绍

JUnit 5的格式驱动参数化测试介绍

Java系列 6个月前 (10-30) 浏览: 69 评论: 0

JUnit 5 FormattedSource源码(https://github.com/mikemybytes/junit5-formatted-source)允许按照用户定义的格式,以可读的方式定义测试用例参数。因此,它可以用来提高测试的可读性。让我们看一个例子: class CalculatorTest { private final Calculator calculator = new

登录

忘记密码 ?

切换登录

注册