本文翻译自国外论坛medium,原文地址:https://medium.com/@benweidig/looking-at-java-21-virtual-threads-0ddda4ac1be1 Java21版本更新中最重要的功能之一就是虚拟线程(JEP444)。这些轻量级线程减少了编写、维护和观察高吞吐量并发应用程序所需的工作量。 正如我的许多其他文章一样,在推出新功能之前,让我们先看看Java21版本更新前的现状,以便更好地了解Java21版本试图解决的问题以及好处是什么。 平台线程 在引入虚拟线程之前,java.lang.Thread包已经支持所谓的平台线程。 这些线程通常以1:1的方...

  uzChSTcpqHVQ   2023年11月02日   59   0   0 Java

本文转载自国外论坛medium,原文地址:https://medium.com/navan-tech/7-java-features-you-might-not-have-heard-of-adee8166d942,由博主简译后给大家带来! ShowmeyourcodeandIwilltellyouwhoyouare. Thisarticlewillfixthebadhabitsyouhavestucktoovertheyearsorbroughtfromotherprogramminglanguages. 是的,老外就这么吊,文章开头就是"给我看看你的代码,我来告诉你,你有几斤几两!"...

  uzChSTcpqHVQ   2023年11月02日   55   0   0 Python

一、简介 本文给大家推荐博主自己开源的电商项目newbee-mall-pro。在newbee-mall项目的基础上搭建而来,使用mybatis-plus作为orm层框架,并添加了一系列高级功能以及代码优化并且已经升级至SpringBoot3.0,项目功能特性如下: 商城首页【为你推荐】栏目添加协同过滤算法。按照UserCF基于用户的协同过滤、ItemCF基于物品的协同过滤,实现了两种不同的推荐逻辑。 RedisSearch:支持中文分词搜索,支持商品名称、简介、标签作为搜索项,以及新品、价格排序。 RediSearch是一个源码可用的Redis模块,可以对Redis进行查询、二级索引和全...

  uzChSTcpqHVQ   2023年11月01日   104   0   0 Java

一、简介 本文博主给大家讲解如何在自己开源的电商项目newbee-mall-pro中应用协同过滤算法来达到给用户更好的购物体验效果。 newbee-mall-pro项目地址: 源码地址:https://github.com/wayn111/newbee-mall-pro 在线地址:http://121.4.124.33/newbeemall 二、协同过滤算法 协同过滤算法是一种基于用户或者物品的相似度来推荐商品的方法,它可以有效地解决商城系统中的信息过载问题。协同过滤算法的实践主要包括以下几个步骤: 数据收集和预处理。这一步需要从商城系统中获取用户的行为数据,如浏览、购买、评价等,然后...

  uzChSTcpqHVQ   2023年11月01日   67   0   0 Java

本文是从开源项目RuoYi的提交记录文字描述中根据关键字漏洞|安全|阻止筛选而来。旨在为大家介绍日常项目开发中需要注意的一些安全问题以及如何解决。 项目安全是每个开发人员都需要重点关注的问题。如果项目漏洞太多,很容易遭受黑客攻击与用户信息泄露的风险。本文将结合3个典型案例,解释常见的安全漏洞及修复方案,帮助大家在项目开发中进一步提高安全意识。 RuoYi项目地址:https://gitee.com/y_project/RuoYi 博主github地址:https://github.com/wayn111,欢迎大家关注 一、重置用户密码 RuoYi项目中有一个重置用户密码的接口,在提交记...

  uzChSTcpqHVQ   2023年11月01日   54   0   0 Java

博主给大家推荐一套全部开源的H5电商项目waynboot-mall。由博主在2020年开发至今,已有三年之久。那时候网上很多的H5商城项目都是半开源版本,要么没有H5前端代码,要么需要加群咨询,属实恶心。于是博主决定自己开发一套完整的移动端H5商城,包含一个管理后台、一个前台H5商城、一套后端接口。项目地址如下: H5商城前端代码:https://github.com/wayn111/waynboot-mobile 运营后台前端代码:https://github.com/wayn111/waynboot-admin 后端接口代码:https://github.com/wayn111/wayn...

  uzChSTcpqHVQ   2023年11月01日   133   0   0 Java

本文翻译自国外论坛medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104 让我们一起看看国外开发者认为优秀后端工程师需要掌握哪些技能。 谁是后端工程师? 本质上,软件开发有两个要素:前端和后端。当访问者登陆网站时,他们会看到UI与之交互,即前端。前端与用户交互,收集输入,然后将其传递给后端进行进一步处理。后端处理从前端收到的请求,并将结果返回给前端,显示在UI中。 前端工程师需要HTML、CSS、Js、设计、图形等UI/UX开发知识,而后端开发人员需要...

  uzChSTcpqHVQ   2023年11月01日   156   0   0 Java

