java技术圈 为您找到相关结果 582

项目中途引入Mybatis-plus后报错:Caused by: java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory_杨四郎2018的博客

项目中途引入Mybatis-plus后报错:Caused by: java.lang.ClassNotFoundException: org.mybatis.logging.LoggerFactory 1、网上有提供解决办法1: 在引入mybatis-plus之前,是存在mybatis的包和pagehelper包的,把这两个注释掉就可以了。 分页就使用mybatis-plus自带的IPage。 org.springframework.data spring-data-redis 1.6.2.RELEASE redis.clients 阅读全文

博文 2020-11-02 07:13:08 博客园

hadoop中MapReduce多种join实现实例分析-蚂蚁

一、概述 对于RDBMS中的join操作大伙一定非常熟悉,写sql的时候要十分注意细节,稍有差池就会耗时巨久造成很大的性能瓶颈,而在Hadoop中使用MapReduce框架进行join的操作时同样耗时,但是由于hadoop的分布式设计理念的特殊性,因此对于这种join操作同样也具备了一定的特殊性。本文主要对MapReduce框架对表之间的join操作的几种实现方式进行详细分析,并且根据我在实际开发过程中遇到的实际例子来进行进一步的说明。二、实现原理1、在Reudce端进行连接。 在Reudce端进行连接是MapReduce框架进行表之间join操作最为常见的模式,其具体的实现原理如下:Map端的主要工作:为来自不同表(文件)的key/value对打标签以区别不同来源的记录。然后用连接字段作为...阅读全文

博文 2020-08-31 02:28:56 51CTO博客

主流数字证书有哪些格式?_SSL证书管理 SCM_常见问题_咨询类_华为云

主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。 Tomcat、Weblogic、JBoss等Web服务软件,一般使用Java提供的密码库。通过Java Development Kit(JDK)工具包中的Keytool工具,生成Java Keystore(JKS)格式的证书文件。Apache、Nginx等Web服务软件,一般使用OpenSSL工具提供的密码库,生成PEM、KEY、CRT等格式的证书文件。IBM的Web服务产品,如Websphere、IBM Http Server(IHS)等,一般使用IBM产品自带的iKeyman工具,生成KDB格式的证书文件。微软Windows Server中的Internet Information Services(IIS)服务,...阅读全文

博文 2021-09-08 02:29:12 support.huaweicloud.com

JDK 9学习笔记 - (2)能屈能伸的String

背景String作为JDK最核心的数据类型之一,非常有必要专门学习一下,重点关注这4个文件jdk/src/java.base/share/native/libjava/String.cjdk/src/java.base/share/classes/java/lang/String.javajdk/src/java.base/share/classes/java/lang/StringLatin1.javajdk/src/java.base/share/classes/java/lang/StringUTF16.java存储无论是何种语言的何种实现,String本质上都是字节序列,所有可能的字符加起来就构成了字符集,给字符集中每个字符一个序号就是字符编码,使用最广泛的就是Unicode了,它几...阅读全文

博文 2020-06-11 04:52:36 知乎

老大难的GC原理及调优,这下全说清楚了

概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生产系统出现的GC问题进行排查解决 阅读时长约30分钟,内容主要如下: GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等 CMS原理及调优 G1原理及调优 GC问题排查和解决思路 GC基础原理 1 GC调优目标 大多数情况下对 Java 程序进行GC调优, 主要关注两个目标:响应速度、吞吐量 响应速度(Responsiveness) 响应速度指程序或系统对一个请求的响应有多迅速。比如,用户订单查询响应时间,对响应速度要求很高的系统,较大的停顿时间是不可接受的。调优的重点是在短的时间内快速响应 吞吐量(Throughput) 吞吐量关注在一个特定时间段内应...阅读全文

博文 2020-07-31 03:38:28 掘金

Intellij-Idea远程调试

