51CTO首页
AI.x社区
博客
学堂
精品班
免费课
企业培训
鸿蒙开发者社区
WOT技术大会
AIGC创新中国行
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
2024年软考
PMP项目管理
软考资讯
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO题库小程序
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方件
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
仓颉
HarmonyOS NEXT
OpenHarmony
三万字盘点Spring/Boot的那些常用扩展点(上篇)
SpringEvent事件Event事件可以说是一种观察者模式的实现,主要是用来解耦合的。当发生了某件事,只要发布一个事件,对这个事件的监听者(观察者)就可以对事件进行响应或者处理。举个例子来说,假设发生了火灾,可能需要打119、救人,那么就可以基于事件的模型来实现,只需要打119、救人监听火灾的发生就行了,当发生了火灾,通知这些打119、救人去触发相应的逻辑操作。什么是SpringEvent事件那么是什么是SpringEvent事件,就是...
荔枝岛岛主
0回复
3204浏览
java
三万字盘点Spring/Boot的那些常用扩展点(上篇)
大家好,我是三友。Spring对于每个Java后端程序员来说肯定不陌生,日常开发和面试必备的。本文就来盘点SpringSpringBoot常见的扩展点,同时也来看看常见的开源框架是如何基于这些扩展点跟SpringSpringBoot整合的。话不多说,直接进入正题。FactoryBean提起FactoryBean,就有一道“著名”的面试题“说一说FactoryBean和BeanFactory的区别”。其实这两者除了名字有点像,没有半毛钱关系。。BeanFactory是Bean的工厂,可以帮我们生...
荔枝岛岛主
0回复
4034浏览
java
几道高频的JVM面试题
前言大家好,我是程序员田螺。整理了几道高频的JVM面试题,小伙伴们加油呀!•JVM内存为什么要分成新生代,老年代•新生代中为什么要分为Eden和Survivor•JVM中一次完整的GC流程是怎样的•CMS收集器和G1收集器的区别•JVM调优•CPU飙升如何排查1.JVM内存为什么要分成新生代,老年代?1.1JVM共享内存划分•共享内存区持久代+堆(jdk1.8及以上jvm废弃了持久代)•持久代方法区+其他•Java堆...
chujichenxuyuan
2回复
6370浏览
JVM
《重学Java高并发》Disruptor使用实战
上文已经详细介绍了disruptor,也体会了并发编程的奥妙,接下来将理论结合实战,本文和大家分享一下disruptor的使用,加深对disruptor工具包对理解。1、disruptor常用类一览disruptor的常用类体系如下图所示:其职责说明如下:RingBuffer环形队列,disruptor中的核心存储类Sequencer序号实现器,维护发送者发送的序号生成逻辑、消费方获取可消费的序号,是无锁化访问的核心实现类,共有两个实现类,MultiProducerSequencer为多...
yoursoft
0回复
3313浏览
Java
《重学Java高并发》disruptor是如何做到百万级吞吐?
Disruptor是业界非常出名的单机版高性能队列,官方宣传能达到百万级吞吐,那disruptor是如何做到的呢?其核心秘诀如下:破除伪共享对象池无锁化设计批处理上面这些观点,网上已经提了N遍,没关系,本文将结合代码、图解的方式,与大家一起探究实现原理,希望能给读者朋友们不一样的感悟。提到Disruptor,必然会提到RingBuffer,disruptor环形队列,是整个Disruptor是基座,本文将尝试以RingBuffer为突破口,揭晓disruptor的核心...
yoursoft
0回复
3217浏览
Java
中通又一个承载千亿级流量平台开源啦!!!
从JDK5开始,Java提供了注解新特性,随后,注解如雨后春笋般被大量应用到各种开发框架中,其中,最具代表的是Spring。在注解出现以前,Spring的配置通常需要写到xml中。基于xml配置,有着十分繁琐,难以记忆,容易出错等弊端。Spring开发者也意识到了这个问题,于是开始引入大量的注解,让注解替代传统的xml配置。到了大数据时代,以Hadoop、Spark、Flink为代表的分布式计算引擎先后横空出世。相信很多从事过JavaWeb开发工作的...
WilliamGates
0回复
2056浏览
Java
详细解读ThreadLocal的内存泄露
说到内存溢出,我相信各位都知道是什么,但是说到内存泄露,而且还是ThreadLocal,阿粉就得来说一下这个了,毕竟如果面试的时候被问到ThreadLocal的内存泄露,是不是有可能不太了解了呢,今天阿粉来说一下这个ThreadLocal的内存泄露的原因,以及如何从开发中去避免这个问题。什么是内存泄露说到内存泄露,阿粉就得说一下,这个可能对于初中级的程序员来说,还是比较陌生的,为什么这么说,是因为,JVM有自己的内存回收机制,所以...
maxdl
0回复
2077浏览
java
try 语句如何更优雅的关闭资源?请看这里!
一、摘要trywithresources是JDK7中引入的一个新的异常处理机制,它能让开发人员不用显式的释放trycatch语句块中使用的资源。比如,我们以文件资源拷贝为示例,大家所熟悉的trycatchfinally写法如下:publicclassResourceTest1{publicstaticvoidmain(String[]args){BufferedInputStreambinnull;BufferedOutputStreamboutnull;try{binnewBufferedInputStream(newFileInputStream(newFile("test.txt")));b...
maxdl
0回复
2633浏览
java
一文教你如何通过 Stream API 批量 Mock 数据
在日常开发的过程中我们经常会遇到需要mock一些数据的场景,比如说mock一些接口的返回或者说mock一些测试消息用于队列生产者发送消息,可能很多时候我们都是使用一些固定的case或者一条相同的数据重复使用。今天阿粉就教大家用Stream去构造一些伪真实的一些数据。Mock任意个UUID首先我们通过普通写法来构造100个UUID,代码如下相信大家都会写,就不多说了。publicstaticList<U...
maxdl
0回复
2235浏览
java
一文解读所有HashMap的面试题
关于HashMap阿粉相信大家再面试的时候,是非常容易被问到的,为什么呢?因为至少是在JDK8出来之后,非常容易被问到关于HashMap的知识点,而如果对于没有研究过他的源代码的同学来说,这个可能只是说出一部分来,比如线程安全,链表+红黑树,以及他的扩容等等,今天阿粉就来把HashMap上面大部分会被在面试中问到的内容,做个总结。HashMap说到HashMap想必大家从脑海中直接复现出了一大堆的面试题,HashMap的数据结构JDK7和JDK8Ha...
maxdl
0回复
1358浏览
java
为什么我在公司里访问不了家里的电脑?
上篇文章「为什么我们家里的IP都是192.168开头的?」提到,因为IPv4地址有限,最大42亿个。为了更好的利用这有限的IP数量,网络分为局域网和广域网,将IP分为了私有IP和公网IP,一个局域网里的N多台机器都可以共用一个公网IP,从而大大增加了"可用IP数量"。收发数据就像收发快递当我们需要发送网络包的时候,在IP层,需要填入源IP地址,和目的IP地址,也就是对应快递的发货地址和收货地址。IP报头里含有发送和接收IP地...
love374
0回复
2920浏览
网络通讯
一文带你了解 Spring 的 @Enable 开头的注解
前面的文章给大家介绍Spring的重试机制的时候有提到过Spring有很多Enable开头的注解,平时在使用的时候也没有注意过为什么会有这些注解,今天就给大家介绍一下。Enable注解首先我们先看一下有哪些常用的Enable开头的注解,以及都是干什么用的。EnableRetry:开启Spring的重试功能;EnableScheduling:开启Spring的定时功能;EnableAsync:开启Spr...
maxdl
0回复
2415浏览
java
从0学Java(二)变量与计算
首先要了解,任何程序都可以理解为有一些输入,将这些输入的数据记录下来,加以计算,然后输出的过程。我们已经知道用System.out.println可以让计算机输出,我们需要知道如何能让计算机读到我们输入的内容,我们还需要知道如何让计算机能记住我们输入的内容,以及如何进行相应的计算。这篇文章的内容将讲解以下知识点:①输入与输出,②变量与赋值,③浮点数的计算以及与整数之间的转换①输入与输出要读到程序的用户的输入,需...
maxdl
0回复
1803浏览
java
从0学Java(一)编程语言和软件
什么是编程?编程就是和计算机交流,你写下要计算机逐一执行的命令,然后让计算机来执行。当然在现实生活中想要别人执行你的命令,首先得让对方听懂你说的话,计算机也一样,但计算机只能听懂16进制。那怎么办呢?难道我还要学习16进制?答案是:当然不用啦,学习编程语言就是为了让计算机能听懂你在说什么,你想让它做什么。如何让计算机听我的命令?这个时候我们需要一个软件,在这个软件中写程序,然后让它解释或者编译成计...
maxdl
0回复
1849浏览
java
自定义的配置文件,如何注入到SpringBoot?
一、简介在实际的项目开发过程中,我们经常需要将某些变量从代码里面抽离出来,放在配置文件里面,以便更加统一、灵活的管理服务配置信息。比如,数据库、eureka、zookeeper、redis、mq、kafka等服务组件的连接参数配置,还有我们自定义的项目参数配置变量。当然,实际上根据当前的业务需求,我们往往会自定义参数,然后注入到代码里面去,以便灵活使用!今天,我们就一起来聊一聊SpringBoot加载配置文件的几种玩法,如...
maxdl
0回复
3457浏览
java
面试官提问:什么是前缀索引?
一、什么是前缀索引?所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前10位来建索引,这样建立起来的索引更小,查询效率更快!有点类似于Oracle中对字段使用Left函数来建立函数索引,只不过MySQL的这个前缀索引在查询时是内部自动完成匹配的,并不需要使用Left函数。二、为什么要用前缀索引?可能有的同学会发出疑问,为什么不对整个字段建立索引呢?一般来说,当...
maxdl
0回复
2942浏览
java
Java 中的接口还可以这样用,你知道吗?
Java程序员都知道要面向接口编程,那Java中的接口除了定义接口方法之外还能怎么用你知道吗?今天阿粉就来带大家看一下Java中的接口还可以有哪些用法。基本特性我们先看一下接口的基本特性接口的定义需要使用关键字interface;接口定义的所有方法默认都是publicabstract;当一个具体的class去实现一个interface时,需要使用implements关键字;接口之间...
maxdl
0回复
2398浏览
java
代码开发技巧之快速逆向工程
我们都知道,在开发的时候,是百分百都能够使用到我们的实体类,各种工具类,而有些实体类,因为表中字段的增多,一个实体类,有可能有二三十个字段,而如果每一个字段都让我们自己去编辑,那你有一多半的时间,都会浪费在处理这个字段上面,所以,今天阿粉就来交给你,这个快速而又简单的根据表结构,生成实体类的小工具,逆向工我们都知道,在开发的时候,是百分百都能够使用到我们的实体类,各种工具类,而有些实体类,因为...
maxdl
0回复
1438浏览
java
项目中到底该不该用 lombok?
一、摘要Java,作为一款非常热门的编程语言,尽管它有着非常丰富的语言特性,完全面向对象编程,编程高度规范化,但是也有一个最受大家诟病的一个缺点:啰嗦,尤其是当你开发了很多年之后,你会明显的感受到,相比动态语言,java定义变量之前,要先创建类,然后定义变量类型,每个类要写很多的getsettoStringhashCodeequals等等方法。尤其是当一个实体类,高达几十个变量时,写完get、set方法之后,一个实体类...
maxdl
0回复
2721浏览
java
Java 远程调用失败?如何优雅的进行重试?
在日常开发的过程中我们经常会需要调用第三方组件或者数据库,有的时候可能会因为网络抖动或者下游服务抖动,导致我们某次查询失败。这种时候我们往往就会进行重试,当重试几次后依旧还是失败的话才会向上抛出异常进行失败。接下来阿粉就给大家演示一下通常是如何做的,以及如何更优雅的进行重试。常规做法我们先来看一下常规做法,常规做法首先会设置一个重试次数,然后通过while循环的方式进行遍历,当循环次数没有达...
maxdl
0回复
2733浏览
java
暂无内容
1
11
12
13
14
15
16
17
18
19
69
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