Java 日看一类(53)之IO包中的SerialCallbackContext类

(学习笔记)机器人自主导航从零开始第四步———Rviz、Gazebo、Meshlab的安装 一、Rviz的安装 Rviz是一个 阅读详情

该类是内部类,无法在包外引用,且该类为final,无法被继承

该类无引入包和继承类




该类的类头注释如下:

/**
 * Context during upcalls from object stream to class-defined
 * readObject/writeObject methods.
 * Holds object currently being deserialized and descriptor for current class.
 *
 * This context keeps track of the thread it was constructed on, and allows
 * only a single call of defaultReadObject, readFields, defaultWriteObject
 * or writeFields which must be invoked on the same thread before the class's
 * readObject/writeObject method has returned.
 * If not set to the current thread, the getObj method throws NotActiveException.
 */

大意如下:

从对象流到类上下文定义的readObject和writeObject方法会调用该类

存储当前被反序列化的类和该类的描述符

这个上下文跟踪它构建的线程,并允许只调用defaultReadObject,readFields,defaultWriteObject或writeFields,它们必须在类之前在同一个线程上调用 readObject / writeObject方法已经返回

如果没设置当前线程,getOj方法会抛出NotActiveException



该类含有如下的成员变量:

被操作的Object:

private final Object obj;

内含的对象流类:

private final ObjectStreamClass desc;

当前操作线程

private Thread thread;



该类含有如下的成员方法:

