最新文章

Java日志框架:log4j vs logback vs log4j2

Java日志框架:log4j vs logback vs log4j2

Java系列 3个月前 (02-25) 浏览: 73 评论: 0

如果你曾经不得不分析生产中的问题,我相信你知道良好的日志记录是多么重要。良好的日志记录需要三件事: 日志消息需要提供所需的信息,以了解应用程序在内部执行的操作。 编写日志消息必须尽可能高效,这样才不会影响应用程序的性能。 您需要能够根据不同的部署环境和情况调整日志详细信息。 虽然您仍然需要自己决定应该为每个用例编写哪些日志消息,但您不需要担心需求2和需求3。各种日志框架已经解决了这些技术要求。您只

Spring Security:自定义访问策略

Spring Security:自定义访问策略

相关技术 3个月前 (02-23) 浏览: 43 评论: 0

当根据谁访问哪个域对象做出安全决策时,您可能需要一个自定义的访问决策投票者。幸运的是,Spring Security有很多这样的选项来实现访问控制列表(ACL)约束。 代码可以在GitHub上找到:https://github.com/timtebeek/spring-security-samples/ 实现 我们将探索一个用户共享电子表格的系统,每个电子表格的访问权限单独存储。我们已经尽可能简单

JVM内置函数intrinsics简介

JVM内置函数intrinsics简介

Java系列 3个月前 (02-21) 浏览: 96 评论: 0

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

Java中的逃逸分析

Java中的逃逸分析

Java系列 4个月前 (02-11) 浏览: 65 评论: 0

底层的CPU优化对我们的应用有影响。此外,它们证明了大多数程序员的错觉是错误的。是的,你使用的是高级语言。但这并不意味着所有这些抽象层都能完全屏蔽CPU。我在一个Java程序上演示了CPU缓存的效果。 CPU的发展速度比主存快得多。如今,CPU大部分时间都在等待。现代CPU可以在每个CPU周期执行多条指令。但如果它必须访问主内存,绕过三个缓存中的每一个,它必须等待大约100个周期。 Java中的逃

Java演示CPU级的缓存效果

Java演示CPU级的缓存效果

Java系列 4个月前 (02-09) 浏览: 75 评论: 0