前言 线上(真-线上/测试环境)代码出了问题,总是要在本地复现,然后debug,这个过程是在是不太友好,而且线上的很多数据本地没有,经常耽误好久的时间来同步数据. 前文介绍过一种在运行时DEBUG及修改Java代码的方式,阿里开源java动态追踪工具 Arthas的使用.其主要针对的是线上修改代码及JVM实时查看. 但是有很多问题,我们更想要IDE的DEBUG功能,比如线上跑了NPE,本地没有办法复现因为可能是线上的数据问题,这时候就会想,如果可以在线上这里打个断点,就知道是谁为空了. 幸好Java是有远程DEBUG的支持的,而且Intellij-IDEA也实现了相关的功能,今天学习并且记录一下. 启动参数 首先在服务端使用JVM的-Xdebug参数启动Jar包. java -Xdebug ...阅读全文

博文 2021-01-26 02:49:11 Java代码

Java的BigDecimal如何解决浮点数精度问题_Just for Fun LA

如题,今天我们来看下java.math.BigDecimal是如何解决浮点数的精度问题的,在那之前当然得先了解下浮点数精度问题是什么问题了。下面我们先从IEEE 754说起。 IEEE 754 IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种异常状况(包括异常发生的时机与处理方式)。 下面我们就以双精度,也就是double类型,为例来看看浮点数的格式。 signexponentfraction1位11位52位...阅读全文

博文 2020-09-29 03:41:26 CSDN博客

Java8中的“菱形继承”问题_潇兮水寒的博客

Java中的“菱形继承”问题 什么是菱形继承Java代码场景一场景二 简单结论解决办法 什么是菱形继承 一张图说明。在C++中允许多继承,D类继承自B、C,而B、C有同一个父类A。那么这个时候调用say方法是否成功?答案是不能,编译器并不能判断这个say来自哪个父类。 #include using namespace std; class A{ public: void say(){ cout<<"Say Hello"<阅读全文

博文 2021-06-11 13:43:50 CSDN博客_java菱形继承

排序算法(六)

前言我们在上篇文章 排序算法(五)-双调排序 介绍了双调排序,今天我们来看一下另一种排序算法 —— TimSort。TimSort是Tim Peters发明的一种混合排序,最早是Python语言的内置排序算法。关于Python内置的TimSort描述可以查看该 文档。关于TimSort的理论基础,可以查看该篇论文 Optimistic Sorting and Information Theoretic Complexity,这篇论文论证了插入排序和归并排序合并后效率提高的可能性,即TimSort的理论基础。Java自Java 7 后加入TimSort,其实现参考了Python版本的实现,我们可以在JDK源码的util包下找到它,java.util.TimSort,这个class不是publi...阅读全文

博文 2021-08-18 12:35:11 TimSort | SakuraTears的博客

idea编译项目很慢

如果你正在使用 IntelliJ IDEA 编译 Java 项目,遇到编译速度缓慢的问题,以下是一些可能的原因和解决方法: 内存不足:检查你的电脑内存是否足够支持 IDEA 运行,并确保为 IDEA 分配了足够的内存。你可以编辑 IntelliJ IDEA 安装目录下的 bin 目录下的 idea64.exe.vmoptions 文件,将-Xms和-Xmx参数值增加一些。 插件过多:禁用不必要的插件,因为一些插件可能会导致 IDEA 编译速度变慢。 外部依赖库:检查你的项目是否引用了大量的外部依赖库,如果是,建议尝试减少依赖库的数量或者更换为较小的依赖库。 编译设置:检查你的编译设置是否正确。例如,你可以在“File” -> “Settings” -> “Build, Execution, ...阅读全文

Java工程师高薪训练营

