TIOBE 编程语言排名: 2024 年 7 月
七月头条: Rust 排名或将进入前 10。本月,高性能语言 Rust 在 TIOBE 指数中从第 17 位跃升至第13位。这是 Rust 的历史新高。获得 4 位提升似乎是一个小变化,但 Rust 在过去几年里一直风靡,在 TIOBE 指数方面没有取得太大进展。最近 Rust 终于开始上升了。在美国政府最近宣布出于安全原因建议从 C/C++ 迁移...
Java ExecutorService 指南
ExecutorService 是一个 JDK API,它简化了在异步模式下运行任务。一般来说,ExecutorService 自动提供一个线程池和一个 API,用于向其分配任务。创建 ExecutorService 最简单的方法是使用 Executors 类的工...
Java 并发面试题及答案
Java 中的并发是在技术面试中提出的最复杂和最高级的主题之一。这篇文章提供了你可能遇到的一些面试问题的答案。Q1. 进程和线程的区别进程和线程都是并发单元,但它们有一个根本的区别:进程不共享公共内存,而线程共享。从操作系统的角度来看,进程是在自己的虚拟内存空间中运行的独立软件。任何多任务操作系统(几乎所有现代操作系统)都必须在内存中分离进程,这样...
OpenJDK 的 Loom 项目
本文中,我们将快速了解 Loom 项目。从本质上讲,Loom 项目的主要目标是支持 Java 中的高吞吐量、轻量级并发模型。Loom 项目是 OpenJDK 社区为 Java 引入轻量级并发结构的一次尝试。到目前为止,Loom 的原型已经在 JVM 和 Java 库中引入了一次更改。虽然 Loom 还没有计划发布,但我们可以在 ...
推荐的 Spring Boot 项目的包结构
在构建一个新的 Spring Boot 项目时,我们可以高度灵活地组织我们的类。不过,还是有一些建议需要我们牢记。鉴于像 @ComponentScan、@EntityScan、@ConfigurationPropertiesScan 和 @SpringBootApplication 这样的 Spring Boot 注解使用包来定义扫描位置,...
[Laravel 扩展包]Laravel 轻量级购物车扩展包
binafy/laravel-cart 包增加了向 Laravel 应用添加购物车功能的能力。它简化了购物车项目的存储和管理,支持存储多种项目类型等:特性:安全的卡信息存储和管理、支持多个支付网关、经常性支付和订阅管理、健壮的验证和错误处理、高度可定制和灵活的架构...
JAVA 阻塞队列 java.util.concurrent.BlockingQueue 指南
本文中,我们将研究解决并发生产者-消费者问题的最有用的构造之一 java.util.concurrent。我们将研究 BlockingQueue 接口的 API,以及来自该接口的方法如何使编写并发程序变得更容易。在本文的后面,我们将展示一个简单程序的示例,该程序具有多个生产者线程和多个消费者线程。我们可以区分两...
Java Phaser 指南
本文中,我们将研究 java.util.concurrent 包中的 Phaser 构造。它是一个与 CountDownLatch 非常相似的结构,允许我们协调线程的执行。与 CountDownLatch 相比,它有一些额外的功能。Phaser 是一个屏障(barrier),在继续执行之前,动态数量的线程需要等待它。在 CountDow...
Dash UI:一个受 Shopify Polaris 启发的 Laravel Blade组件库
Dash UI 是 Laravel Blade 的一个组件库,灵感来自 Shopify Polaris。它使用 Tailwind CSS、Laravel Blade 组件和 Alpine.js 创建,旨在方便集成和自定义。Dash UI Feedback Banners该 UI 套件包括一套全面的 UI 元素,使你能够快速开始构建应用并使用 Blade 组件...
如何在 Java 中编写 equals 等价方法
本文描述了一种重写 equals 方法的技术,该方法即使在具体类的子类添加新字段时也能保留 equals 的约定。子类化时保留 equals contract 的是“面向对象语言中等价关系的基本问题”。除非你愿意放弃面向对象抽象的好处,否则无法在保留 equals 契约的同时扩展可实例化类并添加值组件。...