Joshua Bloch 在推特上发了一个链接(http://igoro.com/archive/gallery-of-processor-cache-effects/),使用高级编程语言(如C#)演示了CPU缓存的效果。强烈推荐! 那我们能否在Java中演示同样的效果呢?乍一看,这种可能性对我们不利:Java不是编译成本机代码,而是编译成中间字节码,而中间字节码可能会编译成本机代码,也可能不会编

JVM Code Cache代码缓存简介

JVM Code Cache代码缓存简介

Java系列 4个月前 (02-07) 浏览: 92 评论: 0

在本文中,我们将了解JVM的Code Cache 代码缓存。 什么是Code Cache? 简而言之,JVM Code Cache (代码缓存)是JVM存储编译成本机代码的字节码的区域。我们将可执行本机代码的每个块称为nmethod。nmethod可能是一个完整的或内联的Java方法。 即时(JIT)编译器是代码缓存区的最大消费者。这就是为什么一些开发人员将此内存称为JIT代码缓存。 Code C

Java 8–使用Lambda表达式进行比较

Java 8–使用Lambda表达式进行比较

Java系列 4个月前 (01-26) 浏览: 234 评论: 0

在Java 8之前,对集合进行排序需要为排序中使用的比较器Comparator创建一个匿名内部类: new Comparator<Human>() { @Override public int compare(Human h1, Human h2) { return h1.getName().compareTo(h2.getName()); } } 这仅用于对Human实体列表进行排序

Java Dumps

Java Dumps

Java系列 4个月前 (01-24) 浏览: 64 评论: 0

  Java Dumps是在虚拟机由于网络问题、内存错误或用户启动任何类型的按键组合而意外停止时错误创建的一些Java内核。通过调用合并到应用程序源代码中的Java转储API或通过命令行直接提供-Xdump:Java选项,可以轻松创建Java Dumps。Java Dumps通过提供一些有用的信息来帮助最终用户排除故障,并诊断当应用程序意外停止运行时发生的停止的根本原因。 语法 Java

在gRPC中如何正确处理错误

在gRPC中如何正确处理错误

相关技术 4个月前 (01-19) 浏览: 442 评论: 0

正确处理错误可能很棘手,而且在gRPC中可能更棘手。当前版本的gRPC仅具有基于简单状态代码和元数据的有限内置错误处理。在本文中,我们将看到gRPC错误处理的局限性,以及如何克服和构建健壮的错误处理框架。 代码示例 本文的工作代码示例列在GitHub上。要运行该示例,请克隆存储库:https://github.com/techdozo/grpc/tree/master/grpc-spring-bo

Java中的循环链表

Java中的循环链表

Java系列 4个月前 (01-17) 浏览: 72 评论: 0

与链表相比,循环链表略有不同。在循环链表中,最后一个节点指向第一个节点,从而完成一整圈节点。换句话说,我们也可以说在这个链表中,最后一个元素不是空的。在这种类型的链表中,任何节点都可以作为起点。这意味着可以遍历整个列表,即使我们从任何节点开始。当最后一个节点指向第一个节点时,在循环链表中执行排队和出列操作非常容易。在本文中,我们将通过示例了解循环链表。 Java中循环链表的语法: 以下是语法: 节

Java日志框架:log4j VS logback VS log4j2

Java日志框架:log4j VS logback VS log4j2

相关技术 4个月前 (01-14) 浏览: 82 评论: 0

如果您曾经不得不分析生产中的问题,我相信您知道良好的日志记录是多么重要。良好的日志记录需要三件事: 日志消息需要提供所需的信息,以了解应用程序在内部执行的操作。 编写日志消息必须尽可能高效,这样才能不影响应用程序的性能。 您需要能够根据不同的部署环境和情况调整日志详细信息。 虽然您仍然需要自己决定应该为每个用例编写哪些日志消息,但您不需要担心需求2和需求3。各种日志框架已经解决了这些技术需求。您只

基于Spring Boot的GraphQL项目

基于Spring Boot的GraphQL项目

相关技术 4个月前 (01-13) 浏览: 135 评论: 0

这是一篇面向那些想用Java创建GraphQL服务的人。它需要一些Spring Boot和Java知识,虽然我们简要介绍了GraphQL,但本教程的重点是用Java开发GraphQL服务器。 3分钟内搭建GraphQL GraphQL是一种从服务器检索数据的查询语言。在某种程度上,它是REST、SOAP或gRPC的替代品。 假设我们要从在线商店后端查询特定书籍的详细信息。 使用GraphQL,您向

用lambda表达式进行Java编程

用lambda表达式进行Java编程

Java系列 5个月前 (01-10) 浏览: 128 评论: 0

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

使用Java构建你自己的区块链

使用Java构建你自己的区块链

相关技术 5个月前 (01-06) 浏览: 106 评论: 0

正如我们所知,区块链的设计是不可变的。在这里,我们将设计一个简单的区块链,它将帮助您理解散列如何使区块链不可变,只需几行Java代码。 注:这只是一个演示区块链,真正的区块链涉及很多其他东西,如共识机制、数字签名、Merkle树等。。此代码示例将有助于实现理想的目的。 区块链中的第一个区块是Genesis区块。genesis区块几乎总是硬编码到利用其区块链的应用程序的软件中。 对于随后生成的每个新

Java16和Java17的新特性

Java16和Java17的新特性

Java系列 5个月前 (01-04) 浏览: 251 评论: 0

Java平台的发展比以往任何时候都要快。让我们来探讨一下今年在Java 16和Java 17的Java创新方面为我们准备了什么。 “Java?这不是前一个时代发展缓慢的企业语言吗?” 虽然这是一种可以理解的情绪,但事实却截然不同。从2018年的Java10开始,Java开发工具包(JDK)每年发布两次,Java平台的发展比以往任何时候都要快。让我们来探索一下现在Java创新方面为我们准备了什么!

Kubernetes上的gRPC负载平衡实践

Kubernetes上的gRPC负载平衡实践

相关技术 5个月前 (12-31) 浏览: 60 评论: 0

Kubernetes上的gRPC负载平衡(使用无消息头服务) gRPC是用于进程间通信的最流行的现代RPC框架之一。对于微服务体系结构来说,这是一个很好的选择。毫无疑问,部署微服务应用程序最流行的方法之一是Kubernetes。 Kubernetes部署可以有相同的后端实例来服务许多客户端请求。Kubernetes的ClusterIP服务提供负载平衡的IP地址。但是,这种默认的负载平衡在gRPC中

快速排序算法简介

快速排序算法简介

相关技术 5个月前 (12-29) 浏览: 57 评论: 0

快速排序是一种分而治之的算法。当数据集较小时,该算法提供更好的性能。 此算法通过选择轴来工作。此轴将数组分为两部分。 1. 第1部分在数组之前,数组中的所有元素都必须小于pivot。 2. 第2部分在数组之后,数组中的所有元素都必须大于pivot 如上所述排列数组的过程称为“分区”。此分区算法是快速排序的核心。 分区是如何工作的? 在任何时刻,阵列都将处于如下状态,如下所示。 下面是上面显示的变量

Java中的native关键字讲解

Java中的native关键字讲解

Java系列 5个月前 (12-27) 浏览: 107 评论: 0

native关键字充当JAVA语言与除JAVA之外的其他语言编写的代码块或库之间的链接,这可能取决于您操作的机器。如果将native关键字应用于一个方法,那么这意味着该方法将通过JNI(JAVA native interface)使用其他语言(如C或C++)编写的本机代码来实现。 Java中Native关键字的语法 本机代码的语法与普通函数定义相同,在函数开头添加了“native”关键字。 例如:

Java中的native方法讲解

Java中的native方法讲解

Java系列 5个月前 (12-22) 浏览: 151 评论: 0

在本文中,我们将看到java中本机native方法的介绍。我们将看到它的基本语法及其工作原理。将有java代码示例展示native本机方法的使用。 以下是java中如何使用native方法的基本语法: [ public / protected / private] native [return-type] methodName (); 上面的语法显示了如何在java中声明本机方法。与普通方法一样,

JNI是什么?

JNI是什么?

Java系列 5个月前 (12-20) 浏览: 86 评论: 0

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

登录

忘记密码 ?

切换登录

注册