构造函数(指定操作类和操作流类

public SerialCallbackContext(Object obj, ObjectStreamClass desc) {
    this.obj = obj;
    this.desc = desc;
    this.thread = Thread.currentThread();
}

获取当前操作对象

public Object getObj() throws NotActiveException {
    checkAndSetUsed();
    return obj;
}

获取当前对象流类描述符

public ObjectStreamClass getDesc() {
    return desc;
}

检测当前操作线程可用性

public void check() throws NotActiveException {
    if (thread != null && thread != Thread.currentThread()) {//仅当当前线程不为空切非当前操作线程时抛出异常
        throw new NotActiveException(
            "expected thread: " + thread + ", but got: " + Thread.currentThread());
    }
}

检测当前线程是否为当前操作线程,如果是则置空,否则抛异常

private void checkAndSetUsed() throws NotActiveException {
    if (thread != Thread.currentThread()) {
         throw new NotActiveException(
          "not in readObject invocation or fields already read");
    }
    thread = null;
}

将当前操作线程置空

public void setUsed() {
    thread = null;
}


该类主要用于序列化操作时对对象,对象类的记录,我们编程无法调用该类,看看即可

022、Conv-BN-SiLU 基础卷积块:构造函数参数计算,前向传播的 PyTorch 逐行实现 本文详细解析了Conv-BN-SiLU卷积块的实现细节与注意事项。作者从调试经历出发,指出bias参数冗余会导致数值不稳定,强调卷积层应设置bias=False。文章对比了SiLU与ReLU的特性差异,逐行分析了构造函数参数计算(包括自动填充、分组卷积等)和前向传播过程,特别讲解了BN层与SiLU激活的数值特性。最后分享了三个实践中的常见问题:BN的momentum设置、SiLU输出范围的影响,以及分组卷积的通道对齐要求,并提供了卷积与BN融合的推理优化技巧。全文聚焦实际工程实现中的关键细节,具有较强实操指 阅读详情

相关推荐

攻克JESD204B多ADC同步:从时钟对齐到数据对齐的实战解析

本文深入解析了JESD204B多ADC同步的系统性挑战与实战解决方案。从确保设备时钟同源、精确捕获SYSREF信号,到管理接收端弹性缓冲区与释放点,文章提供了从时钟对齐到数据对齐的完整调试路径与排查清单,是攻克高速数据采集系统中多片ADC同步难题的实用指南。

weixin_29231725的博客 197

Cordova中使用JS调用JAVA,并进行回调,判断手机位置信息是否打开,并将结果进行反馈

cordova判断手机位置信息是否打开,并将结果进行反馈 简要描述 JS调用java方法,并进行回调 配置文件的具体方法 需要配置的内容如下(举例) 1.在html页面调用JS windows.geoJslocation.getLocation() windows.geoJslocation 需要与 cordova_plugins.js 中的 clobbers 下的命名一致; 2.定义JS调用java方法 cordova.define("cordova-plugin-geolocation.loca

就是不掉头发 40万+

Windows-Anaconda3+TensorFlow安装教程

测试环境:win10-64位和win7-64位 (系统必须是64位,因为TensorFlow目前只支持64位) 一、安装Anaconda3 1.下载Anaconda3 Anaconda官网链接:link 这里我们选择Windows版本,python3.6-version-64位,如下图所示。 2.下载完成之后,点击安装Anaconda3 注意:安装过程中要选择添加环境变量,如图 待安装完成...

DoctorCuiLab的博客 3089

Android Cordova callbackContext 实现持续监听

Android Cordova callbackContext 实现持续监听

breaktt的博客 759

从零开始开发AI Agent:基于大模型的智能体实战指南

### 摘要 本文介绍了AI Agent的开发全流程,从基础概念到实际部署,涵盖大模型集成、工具调用和记忆系统构建等核心技术。通过电商客服案例展示实战应用,并提供调试优化与部署方案,最后展望了AI Agent的未来发展方向,帮助开发者快速掌握智能体开发技能。

ghs_gss的博客 4868

SAP-ABAP:接口多继承与复合接口设计:复杂业务场景下的能力组合实现方案

本文介绍了ABAP中通过接口多继承与复合接口设计实现能力组合的方案。文章首先辨析了类实现多个接口与接口继承接口的核心概念,指出ABAP虽不支持类多继承,但可通过这两种机制灵活组合能力。随后详细讲解了类实现多个接口的语法规则与三种调用方式,并给出了五个基础能力接口的设计示例(日志记录、权限校验、数据导出、消息通知、格式转换)。作者通过对比单继承与接口多重实现的差异,强调后者在解耦和扩展性上的优势,为复杂业务场景下的能力组合提供了实用解决方案。

baidu_35680696的博客 248

蓝牙CC2541的串口通讯

协议栈版本是CC254x-1.3.2 TI吧串口线管的东西封装在协议栈的一个NPI的文件夹中npi.cvoid NPI_InitTransport( npiCBack_t npiCBack )//初始化串口通讯 { halUARTCfg_t uartConfig; // configure UART uartConfig.configured = TRUE; u

u013568040的博客 2625

大语言模型在金融风险预警中的推理应用探索

金融行业一直面临着各种风险,如信用风险、市场风险、操作风险等。准确及时的风险预警对于金融机构的稳定运营和投资者的利益保护至关重要。传统的金融风险预警方法主要基于结构化数据和统计模型,虽然在一定程度上能够识别风险,但对于非结构化数据的处理能力有限,难以捕捉到复杂的风险因素和潜在的风险趋势。大语言模型作为自然语言处理领域的重要突破,具有强大的语言理解和生成能力,能够处理各种形式的文本数据。

AI天才研究院 1169

Java序列化与反序列化(二)源码分析

Java序列化与反序列化(二)源码分析

weixin_45734473的博客 934

Transformer实战(33)——高效自注意力机制

在本节中,我们学习了如何在硬件资源受限的情况下减轻运行大模型的负担,介绍了高效的稀疏 Transformer 模型,通过近似技术(如 Linformer、BigBird 和 Performer) 用稀疏矩阵替代全自注意力矩阵。并观察它们在各种基准测试中的表现,例如计算复杂度和内存复杂度。结果表明,这些方法可以在不牺牲性能的情况下将平方级复杂度降低到线性复杂度。

盼小辉丶的博客 3098

mapbox 从入门到精通 - 目录

欢迎大家来到gis分享者的《mapbox 从入门到精通》专栏。博主列出学习大纲,如果有什么问题,欢迎留言。

我哎GIS博客 5851

【BLE】CC2541之串口收发

本文介绍如何在SimpleBLEPeripheral工程中,使用串口

feilusia的博客 2万+

华为OD机试新系统真题 【LLM推理批次最大化】

华为OD机试 新系统真题【LLM推理批次最大化】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【LLM推理批次最大化】多语言题解。

qq_45776114的博客 573

开发Cordova插件如何保证callbackContext的活性

1、场景 开发一个cordova插件的时候,可能会遇到一个特别的action,需要调用后把java层获得的值多次返回到上端JS中。但是cordova默认是调用一次callbackContext.error或者success就会不再对上端JS继续传输数据 2、问题分析 查看源码后得知 cordova做了这些操作: 1. java 层通过 callbackContext 将收集到的...

aowoWolf的博客 2882

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蓝牙串口透传-从机发送与接收(整理)

1、从机通过串口发送数据给主机(Notification:character4)//simpleBLEPeripheral.c //串口回调函数 static void NpiSerialCallback(uint8 port,uint8 events) { (void)port; uint8 buf[128]; int i ; for(i=6000;i>0;i--)

mengbinaaa的博客 6203

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

协议栈相关实验之 SerialApp实验 详解

类 |字号 订阅 组网流程图如下:      第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Stack  由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统  int main( void )

海纳百川 8312

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

串口透传(SerialApp)的数据发送过程

一、串口终端1的数据,如何被节点1所接收,并且发送出去的? 串口数据是由HAL层来负责的,让我们从主循环 (osal_start_system) 的Hal_ProcessPoll函数找下去 ,Hal_ProcessPoll ==> HalUARTPoll ==> HalUARTPollDMA。在这个 HalUARTPollDMA 函数里最后有这样一句话:dmaCfg.uartCB(HAL_U

al86866365的专栏 8201

使用jmap查看堆和对象的信息

jmap概述jmap工具提供了一系列有用的选项来查看堆的使用情况和新生代、老年代中对象的情况。 通过制定 -heap选项和运行java应用的jvm进程的pid(获取java应用的pid,可以使用 jps工具。),就能输出响应进程的新生代和老年代的情况。使用jmap输出堆的信息C:\Users\JavaMaster>jmap -heap 14584 jmap -heap 14584 Attachi

渐入佳境Coder 2万+

Android Cordova 插件开发之编写自定义插件

前言本文适合Android+web的复合型人才,因为cordova本身就是混合开发,所以在Android开发的基础上,还要懂web相关技术(HTML+CSS+JS),但是也有例外,比如我,只需负责Android方面,web方面的交由其他web组人员开发。虽然,web略懂一点,但我主要还是搞Android开发的。编写自定义插件类本节的内容是,自定义一个dialog插件,供web调用,显示系统弹窗。

画虎烂的专栏 2万+

c#线程问题(2)

表示要在新上下文中调用的方法。public delegate void ContextCallback(Object state) 参数 state类型: System. Object一个对象,包含回调方法在每次执行时要使用的信息。 ContextCallback 由 ExecutionContext.Run 和 SecurityContext.Run 方法使用。ContextCallb...

weixin_34249678的博客 95

鸿蒙NAPI 异步回调使用callback方式示例

cpp代码index.d.tsindex.ets。

weixin_48091641的博客 1616

java程序员工作中遇到的问题解决记录

1.maven项目启动不成功,找不到指定mapper 在启动类里没有配@MapperScan 2.maven项目启动成功,但不能访问指定页面 pom.xml里缺少依赖 3.html中引入react.js文件不成功,显示antd is not defined antd版本不对 4.python中的换行与不换行 换行实现:print(‘’) 单引号里写要输出的内容 不换行实现:python (’’,e...

weixin_44466323的博客 1万+

java readobject源码解读和反序列化分析

首先看java.io.readobject函数: public final Object readObject() throws IOException, ClassNotFoundException { if (enableOverride) { return readObjectOverride(); } // if nested read, passHandle contains handle of en

一个码农的笔记 4万+

java序列化学生系统_java序列化

public final void writeObject(Object obj) throws IOException { //在序列化是调用这个方法if(enableOverride) {writeObjectOverride(obj);return;}try{writeObject0(obj,false); //调用这个方法进行序列化} catch(IOException ex) ...

weixin_36255718的博客 153

Java序列化与反序列化详解后续

Java Socket编程实例:[url]http://donald-draper.iteye.com/blog/2356695[/url] java Socket读写缓存区Writer和Reader:[url]http://donald-draper.iteye.com/blog/2356885[/url] Java NIO ByteBuffer详解:[url]http://donald-d...

Donald_Draper 931

21.Java序列化【草案三】

(从09年回到重庆过后,就一直在工作,时间长了惰性就慢慢起来了,公司的项目从09年忙到了现在,一直没有时间来梳理自己的东西,优快云的Blog似乎都荒废了,不知道现在还能否坚持把Blog完成,希望有一个新的开始吧!如果读者有问题还是可直接发邮件到silentbalanceyh@126.com,我也仅仅只是想把看的、写的、学的东西总结起来,让自己有个比较完整的学习记录。本文主要针对Java的序列化相

风中的索莉逖亚 5749
上一篇: Java 日看一类(52)之IO包中的SequenceInputStream流
下一篇: Java 日看一类(54)之IO包中的Serializable接口
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值