download:Java工程师高薪训练营 public static boolean isWifiEnabled(Context context) { ConnectivityManager mgrConn = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); TelephonyManager mgrTel = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return ((mgrConn.getActiveNetworkInfo() != null && mgrConn .getAc...阅读全文

博文 2021-06-25 10:16:13 kakayin123

Spring中集成Groovy的四种方式_蓝天之枫

groovy是一种动态脚本语言,适用于一些可变、和规则配置性的需求,目前Spring提供ScriptSource接口,支持两种类型,一种是 ResourceScriptSource,另一种是 StaticScriptSource,但是有的场景我们需要把groovy代码放进DB中,所以我们需要扩展这个。 ResourceScriptSource:在 resources 下面写groovy类 StaticScriptSource:把groovy类代码放进XML里 DatabaseScriptSource:把groovy类代码放进数据库中 工程模块为: ResourceScriptSource groovy的pom groovy-all阅读全文

博文 2021-07-09 02:58:30 CSDN博客

Java NIO中,关于DirectBuffer,HeapBuffer的疑问?

1. DirectBuffer 属于堆外存,那应该还是属于用户内存,而不是内核内存?来自 ByteBuffer (Java Platform SE 8 )The contents of direct buffers may reside outside of the normal garbage-collected heap所以是否真的是堆外存并不是强制的,是依赖jvm实现的。回归正题:用户内存还是内核内存?首先,我们知道,每个进程是有独立的地址空间的,也就是说对于一个java进程来说,他只能看到自己的内存,他只能读写自己的内存。而内核其实是有上帝视角的,如早期的linux,内核是能看到并读写所有物理内存的(关于这一点,有兴趣的可以参看我的简写版linux的实现:https://github...阅读全文

博文 2021-08-28 11:12:10 知乎

Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖? - 江南一点雨

前两天被人问到这样一个问题: “松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?” 大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?今天松哥就和大家来聊一聊这个问题。 多了一个插件 Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用依赖,Spring Boot 打成的 jar 可以执行,但是不可以被其他的应用所依赖,即使强制依赖,也无法获取里边的类。但是可执行 jar 并不是 Spring Boot 独有的,Java 工程本身就可以打包成...阅读全文

博文 2020-05-29 09:15:39 博客园

JDWP 协议及实现 – IBM Developer

byte 1 byte byte 值。 boolean 1 byte 布尔值,0 表示假,非零表示真。 int 4 byte 4 字节有符号整数。 long 8 byte 8 字节有符号整数。 objectID 依据 target Java 虚拟机而定,最大 8 byte Target Java 虚拟机中对象(object)的唯一 ID。这个值在整个 JDWP 的会话中不会被重用,始终指向同一个对象,即使该对象已经被 GC 回收(引用被回收的对象将返回 INVALID_OBJECT 错误。 Tagged-objectID objectID 的长度加 1 第一个 byte 表示对象的类型,比如,整型,字符串,类等等。紧接着是一个 objectID。 threadID 同 objectID 的长...阅读全文

博文 2020-08-13 06:42:57 developer.ibm.com

什么是FastJson中AutoType反序列化漏洞?_hosaos的博客

文章目录 频繁出现的反序列化漏洞parse()及parseObject()AutoType及安全校验AutoType安全校验AutoType黑名单机制SafeMode安全机制攻击思路 反序列化攻击模拟TemplatesImpl攻击调用链路攻击类Translet生成构造攻击JSON串攻击模拟 写在最后 频繁出现的反序列化漏洞 最近公司的小伙伴们收到了一波安全工单,因为FastJson存在高危漏洞,要求将FastJson版本号升级到1.2.69及以上 漏洞描述如下 在Fastjson<=1.2.68的版本中,通过新的Gadgets链绕过autoType开关,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,实现了反序列化漏洞利用的远程代码执行效果,同时,此次修复补丁也补充了auto...阅读全文

博文 2022-05-23 08:07:38 CSDN博客_fastjson的autotype属性

NullPointerException 没有堆栈 - cdfive

周五在公司搭好的ELK上查看日志,组长让看看其中NullPointerException出现很多的原因。 通过NullPointerException搜索,点看其中一个查看,发现异常的信息就一行java.lang.NullPointerException,并没有堆栈信息。 看了几个都没有,然后翻代码看记日志的地方,调用了日志基础工程的一个方法,异常对象通过封装传了进去,其中异常信息属性取值用的是Throwables.getStackTraceAsString(e),这是guava包提供的方法,点进去看是取了所有堆栈信息的。 那么问题来了,为什么堆栈信息没显示出来呢? 百度了下,关键字:NullPointerException 没有堆栈 找到类似的问题,发现是JVM虚拟机对异常信息进行了优化,...阅读全文

博文 2021-09-24 03:42:35 博客园

Cglib及其基本使用 - 五月的仓颉

前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+InvocationHandler这套我已经很熟了,想着如果把Cglib研究研究,应该看AOP源码的时候会更快一些,因此本文就研究一下Cglib是什么、如何一些基本的使用、底层实现原理。 Cglib是什么 Cglib是一个强大的、高性能的代码生成包,它广泛被许多AOP框架使用,为他们提供方法的拦截。下图是我网上找到的一张Cglib与一些框架和语言的关系: 对此图总结一下: 最底层的是字节码Byteco...阅读全文

博文 2021-06-12 14:36:43 博客园

Netty 中的异步编程 Future 和 Promise - rickiyang

Netty 中大量 I/O 操作都是异步执行,本篇博文来聊聊 Netty 中的异步编程。 Java Future 提供的异步模型 JDK 5 引入了 Future 模式。Future 接口是 Java 多线程 Future 模式的实现,在 java.util.concurrent包中,可以来进行异步计算。 对于异步编程,我们想要的实现是:提交一个任务,在任务执行期间提交者可以做别的事情,这个任务是在异步执行的,当任务执行完毕通知提交者任务完成获取结果。 那么在 Future 中是怎么实现的呢?我们先看接口定义: public interface Future { boolean cancel(boolean mayInterruptIfRunning); boolean isCance...阅读全文

博文 2021-08-29 03:35:05 博客园

Python一键转Jar包,Java调用Python新姿势! - 轩辕之风

粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我_),今天这篇文章换换口味,正经的来写写技术文。言归正传,咱们开始吧! 本文结构: - 需求背景 - 进击的 Python - Java 和 Python - 给 Python 加速 - 寻找方向 - Jython? - Python->Native 代码 - 整体思路 - 实际动手 - 自动化 - 关键问题 - import 的问题 - Python GIL 问题 - 测试效果 - 总结 需求背景 进击的 Python 随着人工智能的兴起,Python 这门曾经小众的编程语言可谓是焕发了第二春。 以 tensorflow、pytorch 等为主的机器学习/深度学习的开发框架大行其道,助推了 python 这门曾经以爬虫见长(py...阅读全文

博文 2020-10-27 08:05:48 博客园

入侵JVM? Java Agent原理浅析和实践

在平时的开发中,我们不可避免的会使用到Debug工具,JVM作为一个单独的进程,我们使用的Debug工具可以获取JVM运行时的相关的信息,查看变量值,甚至加入断点控制,还有我们平时使用JDK自带的JMAP、JSTACK等工具,可以在JVM运行时动态的dump内存、查询线程信息,甚至一些第三方的工具,比如说京东内部使用的JEX、pfinder,阿里巴巴的Arthas,优秀的开源的框架skywalking等等,也可以做到这些,那么这些工具究竟是通过什么技术手段来实现对JVM的监控和动态修改呢?本文会进行介绍和简单的原理分析,同时附带一些样例代码来进行分析。从JVMTI说起JVM在设计之初,就考虑到了虚拟机状态的监控、debug、线程和内存分析等功能,在JDK5.0之前,JVM规范就定义了JVMP...阅读全文

博文 2020-07-14 02:26:30 mp.weixin.qq.com

利用转换流将GBK格式文件以UTF-8输出_Java_十里の清风

utf-8格式如何转化为gbk格式 02-27 阅读数 6225 utf-8格式如何转化为gbk格式 今天在编码的时候由于存储的数据和取得数据格式不一致,... 博文 来自: HY845638534的博客 解决中文字符乱码问题,如何将gbk格式转换utf-8格式 04-06 阅读数 2104 中文乱码的原因是因为编码格式是gbk的,而显示的时候是utf-8格式的,所以需要将其utf-8格式,才能正常显示出来。1.gbk生成utf8程序需要经过两次转化。 1.gbk->uni... 博文 来自: u012681014的专栏 Java练习>转换流>>将GBK编码的文本文件,转换为UTF-8编码的文本文件 08-13 阅读数 1312 练习:转换文件编码。题目:将GBK编码的文本文件,转换为...阅读全文

博文 2020-04-26 06:30:21 CSDN博客

由阿里巴巴Java开发规约HashMap条目引发的故事-云栖社区

大热的《阿里巴巴Java开发规约》中有提到: 【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可: public HashMap (int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); } 看到代码规约这一条的时候,我觉得是不是有点太 low 了,身为开发,大家都知道 HashMap 的原理。 什么?这个要通过插件监测?没必要吧,哪个开发不知道默认大小,何时 resize 啊,然后我和孤尽打赌随机咨询几位同学以下几个问题: HashMap 默认bucket数组多大? 如果new HashMap<>(19),bucket数组...阅读全文

博文 2020-07-14 09:57:56 阿里云

为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

BigDecimal,相信对于很多人来说都不陌生,很多人都知道他的用法,这是一种java.math包中提供的一种可以用来进行精确运算的类型。 很多人都知道,在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal。 所以,很多支付、电商、金融等业务中,BigDecimal的使用非常频繁。而且不得不说这是一个非常好用的类,其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。 除了需要用BigDecimal表示数字和进行数字运算以外,代码中还经常需要对于数字进行相等判断。 关于这个知识点,在最新版的《阿里巴巴Java开发手册》中也有说明: 这背后的思考是什么呢? 我在之前的CodeReview中,看到过以下这样的低级...阅读全文

博文 2021-05-26 02:44:44 juejin.cn

java反射机制执行Bean中的方法_W_DongQiang的博客

步骤: 一:获取到bean的class实例,方式分两种, 1.通过spring注入的:通过Spring上下文获取到需要代理执行的class实例 Class selectsClass = SpringContextUtils.getBean("beanName").getClass(); 2.没使用spring注入的:通过Class.forName初始化加载bean Class selectsClass= Class.forName(TableSelectsUtil.class.getName()); 二:通过方法名从class实例中获取方法实例 Method method = selectsClass.getMethod("getAll", new Class[] {String.class...阅读全文

博文 2021-06-07 12:59:55 CSDN博客

Java阻塞延迟队列DelayQueue原理及使用_Hopefully Sky的博客

阻塞队列 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,从队列中获取元素的消费者线程会一直等待直到队列变为非空。当队列满时,向队列中放置元素的生产者线程会等待直到队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 在阻塞队列不可用时,这两个附加操作提供了4种处理方式: 抛出异常:当队列满时,插入元素会抛出IllegalStateException;返回特殊值:offer()是入队方法,当插入成功时返回true,插入失败返回false;poll()是出队方法,当出队成功时返回元素的值,队列为空时返回null一直阻塞:当队列满时,阻塞执行插入方法的线程;当队列空时,阻塞执行出队方法的...阅读全文

博文 2021-09-24 03:45:20 CSDN博客_java 延迟队列

Flink的Task与SubTask理解_黄土高坡上的独孤前辈的博客

文章目录 官网参考1.任务2.通过flinkUI可以看到 有几个框就是几个Task3.程序模型4.流的分类5.Operator Chains6.Task Slot (TM = JVM)7.获取整个算子的执行计划8.flink通过webUI的Jar包传到哪里去了 java.io.tmpdir=/tmp 官网参考 # https://ci.apache.org/projects/flink/flink-docs-release- 1.11/concepts/flink-architecture.html 1.任务 Task:任务 是一个阶段多个相同功能的subtask的集合 ==》 对比于spark中的taskSet SubTask:子任务 subTask是Flink中任务的最小单元,subta...阅读全文

博文 2022-08-04 07:00:13 CSDN博客_flink subtask

Filter、FilterChain、FilterConfig 介绍

一、Filter 的基本工作原理 1、Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由 Servlet 容器进行调用和执行的。 2、当在 web.xml 注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,它可以决定是否将请求继续传递给 Servlet 程序,以及对请求和响应消息是否进行修改。 3、当 Servlet 容器开始调用某个 Servlet 程序时,如果发现已经注册了一个 Filter 程序来对该 Servlet 进行拦截,那么容器不再直接调用 Servlet 的 service 方法,而是调用 Filter 的 doFilter 方法,再由 doFilter 方法决定是否去激活 service 方法。 4、但在 Filt...阅读全文

博文 2020-06-29 03:52:37 菜鸟教程

Netty之ByteBuf零拷贝

Netty之ByteBuf零拷贝我们先来看下Zero-copy的定义: "Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another. This is frequently used to save CPU cycles and memory bandwidth when transmitting a file over a network. 所谓的 Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 少了一次内存的拷贝, 减少了cpu...阅读全文

博文 2021-08-28 11:10:37 简书

Java JVM 参数设置大全

首页 > 基础教程 > 基础知识 > JDK&JRE&JVM Java JVM 参数设置大全 JVM参数设置说明 参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 -Xmn 年轻代大小(1.4or lator) 注意:此处的大小是(eden+ 2 survivor space).与jmap -heap中显示的New gen是不同的。 整个堆大小=年轻代大小 + 年老代大小 + 持久代...阅读全文

博文 2020-07-28 06:53:23 www.51gjie.com

几款符合 OpenTracing 规范的分布式链路追踪组件介绍与选型 - 腾讯云开发者社区

分布式链路追踪组件是在分布式架构中很重要的组件,用于排查分布式系统所遇到的问题。市面上有多款流行的分布式链路追踪组件,包括 Zipkin、Jaeger、Pinpoint 和 Skywalking 等,我们来了解下这几款组件的相关特性,以帮助我们选型。 分布式链路追踪规范:OpenTracingTracing 是在上世纪 90 年代就已出现的技术,但真正让该领域流行起来的还是源于 Google 的一篇 Dapper 论文。分布式追踪系统发展很快,种类繁多,但无论哪种组件,其核心步骤一般有 3 步:代码埋点、数据存储和查询展示,如下图所示为链路追踪组件的组成。 链路追踪组件的组成目前流行的链路追踪组件有 Jaeger、Zipkin、Skywalking 和 Pinpoint 等。在数据采集过程中...阅读全文

博文 2022-12-23 09:15:09 腾讯云

在Java中谈尾递归--尾递归和垃圾回收的比较 - 赛艇队长

我不是故意在JAVA中谈尾递归的,因为在JAVA中谈尾递归真的是要绕好几个弯,只是我确实只有JAVA学得比较好,虽然确实C是在学校学过还考了90+,真学得没自学的JAVA好 不过也是因为要绕几个弯,所以才会有有意思的东西可写,另外还有我发现把尾递归如果跟JAVA中的GC比对一下,也颇有一些妙处(发现还没有人特地比较过) (不过后来边写边整理思路,写出来又是另一个样子了) 转载请注明:博客园-阁刚广志,地址:http://www.cnblogs.com/bellkosmos/p/5280619.html 一、首先我们讲讲递归 递归的本质是,某个方法中调用了自身。本质还是调用一个方法,只是这个方法正好是自身而已 递归因为是在自身中调用自身,所以会带来以下三个显著特点: 调用的是同一个方法 因为1...阅读全文

博文 2022-07-27 06:09:23 博客园

deleted

Flink是下一代大数据计算平台,可处理流计算和批量计算。《Flink-1.9流计算开发:十三、min、minBy、max、maxBy函数》cosmozhu写的本系列文章的第十三篇。通过简单的DEMO来演示min、minBy、max、maxBy函数执行的效果 。需求本篇文章我们来区分min(max)与minBy(maxBy)之间的区别,下面案例是每10秒计算一次最近1分钟的最小值订单。解决方案 public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); ...阅读全文

博文 2021-10-11 11:48:10 腾讯云

借用Arthas分析maven非包版本冲突导致找不到类问题

背景: 微服务应用xxx.jar依赖netty-all-4.1.25Final,项目中使用通信工具async-http-client-2.0.31内置耦合了io.netty的几个同包名同类名的类;Tomcat应用运行时报:java.lang.NoSuchMethodError: io.netty.channel.DefaultChannelId.newInstance()Lio/netty/channel/DefaultChannelId;。But netty-all包中是存在DefaultChannelId类的,显然发生冲突了(该类加载的地方并非来自于netty-all-4.1.25Final.jar==>后面分析类来源)微服务应用必须使用高版本的netty,固只能考虑升级http-cli...阅读全文

博文 2023-09-13 16:34:22 CSDN博客

Netty 权威指南笔记(二):Java NIO 和 Netty 对比_albon arith

Netty 权威指南笔记二Java NIO 和 Netty 对比 Java NIO 开发Netty 开发 示例程序 Netty 权威指南笔记(二):Java NIO 和 Netty 对比 Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? API 使用简单,开发门槛低。功能强大,预置多种编解码功能,支持多种主流协议。定制能力强,可以通过 ChannelHandler 对通信框架灵活扩展。性能高。成熟稳定,社区活跃,已经修复了 Java NIO 所有的 Bug。经历了大规模商业应用的考验,质量有保证。 Java NIO 开发 我们看一看在 笔记(一)里面的 Jav...阅读全文

博文 2021-08-27 08:12:00 CSDN博客

JAVA8 之 Lambda 表达式与方法引用(二) - 当年明月123

在上一章我们介绍了函数式编程的概念和函数式接口。Lambda 表达式就是函数式编程的具体体现,它需要借助函数式接口才能应用在 Java 语言中。 定义 在编程语言中,lambda 表达式是一种用于指定匿名函数或者闭包的运算符。Lambda 可以很清晰地表达一个匿名函数,可以被传递。有了 Lambda 表达式之后,Lambda 表达式为 Java 添加了缺失的函数式编程特性,使我们能将函数当作一等公民看待。 在将函数作为一等公民的语言中,Lambda 表达式的类型是函数。但在 Java 中,Lambda 表达式是对象,他们必须依附于一类特别的对象类型-函数式接口,因为 Java 要保持向后兼容。 Java 的 Lambda 表达式是一种匿名函数,它是没有声明的方法,即没有访问修饰符,返回值声明...阅读全文

博文 2020-06-09 10:50:30 博客园

深入理解JDK动态代理机制

深入理解JDK动态代理机制本文是基于jdk1.8来对动态代理的底层机制进行探究的 Java中代理的实现一般分为三种:JDK静态代理、JDK动态代理以及CGLIB动态代理。在Spring的AOP实现中,主要应用了JDK动态代理以及CGLIB动态代理。但是本文着重介绍JDK动态代理机制,CGLIB动态代理后面会接着探究。 代理一般实现的模式为JDK静态代理:创建一个接口,然后创建被代理的类实现该接口并且实现该接口中的抽象方法。之后再创建一个代理类,同时使其也实现这个接口。在代理类中持有一个被代理对象的引用,而后在代理类方法中调用该对象的方法。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持...阅读全文

博文 2021-06-12 14:15:56 简书

某课网体系课-Java工程师2022版网盘下载

download:百度网盘2022全新升级,综合就业率常年第一,王牌编程语言0基础入门,高效掌握Java工程师所需能力,冲击大厂高薪一课学懂学透,给你更高的就业起点,更好的就业终点内容过“硬”紧跟市场用人标准聚焦主流技术企业级开发能力每年升级完善讲师过“硬”只要大厂经历讲师2年+开发经验助教“大师”带“小白”你的起点就是“BAT”就业只是起点,我们的目标是高薪就业,稳定就业,更为你长久的职业生涯赋能一套经过时间的考验、无数学生的验证,不断打磨升级的精品课...阅读全文

大家都说 Java 反射效率低,你知道原因在哪里么

【这是 ZY 第 17 篇原创技术文章】 预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。 但是反射的效率到底低多少?反射效率低的原因在哪里? 这篇文章就来探索一下这些问题。 由于本机上安装的是 openjdk 12,所以这里就使用 openjdk 12 源码进行分析。 我们先看结论,然后分析一下 Java 反射的原理,过程中大家可以根据结论,对源码做一些思考,然后再根据原理中的一些实现,看看 Java 反射效率低的原因。 零、先放结论 Java 反射效率低主要原因...阅读全文

博文 2021-06-11 13:40:17 juejin.cn

深入剖析Linux IO原理和几种零拷贝机制的实现

前言零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。零拷贝机制可以减少数据在内核缓冲区和用户进程缓冲区之间反复的 I/O 拷贝操作。零拷贝机制可以减少用户进程地址空间和内核地址空间之间因为上下文切换而带来的 CPU 开销。正文1. 物理内存和虚拟内存由于操作系统的进程与进程之间是共享 CPU 和内存资源的,因此需要一套完善的内存管理机制防止进程之间内存泄漏的问题。为了更...阅读全文

博文 2021-08-17 04:10:56 知乎