- 博客(292)
- 收藏
- 关注
原创 【Spring Boot 源码学习】深入 ApplicationArguments 接口及其默认实现
本篇博文Huazie同大家一起深入分析了接口及其默认实现,相信这些可以进一步加深大家对于启动运行阶段中命令参数获取和使用的理解。接下来的博文将会继续聚焦启动运行阶段,敬请期待!!!
2024-09-12 15:24:48 883
原创 TransmittableThreadLocal剖析
是 Alibaba 开源的 Java 库中的一个类。它扩展了 Java 标准库中的类,提供了跨线程传递本地变量(如跨线程池提交任务时)的能力。这在处理需要使用线程池的异步编程和并发场景下有大用处。要关注的是,需要配合装饰器使用,通过装饰器包装的可以确保在原始线程和执行任务的线程之间共享。ini代码解读复制代码。
2024-09-10 14:19:03 2106
原创 浅析 JVM invokedynamic 指令和 Java Lambda 语法|得物技术
Java的Lambda表达式,是传统的【匿名内部类】特性在特定场景下的平替特性。所谓的特定场景,即我们熟知的FunctionalInterface。当【匿名内部类】匿名实现的是一个FunctionalInterface时,可以用Lambda表达式平替。示例如下:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
2024-08-28 14:33:53 1341
原创 服务平滑迁移方案设计
任务系统服务仅作为直播系统中的一个模块,存在着过多的服务器资源,再加上没有统一的管理模式,导致管理难度增加,也增加了资源的浪费。为了提高资源利用率并简化管理,计划将任务系统中8台8c64g规格服务器迁移至容器环境中。
2024-08-20 13:44:46 1049
原创 深入解析Java AQS:源码剖析与典型实现
通过深入剖析AQS的源码及其典型实现如Semaphore和,我们可以看到AQS如何通过一种通用的机制来实现各种复杂的同步需求。AQS 的设计极其灵活和高效,但其复杂性也要求开发者具备较深的并发编程知识。通过掌握AQS的工作原理,我们可以更好地应用和扩展Java的并发工具,更有效地解决实际中的并发问题。
2024-08-15 14:19:57 494
原创 Redis如何多规则限流和Redis防重复提交 | 重构篇
本文详细讲解了如何利用Redis的Zset结构实现多规则限流,并包含在线演示、源码解析及讲解。针对之前版本在实际项目中的局限性(如防重复提交和限流配置不符合单一职责原则、RateLimiter仅能针对单一前缀key进行限流等问题),本文对代码进行了重构,以更简洁、合理的方式解决这些问题,为开发者提供更优的限流策略。原文链接 :Redis如何多规则限流和防重复提交?
2024-08-11 13:48:36 374
原创 Sermant源码(二)如何无侵入接入配置中心
本章基于Sermant2.0.0,分析dynamic-config插件为springboot宿主应用无侵入接入配置中心。过程中涉及Sermant的两个核心通用能力(core):1.
2024-08-11 13:47:57 462
原创 Spring Boot实现jdbc访问impala
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。
2024-08-08 14:08:22 1054
原创 Java RMI技术详解与案例分析
首先,定义一个远程接口,它将被各个分行实现以提供银行服务。java代码解读复制代码最后V哥要提醒一下,在实际的银行系统中,当然还需要考虑安全性、事务性、持久性以及错误处理等多方面的因素,RMI的网络通信也需要在安全的网络环境下进行,以防止数据泄露或被篡改。你在应用中是怎么使用 RMI 的,欢迎关注威哥爱编程,一起交流一下哈。
2024-08-05 13:30:01 331
原创 从零学习一个基于Springboot的权限管理系统(三)用户管理
因为定义的是分页的响应结构,所以还需要在PageResult中添加一个构造。接收IPage类型的参数。并将前端所需要的total以及list封装给PageResult对象整理了一份Java面试题。包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记的【点击此处】即可免费获取java代码解读复制代码} }
2024-07-31 15:10:10 291
原创 全网最强Java面试题(全网最全、最细、附答案)
序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
2024-07-31 15:04:39 2168
原创 把java接口写在数据库里(groovy)
本文简单给大家提供一种思路,希望能对大家有所帮助,如有不当之处还请大家指正。本人之前在项目中用的比较多的是Groovyshell,执行的是一些代码片段,而GroovyClassLoader则可以加载整个脚本为Class,Groovy对于java开发者来说还是比较友好的,上手容易。那把接口写在数据库里吧,修改随改随用!本文使用了Groovy脚本,不了解的可以自行了解,直接上菜。5. 将刚才编写的.groovy文件内容存入数据库。
2024-07-30 13:27:13 493
原创 Java 中的 HashSet 指南
在本文中,我们将深入研究HashSet。它是最流行的Set实现之一,也是 Java Collections Framework 的一个组成部分。HashSet是Java中一个基于哈希表实现的集合类,它保证集合中元素的唯一性,不保证元素的顺序。以下将详细解释HashSet的原理。
2024-07-30 13:26:06 367
原创 吃透 JVM 诊断方法与工具使用
在实际工作中,我们还需要监控系统资源,比如监控CPU、内存、磁盘I/O和网络等系统资源的使用情况,以确定是否是系统资源限制导致的问题。平时也可以阅读和理解JVM规范,V 哥推荐一本 JAVA程序员人手一本的书《JAVA虚拟机规范》,强烈建议好好读一下哦。如果本文内容对你有帮助,麻烦一键三连加关注,程序员路上,我们一起搀扶前行。
2024-07-30 13:25:19 812
原创 开源路径规划引擎graphhopper安卓版源码调试记录(求求)
本文主要记录在运行graphhopper安卓版路径规划导航源码的步骤和遇到的问题。成功运行了程序,但是路劲规划一直不成功,问题一开始是服务地址,后来又是key的问题,在这个项目中涉及到了graphhopper、mapbox、mapilion的key。👍!😀。
2024-07-29 13:25:48 398 1
原创 一文讲透 Java Regex正则表达式!
正则表达式(regular expression,常简写为 regex、regexp 或 RE),又称规律表达式、正规表示式、正规表示法、规则运算式、常规表示法,是计算机科学概念,用简单字串来描述、匹配文中全部符合指定格式的字串,現在很多文本编辑器都支援用正则表达式搜寻、取代符合指定格式的字串。Java Regex是一种用于匹配字符串的模式,它可以用来验证、查找、替换或拆分字符串。Java中的正则表达式由Pattern Class:表示正则表达式的编译表示。
2024-07-29 13:24:09 1081
原创 功能强大,代码优雅:Java8真实案例Stream大数据集高效之旅(收藏版)
在Java 8中,Stream API 引入了一种新的处理集合数据的方式,使得我们可以以声明式的方式处理数据集合。以下是Stream API中一些关键函数式接口的详细业务案例。在这个模拟数据中,我们生成了100万个订单,每个订单有客户名称、订单ID和随机生成的金额(500到5500)。:一系列用户的姓名和地址。:一系列重复的字符串。:一系列用户的年龄。:一系列用户的姓名。:一系列员工的姓名。
2024-07-29 13:22:21 292
原创 这下,我终于弄明白了RocketMQ为什么这么快!
在传统IO中,如果想将用户缓存区的数据放到内核缓冲区,需要经过CPU拷贝mmap()sendfile()mmap()是将用户缓冲区和内核缓冲区共享,操作用户缓冲区就好像直接操作内核缓冲区,读写数据时不需要CPU拷贝Java中可以使用MappedByteBuffer这个API来达到操作内核缓冲区的效果sendfile()主要是用于文件传输,可以通过sendfile()将一个文件内容传输到另一个文件中或者是网络中。
2024-07-29 13:21:36 723
原创 CSDN最新JAVA面试题集
基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。
2024-07-29 13:16:35 1186
原创 全网最新Java面试题及答案整理汇总
单例模式:某个类的实例在 多线程环境下只会被创建一次出来。单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。饿汉式:线程安全,一开始就初始化。懒汉式:非线程安全,延迟初始化。篇幅限制下面就只能给大家展示小册部分内容了。包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记的【点击此处即可】即可免费获取双检锁:线程安全,延迟初始化。
2024-07-25 15:04:37 778
原创 【重写SpringFramework】第二章aop模块:本章小结(chapter 2-8)
在 Spring 框架中,IOC 和 AOP 共同构成了整个体系的基础。第一章介绍了 IOC 机制,本章关注的是 AOP 功能。相对于 beans 模块而言,aop 模块的功能更加单一,因此从代码层面来说,aop 模块有一条非常清晰的主线,分为三个阶段。准备工作:对 AOP 规范进行分析,得到的结论是,要实现 AOP 功能需要满足三要素,即增强、切面和代理。主体部分:实现了 AOP 的三要素。首先是增强,对Advice接口进行扩展,主要关注方法的拦截和调用。然后是切面,通过Advisor。
2024-07-25 15:04:07 885
原创 Android中SurfaceView和TextureView有什么区别?
和是 Android 应用开发中用于显示内容的两种常用视图,尤其是在需要呈现视频或其他图形内容时。理解它们的作用和区别对于在不同场景下选择合适的视图非常重要。
2024-07-25 15:02:33 564
原创 无限挂掉的tomcat生产事故
书接上回,查日志找不到关键信息后,只能通过控制变量法来处理了。最近突然发现一个很奇葩的BUG,在同事的一次离线服务升级后,过了几小时,运营反映系统访问异常,我一看tomcat自动关闭了,当时我还没知道事情的严重性.....明天早上系统又又挂了,我们就开始问题的追踪。打开tomcat/webapps 发现有两个文件夹,一个是正式的,一个是备份的,tomcat把两个都加载了,难道就是因为这个问题导致的?最后我使出最后的绝招,换了个tomcat版本,把jvm配置还原到以前的配置,重新打包上去,现在观察ing。
2024-07-25 15:02:03 586
原创 架构师手写代码:分享数据库原子性与一致性实现方案(不再背概念)
方法用于执行一个事务,它首先进行一致性检查,然后应用所有操作。展示了如何在内存中以编程方式实现原子性和一致性,但它并不是一个真正的数据库系统。原子性和一致性是数据库事务不可或缺的特性,它们共同维护了数据的完整性和可靠性。原子性指的是事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个点。如果事务中的某个操作失败,整个事务将被回滚到开始状态,就像这个事务从未执行过一样。一致性确保数据库从一个一致的状态转移到另一个一致的状态。在事务开始之前和提交之后,所有的数据都应满足预定义的完整性约束。
2024-07-25 15:01:12 812
原创 Java面试题合集(持续更新)
我们使用java编译命令就能将java源文件编译对应成字节码文件(.class),字节码文件是一种八位数据的二进制流文件,可以被JVM快速加载到内存中运行AQS全称abstractQueueSynchronizer,即抽象队列同步器,是一种锁机制,它是作为一个基础框架使用的,像Reentrantlock,countdownlatch都是基于AQS实现的AQS内部维护了一个先进先出的双向队列,队列中存储了排队的线程。
2024-07-25 14:56:09 1257
原创 最强Java面试题大全带答案
基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。
2024-07-24 13:31:57 4162
原创 必看!100道Java程序员面试题(含答案)!,积累总结
单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。
2024-07-24 13:28:50 831
原创 最新Java笔试题及答案,java高分面试指南
单个redis节点的并发能力是有限的,所以为了提高并发能力,我们需要搭建redis集群,就比如:主从复制。主从复制的流程主从复制主要分为:全量同步和增量同步。全量同步:在salve请求数据同步的时候会携带application Id和offset,如果master判断出applid和自己的不一样,就认为slave是第一次进行同步,所以会进行全量同步。
2024-07-24 13:27:48 1733
原创 Java面试题大全带答案
因为sleep() 是static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了sleep() 方法,线程虽然进入休眠,但是对象的机锁没有被释放,其他线程依然无法访问这个对象,这时就会引发问题,此类现象请注意。wait():wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程。比如list.iterator()
2024-07-24 13:24:48 721
原创 全网最新Java面试题及答案整理汇总
单例模式:某个类的实例在 多线程环境下只会被创建一次出来。单例模式有饿汉式单例模式、懒汉式单例模式和双检锁单例模式三种。饿汉式:线程安全,一开始就初始化。懒汉式:非线程安全,延迟初始化。篇幅限制下面就只能给大家展示小册部分内容了。包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记的【点击此处即可】即可免费获取双检锁:线程安全,延迟初始化。
2024-07-24 13:22:51 1115
原创 不懂这些,面试都不敢说自己熟悉Redis
下面这位就是Redis的创始人,他叫antirez,让我们Java开发者又要多学一门Redis的始作俑者。我们肯定很难想象Redis创始人竟然学的是是建筑专业,而当年antirez是为了帮网站管理员监控访问者的实时行为才开发的Redis。为啥antirez不用MySQL来开发?MySQL并不适用于实时应用程序,存储数据库需要磁盘读写,大量的数据操作会使网站速度过于缓慢。于是Redis的前身LLOOGG就这样诞生了,后期也发展为了Redis。大家好,我是南哥。
2024-07-23 20:11:25 848 1
原创 Java基本语法:Java注释和代码风格 系列②
本文详细介绍了Java中的注释和代码风格,包括单行注释、多行注释、文档注释、代码格式化规范、命名约定和代码组织等方面。通过遵循这些最佳实践,可以提高代码的可读性、可维护性和可扩展性。最后,通过一个综合详细的例子,展示了如何在实际项目中应用这些注释和代码风格。希望本文对你编写高质量的Java代码有所帮助。
2024-07-23 20:10:22 725
原创 面试题:如何解决缓存和数据库的一致性问题?
理论如同明灯照亮前行的道路,实践则是我们坚实的脚步。唯有将两者紧密结合,不断地练习和实践,我们才能在求知的旅程中稳步前行,收获真正的成长与进步。所以,一起行动起来,光看不练都是假把式。
2024-07-23 20:09:24 304
原创 图解RocketMQ之主题Topic详解
我们先来看看官方定义:主题是 RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。我的理解主题就是消息的分类,比如上一篇说到的鸡毛的餐厅中订单消息是一类主题消息,顾客下单的消息都往订单消息这个主题里面发,那么同样鸡鸡毛的朋友狗毛约他去打球,就属于打球主题消息,依此类推,不难发现,主题消息的分类其实是受业务所决定的,你要发什么业务消息最好单独是一个 Topic 主题,大家相互之间互不干扰。现如今垃圾都要做好干湿分类,消息可不能一个 topic 干到底哦。定义数据的分类隔离。
2024-07-23 20:08:37 937
原创 初识SpringBoot
在学习java之前就听闻SpringBoot的大名,不知道正在学习的小伙伴也是不是哈哈,这篇文章我们就从最最最简单的讲起,是关于SpingBoot 在web开发中的运用。
2024-07-23 19:52:54 861
原创 JAVA面试题大全(200+道题目)
一种事物的多种表现形态就是多态,比如定义一个类为动物,那么动物可以被子类继承,从而实现具体动物的方法。死锁是指两个或两个以上的进程在竞争资源的过程中造成的不可解堵塞。两个线程都在互相等待。java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能成为java的反射机制。序列化:将java对象转换成字节流的过程。反序列化:将字节流转换成java对象的过程。当java对象需要。
2024-07-23 19:30:27 996
原创 文件解析的终极工具:Apache Tika
是一个开源的、跨平台的库,用于检测、提取和解析各种类型文件的元数据。它支持多种文件格式,包括文档、图片、音频和视频。Tika是一个底层库,经常用于搜索引擎、内容管理系统、数据分析任务等领域,无缝地集成到其他应用或服务中以增强对文件内容处理的能力。是一个功能丰富的文档解析工具,专门用于提取和分析多种文件类型的内容。它广泛应用于搜索引擎的资料整理、内容管理系统的内容提取以及数据分析等领域。
2024-07-22 18:09:06 847
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人