简介 单例模式是一种常用的软件设计模式,用于创建类型。通过单例模式的方法创建的类在当前进程中只有一个实例。单例模式的类只能允许一个实例存在。单例模式的作用是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个。 组成部分: 私有化构造方法。 私有化内部实例。 公有静态方法用来获取内部实例。 优缺点 单例模式的优点有: 提供了对唯一实例的受控访问,可以保证对象的唯一性和一致性。 减少了内存开销,避免了频繁的创建和销毁对象。 避免了对资源的多重占用,例如文件操作、数据库连接等。 单例模式的缺点有: 不支持继承和多态,违反了单一职责原则,一个类应该只关心内部逻辑,而不关...

  uzChSTcpqHVQ   2023年11月01日   103   0   0 Java

博主在浏览medium社区时,发现了一篇点赞量1.5k的文章,名称叫《JavaisDead—5MisconceptionsofdevelopersthatstillthinkJavaisrelevanttoday!》直译过来就是《Java已死—开发人员对Java在现代编程语言中的5个误解》。这篇文章可以说是标题党得典范,热度全靠标题蹭😂。当然本文重点在于文章评论区。作者因为标题党惨着评论区大佬们怒怼,不敢回复。 原文地址:https://medium.com/@sidh.thomas1/java-is-dead-6-misconceptions-of-developers-that-stil...

  uzChSTcpqHVQ   2023年11月01日   88   0   0 Java

本文博主给大家讲解一道网上非常经典的多线程面试题目。关于三个线程如何交替打印ABC循环100次的问题。 下文实现代码都基于Java代码在单个JVM内实现。 问题描述 给定三个线程,分别命名为A、B、C,要求这三个线程按照顺序交替打印ABC,每个字母打印100次,最终输出结果为: A B C A B C ... A B C 推荐博主开源的H5商城项目waynboot-mall,这是一套全部开源的微商城项目,包含三个项目:运营后台、H5商城前台和服务端接口。实现了商城所需的首页展示、商品分类、商品详情、商品sku、分词搜索、购物车、结算下单、支付宝/微信支付、收单评论以及完善的后台管理等一...

  uzChSTcpqHVQ   2023年11月01日   95   0   0 Java

本文基于Vert.x官网https://vertx.io/内容,带领大家学习响应式编程里比较有名的工具包Vert.x。文章内容取自官网由博主简化总结,希望帮助大家理解响应式编程。 Vert.x简介 Vert.x特性 响应式模式概述 推荐博主开源的H5商城项目waynboot-mall,这是一套全部开源的微商城项目,包含三个项目:运营后台、H5商城前台和服务端接口。实现了商城所需的首页展示、商品分类、商品详情、商品sku、分词搜索、购物车、结算下单、支付宝/微信支付、收单评论以及完善的后台管理等一系列功能。技术上基于最新得Springboot3.0、jdk17,整合了MySql、Redis...

  uzChSTcpqHVQ   2023年11月01日   23   0   0 Java

博主记得在一个周五快下班的下午,产品找到我(为什么总感觉周五快下班就来活😂),跟我说有几个业务列表查询需要加上时间条件过滤数据,这个条件可能会变,不保证以后不修改,这个改动涉及到多个列表查询,于是博主思考了一会想了几种实现方案, 最简单,直接将时间条件写死,由Service层传递给Dao层进行条件拼接。实现上虽然简单,但是代码上感觉非常low,如果这个参数需要在很多方法里进行传递,那么工作量就比较大。 复杂一点,通过MyBatis的拦截器机制,在SQL拼接的prepare阶段修改SQL语句,实现动态SQL。 考虑到拦截器机制不需要修改过多代码,因此本文博主将带领大家学习如何利用MyBat...

  uzChSTcpqHVQ   2023年11月01日   85   0   0 Java

本文我将给大家介绍一个apk打包工具VasDolly的使用介绍、原理以及如何在服务端接入VasDolly进行服务端打渠道包操作。 使用介绍 VasDolly是一个快速多渠道打包工具,同时支持基于V1和V2签名进行多渠道打包。插件本身会自动检测Apk使用的签名类别,并选择合适的多渠道打包方式,对使用者来说完全透明。 项目地址:https://github.com/Tencent/VasDolly 项目构建方式:gradle VasDolly官方对于VasDolly的定位是安卓端多渠道打包工具,由安卓开发接入安卓项目中使用。VasDolly官方还提供了jar包工具通过命令行方式进行打包操作。...

  uzChSTcpqHVQ   2023年11月01日   87   0   0 Java

