经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
Java相关:JavaJSPJFinalGroovySpringSpring BootServletScalaStruts2JUnit设计模式
 Java相关

ForkJoinPool在生产环境中使用遇到的一个问题

1、背景 在我们的项目中有这么一个场景,需要消费kafka中的消息,并生成对应的工单数据。早些时候程序运行的好好的,但是有一天,我们升级了容器的配置,结果导致部分消息无法消费。而消费者的代码是使用CompletableFuture.runAsync(() -> {while (true){...[2024/3/25]

从零开始的 dbt 入门教程 (dbt cloud 自动化篇)

一、引 在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化,毕竟作为开发我们肯定没有经历每天定点去手动运行 dbt 命令,那么今天我们将带领大家快速上手...[2024/3/25]

面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!

写在开头 面试官:小伙子,多线程中锁用过吗? 我:那是自然! 面试官:那你知道synchronized的优化吗? 我:synchronized作为重锁,开销大,在早期不被推荐使用,后期进行了优化,至于怎么优化的话,您让我想想哈... 面试官:好的,那你出去好好想吧! 对于synchro...[2024/3/25]

啪,还敢抛出异常

前言 去年又重新刷了路遥的《平凡的世界》,最近也在朋友推荐下,来看了路遥的另一部成名作《人生》。 故事中的主人公高加林,虽生在农村,面朝黄土背朝天,却不甘心像父辈一样或者,一心想着摆脱民语的束缚,追求他的理想生活。 然而命运多舛,在他所想象的理想生活中,一次次跌倒,最终不得不承认自己的平凡,...[2024/3/25]

【干货】Java开发者快速上手.NET指南

前言 前几天有小伙伴在技术群里发了一个微软官方出的:适用于Java开发人员的.NET快速入门免费电子书,今天大姚来分享一下Java开发者想要快速上手.NET有哪些教程和优质资料。 微软适用于Java开发人员的.NET快速入门指南 下载阅读地址:https: dotnet.microsoft.c...[2024/3/22]

Java 22正式发布,一文了解全部新特性

Java 22正式发布,一文了解全部新特性

就在昨晚,Java 22正式发布!该版本提供了 12 项功能增强,其中包括 7 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能以及 JDK 中包含的工具的改进。 下面就来一起学习一下该版本都更新了哪些新特性! Unnamed Variables & Patt...[2024/3/22]

从零开始学Spring Boot系列-集成Kafka

Kafka简介 Apache Kafka是一个开源的分布式流处理平台,由LinkedIn公司开发和维护,后来捐赠给了Apache软件基金会。Kafka主要用于构建实时数据管道和流应用。它类似于一个分布式、高吞吐量的发布-订阅消息系统,可以处理消费者网站的所有动作流数据。这种动作流数据包括页面浏览...[2024/3/22]

Java22重磅发布!!!!卷不动了,真的卷不动了。。。。

就在3月19日,Java22重磅发布。Java22新增了12项增强功能,其中包括七个预览特性和一个孵化器特性,这些功能都显著到足以引起JDK增强提案(JEPs)的关注。它们涵盖了Java语言、其API、性能以及JDK中包含的工具的改进。 真的卷不动了,,前段时间才将项目升级到Java17。。。...[2024/3/22]

开源一个教学型分库分表示例项目 shardingsphere-jdbc-demo

在笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 分库分表之所以被广泛使用,因为工程相对简单,但分库分表并不仅仅是分片,还是需要考虑如何扩缩容(全量同步、增量同步、数据校验等)。 因此笔者做了一个教学型分库分表示例项目 ,计划将分库分表的技术体系都实际演示一遍。 ht...[2024/3/22]

Solon Web 文件上传的最佳实践

文件上传是 Web 开发中最常见的一个应用场景。一般在处理数据时,会有两种常见的方案:直接把文件流放在内存里,或者把文件流先缓冲到磁盘。 1、如果是高频且文件极小 使用纯内存模式,默认即可。如果高频小文件,是不适合用“临时文件模式”的,磁盘可能容易刷坏。只能多配些内存! 2、如果是低频或者文件...[2024/3/20]

Java SE 22 新增特性

Java SE 22 新增特性 作者:Grey 原文地址: 博客园:Java SE 22 新增特性 CSDN:Java SE 22 新增特性 源码 源仓库: Github:java_new_features 使用未命名的变量和模式 我们经常需要定义一些我们根本不需要的变量。常见的例子包...[2024/3/20]

关于volatile与指令重排序的探讨

写在开头 在之前的学习我们了解到,为了充分利用缓存,提高程序的执行速度,编译器在底层执行的时候,会进行指令重排序的优化操作,但这种优化,在有些时候会带来 有序性 的问题。 那何为有序性呢?我们可以通俗理解为:程序执行的顺序要按照代码的先后顺序。 当然,之前我们还说过发生有序性问题时,我们可以通...[2024/3/20]

深入浅出Java多线程(十三):阻塞队列

引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十三篇内容:阻塞队列。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在多线程编程的世界里,生产者-消费者问题是一个经典且频繁出现的场景。设想这样一个情况:有一群持续不断地生产资源的线程(我们称之为“...[2024/3/20]

什么是设计模式?

在此分享下个人拙见,文章有点长,需要静下心来慢慢看,或者去WX公众号点击上方的听书↑ 学习设计模式需要具备的基础知识 熟悉一门面向对象的编程语言 理解面向对象的三大特性,尤其是多态 能看懂UML的类图 本文就以下几点进行展开 什么是设计模式 如果将代码的设计和编写...[2024/3/19]

设计模式学习(一)单例模式的几种实现方式

目录前言饿汉式懒汉式懒汉式DCLP局部静态式(Meyers'' Singleton)单例模板参考文章 前言 单例模式,其核心目标是确保在程序运行的过程中,有且只有存在一个实例才能保证他们的逻辑正确性以及良好的效率。因此单例模式的实现思路就是确保一个类有且只有一个实例,并提供一个该实例的全局访...[2024/3/19]

面试官:volatile如何保证可见性的,具体如何实现?

写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。 自JDK1.5之后,官网对volatile进...[2024/3/19]

面试官:小伙子,能聊明白JMM给你SSP!我:嘚吧嘚吧一万字,直接征服面试官!

写在开头 面试官:小伙子,JMM了解吗? 我:JMM(Java Memory Model),Java内存模型呀,学过的! 面试官:那能给我详细的聊一聊吗,越详细越好! 我:嗯~,确定越详细越好?起码得说一万字,您有时间听完? 面试官:你要是真能说一万字全是干货的话,我当场拍板要你,给你S...[2024/3/18]

写了个简单爬虫,分析 Boss 直聘自动驾驶岗位

两年前,朋友想知道 Bo 直聘上关于自动驾驶的岗位有哪些 ,于是,笔者写了一个简单的爬虫 crawler-bo ,将岗位的信息收集起来。 这篇文章,笔者想分享爬虫 crawler-bo 的设计思路。 1 基本原理 Selenium + chromedriver 对于很多动态渲染的网...[2024/3/18]

springboot如何优雅的获取前端参数

写在前面 对于初学者来说,困难的不是理论知识,而是如何在程序中具体实现。 现在的项目基本上都是前后端分离的项目,如何打通前后端,接收前端传过来的参数呢? 废话不多说,这篇文章就来说一说接收前端参数的具体操作 一、获取路径中的值 1.1 核心代码 @GetMapping("/getArtic...[2024/3/18]

走进volatile的世界,探索它与可见性,有序性,原子性之间的爱恨情仇!

写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。 自JDK1.5之后,官网对volatile进...[2024/3/18]

工作中最常见的6种OOM问题

前言 最近我写的几篇线上问题相关的文章:《糟糕,CPU100%了》《如何防止被恶意刷接口》《我调用第三方接口遇到的13大坑》发表之后,在全网广受好评。 今天接着线上问题这个话题,跟大家一起聊聊线上服务出现OOM问题的6种场景,希望对你会有所帮助。 1 堆内存OOM 堆内存OOM是最常见的...[2024/3/18]

不要升级!不要升级!MacOS 14.4 引发Java 应用崩溃

如果最近您收到了MacOS 14.4的升级提醒,那么建议你暂时先不要升级! 在x上,Java开发领域的一些大v们,也发现了这个问题,并提醒大家不要升级。 根据Java官方发布的文章了解到,该问题主要是由于macOS上运行的进程可能会访问受保护内存区域中的内存。在 macOS 14...[2024/3/18]

多线程系列(二十一) -ForkJoin使用详解

一、摘要 从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。 比如当前要计算一个数组的和,最简单的办法就是用一个循环在一个线程中完成,但是当数组特别大的时候,这种执行效率比较差,例如下面的示例代码。 long...[2024/3/18]

还在用Calendar操作Date?Java8都弃用了,还不知道它的这款强大的工具吗?

引言 在过去的Java版本中,日期和时间的处理主要依赖于java.util.Date和java.util.Calendar类,然而随着业务系统的复杂以及技术层面的提升,这些传统的日期时间类暴露出了若干显著的不足之处。随着Java8的发布,其引入了一套全新的日期时间API,彻底改变了我们处理日期和...[2024/3/18]

风控规则引擎(一):Java 动态脚本

风控规则引擎(一):Java 动态脚本

风控规则引擎(一):Java 动态脚本 日常场景 共享单车会根据微信分或者芝麻分来判断是否交押金 汽车租赁公司也会根据微信分或者芝麻分来判断是否交押金 在一些外卖 APP 都会提供根据你的信用等级来发放贷款产品 金融 APP 中会根据很复杂规则来判断用户是否有借款资格,以及贷款金额。 在简单...[2024/3/15]

JVM内存结构

我们都知道,我们写的Java程序需要先经过编译,生成了.cla 文件(字节码文件)。然而,计算机并不能直接解释.cla 文件里面的内容,这时候就需要一个能加载、解释.cla 文件并且能按.cla 文件里的内容进行处理的一个东西--JVM。 JVM,就是Java虚拟机。它是一种规范,有针对不...[2024/3/15]

netty Recycler对象池

前言 池化思想在实际开发中有很多应用,指的是针对一些创建成本高,创建频繁的对象,用完不弃,将其缓存在对象池子里,下次使用时优先从池子里获取,如果获取到则可以直接使用,以此降低创建对象的开销。 我们最熟悉的数据库连接池就是一种池化思想的应用,数据库操作是非常频繁的,数据库连接的创建、销毁开销很大...[2024/3/15]

在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!

在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!

写在开头 经过上几篇博文的学习,我们知道在Java中可以通过new Thread().start()创建一个线程,那今天我们就来思考另外一个问题:线程的终止 自然终止有两种情况: 1. 线程的任务执行完成; 2. 线程在执行任务过程中发生异常。 start之后,如果线程没有走到终止状...[2024/3/15]

缓存把我坑惨了..

故事 春天,办公室外的世界总是让人神往的,小猫带着耳机,托着腮帮,望着外面美好的春光神游着... 一声不和谐的座机电话声打破这份本该属于小猫的宁静,“hi,小猫,线上有个客户想购买A产品规格的商品,投诉说下单总是失败,帮忙看一下啥原因。”客服部小姐姐甜美的声音从电话那头传来。“哦哦,好,我看一...[2024/3/15]

面试官:说说反射的底层实现原理?

面试官:说说反射的底层实现原理?

反射是 Java 面试中必问的面试题,但只有很少人能真正的理解“反射”并讲明白反射,更别说能说清楚它的底层实现原理了。所以本文就通过大白话的方式来系统的讲解一下反射,希望大家看完之后能真正的理解并掌握“反射”这项技术。 1.什么是反射? 反射在程序运行期间动态获取类和操纵类的一种技术。通过...[2024/3/15]

一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!

写在开头 在线程的生命周期中,不同状态之间切换时,可以通过调用sleep()、wait()、join()、yield()等方法进行线程状态控制,针对这一部分知识点,面试官们也会做做文章,比如问你这些方法的作用以及之间的区别。 那么今天我们就一起来总结一下这几个方法的作用及区别,先画一个思维导图...[2024/3/15]

深入浅出Java多线程(十一):AQS

深入浅出Java多线程(十一):AQS

引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十一篇内容:AQS(AbstractQueuedSynchronizer)。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代多核CPU环境中,多线程编程已成为提升系统性能和并发处理能力的关键手段...[2024/3/13]

多线程系列(十八) -AQS原理浅析

多线程系列(十八) -AQS原理浅析

一、摘要 在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor 等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。 在使用方...[2024/3/13]

Spring多线程事务处理

一、背景 本文主要介绍了spring多线程事务的解决方案,心急的小伙伴可以跳过上面的理论介绍分析部分直接看最终解决方案。 在我们日常的业务活动中,经常会出现大规模的修改插入操作,比如在3.0的活动赛事创建,涉及到十几张表的插入(一张表可能插入一行或者多行数据),由于单线程模型的关系,所有的s...[2024/3/13]

面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会

写在开头 面试官:小伙子请聊一聊Java中的精灵线程? 我:什么?精灵线程?啥时候精灵线程? 面试官:精灵线程没听过?那守护线程呢? 我:守护线程知道,就是为普通线程服务的线程嘛。 面试官:没了?守护线程的特点,怎么使用,需要注意啥,Java中经典的守护线程都有啥? 我:不知道。。。 ...[2024/3/11]

VSCode 配置 Spring Boot 项目开发环境

神器IDEA在升级到2023之后越发卡顿, EDU邮箱也不能用了, 照现在这个JDK版本的升级速度, 神器不升级也不行, 需要开始物色替代品. 其它IDE我用得少, VSCode还是比较熟悉的, 可以作为备选项. 两三年前曾经试过配置Java环境, 存在不少问题作罢. 最近搜了下相关的文章, ...[2024/3/11]

Java面试必考题之线程的生命周期,结合源码,透彻讲解!

Java面试必考题之线程的生命周期,结合源码,透彻讲解!

写在开头 在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用、创建方式、重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了。 第一个需要学的就是线程的生命周期,也可以将之理解为线程的几种状态,以及互相之间的切换,这几乎是Java多线程的面试必考题,每一年都有大量的同...[2024/3/11]

Java 程序员第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片

人工智能时代,最需要学习的编程语言是:python 。笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 。 项目是 powerpoint-extractor ,可以将 ppt 文件中的图片提取出来,并输出到固定的目录。 1 安装 python 环境 ...[2024/3/11]

『Java 语法基础』面向对象有哪些特性

面向对象编程(OOP) 是一个将现实世界抽象为一系列对象的编程范式,这些对象通过消息传递机制来互相交流和协作。 OOP 的主要特性包括四个基本概念:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)以及抽象(Abstraction)。 封装...[2024/3/11]

JavaScript 最新动态:2024 年新功能

前言 随着 Web 技术的日新月异,JavaScript 也在不断地吸收新的特性和技术,以满足日益复杂和多样化的开发需求。在 2024 年,JavaScript 迎来了一系列令人瞩目的新功能,这些功能不仅提升了开发者的效率,也极大地丰富了 Web 应用的表现力和交互性。 在接下来的内容中,我们...[2024/3/7]

面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。

面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。

写在开头 昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上,我问他怎么回答的,他说自己有背过八股文,回答了:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种,但是面试官让说出8种创建方式,他没说出来,面试就挂了,面试官给的理由是:只关注...[2024/3/7]

玩转SpringBoot:SpringBoot的几种定时任务实现方式

引言 在现代软件开发中,定时任务是一种常见的需求,用于执行周期性的任务或在特定的时间点执行任务。这些任务可能涉及数据同步、数据备份、报表生成、缓存刷新等方面,对系统的稳定性和可靠性有着重要的影响。Spring Boot提供了强大且简单的定时任务功能,使开发人员能够轻松地管理和执行这些任务。 本...[2024/3/7]

Java开发者的Python快速进修指南:掌握T检验

前言 T检验是一种用于比较两个独立样本均值差异的统计方法。它通过计算T值和P值来判断样本之间是否存在显著性差异。通常情况下,我们会有两组数据,例如一组实验组和一组对照组。 T检验的原假设是两组样本的均值相等,备假设是两组样本的均值不相等。T检验会计算一个T值,表示两组样本均值之间的差异。同时,...[2024/3/7]

这波操作看麻了!十亿行数据,从71s到1.7s的优化之路。

你好呀,我是歪歪。 春节期间关注到了一个关于 Java 方面的比赛,很有意思。由于是开源的,我把项目拉下来试图学(白)习(嫖)别人的做题思路,在这期间一度让我产生了一个自我怀疑: 他们写的 Java 和我会的 Java 是同一个 Java 吗? 不能让我一个人怀疑,所以这篇文章我打算带...[2024/3/7]

多线程系列(十三) -一文带你搞懂阻塞队列

一、摘要 在之前的文章中,我们介绍了生产者和消费者模型的最基本实现思路,相信大家对它已经有一个初步的认识。 在 Java 的并发包里面还有一个非常重要的接口:BlockingQueue。 BlockingQueue是一个阻塞队列,更为准确的解释是:BlockingQueue是一个基于阻塞机制...[2024/3/7]

开源短信项目 platform-sms 发布了新版本 0.5.0

开源短信项目 platform-sms 发布了新版本 0.5.0

Github : https: github.com/makemyownlife/platform-sms 短信服务 platform-sms 0.5.0 发布 ,新的版本做了非常多的优化和改进。 1、支持发送任意时间延时短信; 2、优化三方渠道适配器加载逻辑; 3、支持 Do...[2024/3/7]

上来就对标 20k Star 的开源项目,是自不量力还是后起之秀?

上来就对标 20k Star 的开源项目,是自不量力还是后起之秀?

先来一段紧箍咒:nvm、fvm、gvm、sdkman、fnm、n、g、rvm、jenv、phpbrew、rustup、swiftenv、pyenv、rbenv... 这些都是用来解决编程语言多版本管理的工具,如果你是个程序员肯定认识或是用过几个,但是刚接触编程的小白,就会有些挠头了。 啥...[2024/3/7]

一次生产环境OOM排查

一、背景 前几天下午飞书告警群里报起了java.lang.OutOfMemoryError: unable to create new native thread告警,看见后艾特了对应的项目负责人但是负责人说没时间,无奈自己亲自上阵。 二、事情经过 2.1 问题排查 从报错信息就可以看出是服务...[2024/3/4]

HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!

写在开头 在《耗时2天,写完HashMap》这篇文章中,我们提到关于HashMap线程不安全的问题,主要存在如下3点风险: 风险1: put的时候导致元素丢失;如两个线程同时put,且key值相同的情况下,后一个线程put操作覆盖了前一个线程的操作,导致前一个线程的元素丢失。 风险2: p...[2024/3/4]

从零开始学Spring Boot系列-集成MySQL

在Spring Boot中集成MySQL是为了让开发者能够轻松地与MySQL数据库进行交互。本篇文章将指导你如何在Spring Boot 3.2.3项目中使用Gradle来集成MySQL。在此之前,我们需要在Ubuntu 22.04上安装MySQL 8作为我们的数据库服务器。 安装MySQL8 ...[2024/3/4]

561
3
记录数:11050 页数:2/221首页上一页12345678910下一页尾页
 友情链接:直通硅谷  直通硅谷 怎么样 mac软件下载
加载更多