本文翻译自国外论坛medium,原文地址:https://medium.com/@raviyasas/spring-boot-best-practices-for-developers-3f3bdffa0090 SpringBoot是一种广泛使用且非常流行的企业级高性能框架。以下是一些最佳实践和一些技巧,我们可以使用它们来改进SpringBoot应用程序并使其更加高效。这篇文章会有点长,完整读完文章需要一些时间。 1.正确的包目录风格 正确的包目录将有助于轻松理解代码和应用程序的流程。 我们可以使用有意义的包目录来构建我们的应用程序。 我们可以将所有控制器包含在单独的包中,将服务包含在单独的...

  uzChSTcpqHVQ   2023年11月01日   58   0   0 Java

本文翻译自国外论坛medium,原文地址:https://levelup.gitconnected.com/how-i-deleted-more-than-1000-lines-of-code-using-spring-retry-9118de29060 使用SpringRetry重构代码的综合指南。 问题介绍 在我的日常工作中,我主要负责开发一个庞大的金融应用程序。当客户发送请求时,我们使用他们的用户ID从第三方服务获取他们的帐户信息,保存交易并更新缓存中的详细信息。尽管整个流程看起来足够简单,但这些下游系统中的每一个都是不可靠的。我们必须在每一层上实现重试,并且我们必须以一种可以控制重...

  uzChSTcpqHVQ   2023年11月01日   78   0   0 Java

Kafka是一个基于发布-订阅模式的消息系统,它可以在多个生产者和消费者之间传递大量的数据。Kafka的一个显著特点是它的高吞吐率,即每秒可以处理百万级别的消息。那么Kafka是如何实现这样高得性能呢?本文将从七个方面来分析Kafka的速度优势。 零拷贝技术 仅可追加日志结构 消息批处理 消息批量压缩 消费者优化 未刷新的缓冲写入 GC优化 以下是对本文中使用得一些英文单词得解释: Broker:Kafka集群中的一台或多台服务器统称brokerProducer:消息生产者Consumer:消息消费者zerocopy:零拷贝 1.零拷贝技术 零拷贝技术是指在读写数据时,避免将数据在内核...

  uzChSTcpqHVQ   2023年11月01日   101   0   0 Java

本文翻译自国外论坛medium,原文地址:https://medium.com/@fullstacktips/best-practices-for-memory-management-in-java-17084c4a7eec 内存管理是编程的一个基本领域之一,尤其是在Java开发中。当不再需要的对象没有得到正确处理时,就会发生内存泄漏,导致内存使用量不断增长,最终导致性能问题和应用程序崩溃。因此深入了解如何在Java应用程序中有效使用内存并避免内存泄漏至关重要。 在这篇文章中,我们将讨论避免内存泄漏和优化Java内存使用的最佳实践。 Java应用程序内存泄漏的常见原因 在深入探讨最佳实践之前,...

  uzChSTcpqHVQ   2023年11月01日   21   0   0 Java

在日常开发中,当需要给一个现有类添加附加职责,而又不能采用生成子类的方法进行扩充时。例如,该类被隐藏或者该类是终极类或者采用继承方式会产生大量的子类。这时候,我们该怎么办呢?我们可以使用装饰器器模式来解决这个问题,本文将从以下四个方面讲解装饰器器模式。 简介 优缺点 应用场景 Java代码示例、 Spring代码示例 简介 装饰器模式(DecoratorPattern)是一种结构型设计模式,它可以在不改变现有对象的结构的情况下,动态地给对象增加一些额外的功能。装饰器模式通过创建一个包装对象(即装饰器)来包裹真实对象,并在保持真实对象的接口不变的前提下,为其提供额外的功能。装饰器模式可以在运...

  uzChSTcpqHVQ   2023年11月01日   54   0   0 Java

在软件开发中,我们经常会遇到这样的情况:我们需要使用一个现有的类或者接口,但它与我们系统的目标接口不兼容,而我们又不能修改它。这时候,我们该怎么办呢?大多数情况下我们都可以使用适配器模式来解决这个问题,本文将从以下四个方面讲解适配器模式。 简介 优缺点 应用场景 Java代码示例 简介 适配器模式(AdapterPattern)是一种结构型设计模式,它可以将一个接口转换成客户端所期待的另一个接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作。适配器模式也称为包装器模式(WrapperPattern),因为它通过一个包装类(即适配器)来包装不兼容的接口,并提供统一的目标接口。适配器...

  uzChSTcpqHVQ   2023年11月01日   77   0   0 Java

Arrays.asList()是一个Java的静态方法,它可以把一个数组或者多个参数转换成一个List集合。这个方法可以作为数组和集合之间的桥梁,方便我们使用集合的一些方法和特性。本文将介绍Arrays.asList()的语法、应用场景、坑点和总结。 语法 应用场景 坑点 总结 语法 Arrays.asList()的语法格式如下: publicstatic<T>List<T>asList(T...a) 这个方法接受一个泛型参数T,表示数组或者参数的类型。T必须是一个引用类型,不能是一个基本类型,例如int,double,char等。如果传入一个基本类型的数组,Ar...

  uzChSTcpqHVQ   2023年11月01日   22   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~