openlaslzo开发之进阶篇-理解绑定

为Codex添加任务完成提示音:提升开发效率的实用技巧 在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通 阅读详情
RIA除了在界面效果吸引人外,功能是最主要的,让用户在互动操作中体验到简化的操作流程,丰富而强大的应用程序体验,这才是RIA的魅力。
    openlazlo的编程语言lzx就可以满足这种要求,而且开发人员无需编写过多的代码,就可以完成许多数据操作,这就是本节所介绍的,lzx中最有用的功能:绑定。

    openlaszlo的绑定功能分为:

  •  视图绑定
  •  数据绑定

    按绑定方式划分又分为:

  •    一次绑定
  •    始终绑定
  •    运行时绑定

    下面就介绍openlaszlo的绑定特性。

1. 视图绑定

   视图绑定是界面布局中比较常用的方法,一般情况下,所有的视图元素都可以用绝对位置来指定,但是这样有两个缺点,一个是修改布局中某一个视图的位置,就需要修改和它相邻的或者和它层叠的视图位置;另一个缺点是实现某个视图运动动画时,需要指定其相关视图的运动。
   这样的后果就是需要编写额外的代码来实现,增加了劳动量,也没有充分体现lzx语言的力量。我们本可以用更简单的方式做。下面看几个小例子:

 1.1 简单绑定实例

<!------------------------------------------>
<!--bindingview_1.lzx-->
<!------------------------------------------>
    <canvas title="视图绑定例子" width="800" height="600" debug="true">
       <view name="left" x="20" y="20" width="100" height="100" bgcolor="#FF0000"/>
       <view name="right" x="140" y="20" width="100" height="100" bgcolor="#00FF00"/>
       <view name="bindtoleft" x="$once{parent.left.x}"
             y="$once{parent.left.y+parent.left.height+20}"
             width="100" height="100" bgcolor="#0000FF"/>
    </canvas> 

访问地址:http://www.openria.cn/lps-3.0/my-apps/bindingview_1.lzx?lzt=html

  这个例子是lzx的简单布局实例,视图left和right都是绝对布局,而视图bindtoleft将自己的位置绑定到了

left,使用的语法是:
   x="$once{parent.left.x}"
   y="$once{parent.left.y+parent.left.height+20}"

   $表示绑定符,once表示一次绑定,如果始终绑定就不用写once了。大括弧{}加里面内容构成一个表达式用来表示当前视图的属性由表达式决定。
   将这两句话翻译过来就是说,bindtoleft的x值即水平位置就是left的水平位置;bindtoleft的y值即垂直位置就是left的垂直位置再加20个象素(往下移动20个象素)。

   这样看起来好像挺麻烦,但是如果你修改视图left的位置和大小时,就不用理会bindtoleft的位置和大小,而right看起来写的挺方便,但是缺需要跟着left改。尤其是应用程序中的视图很多时,这种绑定会很方便,尤其是关系紧密的视图。

  1.2 始终绑定实例

<!----------------------------------------->
<!--bindingview_2.lzx-->
<!----------------------------------------->
<canvas title="始终绑定例子" width="800" height="600" debug="true">
    <view name="left" x="20" y="20" width="100" height="100" bgcolor="#FF0000"/>  
    <view name="bindtoleft" x="$once{parent.left.x}"

y="$once{parent.left.y+parent.left.height+20}"
         width="100" height="100" bgcolor="#0000FF"/>
    <button name="runview" x="20" y="260" text="clickMe">
        <method event="onclick">
            parent.left.animate('x',200,500,false);       
        </method>   
    </button>    
</canvas>

访问地址:http://www.openria.cn/lps-3.0/my-apps/bindingview_2.lzx?lzt=html

点击一下按钮,会发现left(红色的矩形)移动了,但是如果想让蓝色的矩形(bindtoleft)也跟着动怎么办呢,很简单,把bindtoleft的x="$once{parent.left.x}"属性改为x="${parent.left.x}"就可以了,试试吧,

是不是很爽,都不用再编写额外的代码移动bindtoleft。除了能对x,y进行绑定,视图的其他属性,比如visible属性也可以进行绑定,这种绑定也经常用到。

 2. 数据绑定

   基于openlaszlo的应用程序和其他RIA技术如flex一样,是数据驱动的应用程序,也就是说界面的框架定下来后,它的具体内容是由数据来决定的,有多少数据就会生成多少视图。 这一过程的实现就是依靠“数据绑定”。依靠数据绑定,openlaszlo的应用程序将完全脱离传统web应用基于页面思想的编程方式,用动态语言来输出页面标签,实现动态视图。从而真正的实现MVC模式,让数据和视图彻底分开。

   数据绑定和视图绑定一样仍然分为两种情况,一次绑定和运行时绑定,这个“运行时绑定”也可以称为动态绑定。可以看作是多个一次绑定构成运行时绑定。下面看几个例子:

   2.1 始终绑定实例

<!------------------------------------->
<!--databinding_1.lzx-->
<!------------------------------------->
<canvas width="800" height="600" debug="true" fontsize="12">
    <dataset name="ds1">
      <root>
        <node name="第一条数据"/>
        <node name="第二条数据"/>
        <node name="第三条数据"/>
        <node name="第四条数据"/>
        <node name="第五条数据"/>
        <node name="第六条数据"/>
        <node name="第七条数据"/>
      </root> 
    </dataset>
    <list name="samplelist" x="10" y="10" width="100" height="100" datapath="ds1:/*">
        <textlistitem text="$path{'@name'}" datapath="*"/>   
    </list>
</canvas>

访问地址:http://www.openria.cn/lps-3.0/my-apps/databinding_1.lzx?lzt=html

   从这个例子可以看出,列表的内容完全由dataset的数据生成的,而且在编译的时候就已经数据和list组件绑定在一起了,即通过list的datapath="ds1:/*"来绑定到数据集ds1上。这样做比较死板,实际应用中很少这样做。

  2.2 运行时绑定(动态绑定)实例

<!------------------------------------->
<!--databinding_2.lzx-->
<!------------------------------------->
<canvas width="800" height="600" debug="true" fontsize="12">
    <dataset name="ds1">
      <root>
        <node name="第一条数据"/>
        <node name="第二条数据"/>
        <node name="第三条数据"/>
        <node name="第四条数据"/>
        <node name="第五条数据"/>
        <node name="第六条数据"/>
        <node name="第七条数据"/>
      </root> 
    </dataset>
    <dataset name="ds2">
      <root>
        <node name="firstItem"/>
        <node name="secondItem"/>
        <node name="thirdItem"/>
        <node name="fourthItem"/>
        <node name="fitthItem"/>
        <node name="sixthItem"/>
        <node name="seventhItem"/>
      </root> 
    </dataset>
    <method event="oninit">
        samplelist.datapath.setPointer(ds1.childNodes[0]);
    </method>
    <list name="samplelist" x="10" y="10" width="100" height="100" datapath="" dataoption="lazy">
        <textlistitem text="$path{'@name'}" datapath="*"/>   
    </list>
    <button name="getenglishlist" x="10" y="150" text="获取英文列表">
        <method event="onclick">
            parent.samplelist.datapath.setPointer(ds2.childNodes[0]);       
        </method>   
    </button>
    <button name="getchineselist" x="10" y="180" text="获取中文列表">
        <method event="onclick">
            parent.samplelist.datapath.setPointer(ds1.childNodes[0]);       
        </method>   
    </button>
</canvas>

    访问地址:http://www.openria.cn/lps-3.0/my-apps/databinding_2.lzx?lzt=html

    对比这个例子和前面那个例子,可以看出,list的datapath开始是为空的,而在程序init的时候,才给它绑定数据,点击按钮又改变的绑定数据源,这样就是运行时的数据绑定。
    在实际的应用开发过程中,很多情况需要运行时绑定,这样可以减少服务器的编译时间和减少文件尺寸,充分利用客户端的运算能力,可以在客户端有更直接快捷的数据更新,而无需刷新页面,改善用户体验。

    此外,通过对list对应的数据集的操作,如增、删、改,可以直接影响到list的视图表现。
    注意:本例使用dataoption="lazy"来实现list的性能优化,从而使视图更新时更快,更适合大数据量的展现。

  
   3. 与数据绑定相关的内容

   3.1 数据指针:datapointer
      
       数据指针和数据集几乎是形影不离,每申明一个远程的dataset,就应该申明一个对应的datapointer,让这个datapointer指向dataset。让datapointer来表明dataset的状态并执行对应视图的视图绑定。
     比如:
     <dataset name="remotedata" src="sampleAction.jsp" type="http" request="false"/>
     <datapointer name="remotedatapt" xpath="remotedata:/*">
         <method event="ondata">
            viewname.datapath.setPointer(this.p);
         <method/>
     <datapointer/>

   3.2 数据元素:LzDataElement

      dataset是继承自LzDataElement,有时需要在运行时用脚本来生成数据来给视图用,这时使用的对象就是LzDataElement,比如:
      var sampledata = new LzDataElement('root');
      sampledata.appendChild(new LzDataElement('node'));
      sampledata.appendChild(new LzDataElement('node'));

  这就生成了一个类似于dataset的数据集,即:
      <root>
         <node/>
         <node/>
      <root/>
  
   3.3 数据路径查询:datapath.xpathQuery()

      很多时候,要从视图中取得某个属性,然后进行判断或者操作,这时候需要用到这个功能,比如:

      var someattr = sampleview.datapath.xpathQuery('@value');
      这是查询视图sampleview的数据集中属性为value的值。
      具体内容见开发文档中xpath中的介绍。


结束语

   掌握了openlaszlo的视图和数据绑定,以及数据操作,就基本掌握了openlaslzo开发的精髓,关键的是要改变思想,要thinking in RIA,开发RIA是构建应用,而不是写页面,还是系列文章开篇所讲,openlaszlo的开发思想是:

      面向对象
      基于组件
      数据驱动

    有时感觉做openlaszlo开发就像是在做swing或者vb开发,只是没有多线程的烦恼,唯一不足的是没有所见即所得开发工具,要不会很爽,而ide4laszlo插件又不好用。

 
Windows Server 2016远程桌面服务配置和授权激活 Server 2016默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接数,可以通过添加远程桌面授权解决:1、添加远程桌面授权服务第一步:服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装:第二步:添加远程桌面会话主机和远程桌面授权功能:以上配置完成后即可使用多于2用户同时登陆,但使用期限为120天,再次登陆会有如下提示:2、添... 阅读详情

相关推荐

详解modbus TCP通讯,并利用其实现欧姆龙PLC和西门子PLC的通讯

大家好,之前需要更新的MQTT通讯【2】因为硬件不足还不能发布出来,但最近在项目中涉及到西门子和欧姆龙之间的modbus TCP通讯,想到modbus TCP通讯是个非常常见并广泛使用的通讯协议,今天就结合最近做的测试给大家好好讲解一下,先提示一下,这边只给大家讲解如何实现,至于报文是什么,如何用socket来编写功能块或dll这边不会讲解,这块我会根据私信的小伙伴数量来考虑要不要出一篇如何用ST语言来编写modbus TCP功能块的博客。

dy186187的博客 1万+

openlasz入门---openlaszlo环境的建立

关于openlaszlo的介绍网站上面也蛮多了,所以,在这里也不多说了。这里首先介绍一个openlaszlo开发环境的搭建。1.下载wtp-all-in-one的eclipse版本,这里采用的是1.0.1版。下载地址为:http://download.eclipse.org/webtools/downloads/drops/R-1.0.1-200602171228/2.下载laszloID

楓雨人生 2622

RS-485调试踩坑实录:MAX13487数据回环问题排查与修复(附电路图)

本文深入解析了RS-485通信中MAX13487芯片的数据回环问题,提供了详细的排查过程和解决方案。通过分析芯片特性和自动换向机制,揭示了RO引脚配置不当是导致问题的关键原因,并给出硬件(添加上拉电阻)和软件(调整MCU配置)两种修复方案,附有优化设计建议和实际调试技巧。

play7的博客 1297

基础篇 | 15 C++ 科学计算 - OpenBLAS的安装与使用

BLAS简介 类似于Anaconda里面的numpy,C++里面也有类似的矩阵运算库,称之为BLAS(Basic Linear Algebra Subprograms):基础线性代数子程序库。 支持的数据类型有: 单精度浮点数(float) 双精度浮点数(double) 单精度负数 双精度负数 在机器学习里面一般我们只用float类型,很少使用double,考虑到性能,我们认为float...

LorneNote 3万+

HMC5883L磁力计驱动开发:I²C通信、校准与FreeRTOS集成

磁力计是惯性导航与电子罗盘系统的核心传感器,其输出原始磁场数据需经精确采集、单位换算与误差补偿才能用于姿态解算。基于各向异性磁阻(AMR)原理的三轴磁力计,如HMC5883L,依赖稳定I²C通信获取12位有符号磁场采样值,并通过增益配置、硬软铁校准及温度补偿提升物理量精度。在嵌入式实时系统中,驱动层须保障数据的时间一致性与抗干扰鲁棒性,避免总线挂死、字节错位或量程误配等典型问题。本文围绕HMC5883L这一广泛使用的停产但仍在产线服役的磁传感器,详解寄存器配置、定点单位转换、八方位校准算法及FreeRTOS

weixin_42594427的博客 145

手把手教你用6轴IMU跑通LIO-SAM:参数配置与代码修改保姆级教程

本文提供了一套完整的6轴IMU适配LIO-SAM的解决方案,包括参数配置与代码修改的详细步骤。从理解6轴与9轴IMU的关键差异入手,逐步指导如何调整核心配置文件params.yaml、重构utility.h关键函数、优化mapOptimization.cpp的位姿融合逻辑,并给出编译验证与性能调优建议,帮助开发者快速实现6轴IMU在LIO-SAM中的稳定运行。

weixin_28717807的博客 356

openlaslzo编程规范正式发布

下载地址:http://www.openria.cn/posts/list/49.page该规范分为4个部分:part One:常规编码习惯part Two:性能优化的最佳实践part Three:提高编程效率的原则part Four:开发RIA过程本文是openlaslzo中国开发者社区奉献给openlaslzo平台的一份珍贵文档,它涵盖了openlaslzo编程碰到的多

老不死的Flash程序员 2389

Python爬虫实战:利用Scrapy+Playwright高效爬取TED演讲数据

在当今信息爆炸的时代,TED演讲作为全球知名的思想传播平台,汇聚了各领域顶尖人才的精彩分享。对于数据分析师、研究人员或内容创作者来说,获取TED演讲的完整数据集具有重要价值。本文将详细介绍如何使用Python中最先进的爬虫技术组合——Scrapy框架配合Playwright浏览器自动化工具,高效爬取TED演讲的完整数据。传统爬虫技术在处理现代动态网页时面临诸多挑战,而本文将展示如何利用最新工具解决这些问题。

2201_76125261的博客 205

openlaszlo简介

openlaszlo(开源拉兹罗)是一个新兴开源RIA架构,尽管他不如现在的Ajax那么火爆,也不如Flex那么 根正苗红,但是他的独特之处是别的开发平台所不具备的。具体特性,整理如下:    * 多种运行时目标选择,不只是swf,而且还有dhtml,将来会考虑在移动设备等其他硬件上运行 laslzo应用。      现在正在进行swf9及dhtml的研究,具体细节见这个地方记录:       ...

Learning Correcting Improving 276

secureCRT 破解方法

3、输入注册信息打开keygen.exe,点击path,选择SecureCRT的安装目录(例如D:\VanDykeSoftware\Clients)的securecrt.exe打开,继续下一步打开LicenseHelper.exe,如下。1、注册SecureCRT9.1打开keygen.exe,出现以下问题(没有关掉安全防护,一双击打开,Windows会自动识别keygen.exe为bingdu并删除)打开桌面SecureCRT,此界面不输入内容,直接点击下一步。2、存储配置文件夹(可以默认安装)

逆水行舟 1万+

刚体转动欧拉方程:从理论到卫星姿态控制的实践

刚体转动欧拉方程是描述刚体旋转运动的基本动力学方程,在卫星姿态控制、机器人学、航空航天等领域有着广泛应用。本文将详细讲解欧拉方程的物理概念、数学推导、数值计算方法,并重点分析其在卫星姿态控制系统中的具体应用。

ScilogyHunter的博客 641

openlaszlo学习一

<br /><br />1.     openlaszlo认识<br />openlaszlo是一种富客户机应用程序架构,使用Macromedia Flash作为部署载体。Openlazlo应用程序开发使用基于xml的lzx语言,它可以被编译成dhtml,swf等格式。它依赖javascript来表达逻辑,并提供了传统flash开发方式无法比拟的一些优点,包括高级UI约束系统、面向对象的设计方法学以及内置的对web服务和各种风格的远程过程调用的支持。<br />Laszlo是它所用的一种语言,这种语言通

a20056440145的专栏 436

猿创征文|SfM(Structure from Motion)学习之路

SfM全称Structure from Motion,译为运动恢复结构,是三维重建pipeline的一部分,又称稀疏重建,在摄影测量领域则称为空三(空中三角测量)。SfM的任务是,给定一系列具有一定重叠度的图像,去同时估计出拍摄每张图像时相机的的位姿(位置t和姿态R)和被拍摄物体或场景的稀疏点云。...............

zeeq的博客 1万+

OpenMeetings编译详解 (无需OpenLaszlo Server)

OpenMeetings无需OpenLaszlo Server编译详解

zyh5068的专栏 4337

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

list

的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行包装即可。是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。迭代到该位置,在这段位置上迭代需要线性的时间开销;最大的缺陷是不支持任意位置的随机访问,比如:要访问。还需要一些额外的空间,以保存每个节点的相关联信息。个元素,必须从已知的位置。

xie0510_的博客 263

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LeetCode //C - 1313. Decompress Run-Length Encoded List

The problem involves decompressing a run-length encoded list where each pair of adjacent elements in the input array represents a frequency and value. The solution requires expanding these pairs into the corresponding number of values in the output array.

Made in Code 222

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java 集合框架(List、Set、Map)与常用基础

本文整理Java集合框架核心知识,涵盖集合体系、Collection接口API、List(ArrayList、LinkedList、Vector)、Set(HashSet、TreeSet)、Map(HashMap、TreeMap、Hashtable)实现类原理、泛型、增强for循环、可变参数与工具类,并附核心易错点速查表。

既然你都点开这里了,那可以给我点个关注吗?可以吗?可以吗? 478

第7篇:常用组件:Text/Image/Button/List 实战拼页面

常用组件:Text/Image/Button/List 实战拼页面

信息安全领域优质创作者|操作系统领域专家 130

Scala List操作:不可变链表的函数式美学

Scala的List,表面上是Java List的"Scala版",本质上是函数式编程的核心数据结构——不可变的链表,配合模式匹配和递归,构成了声明式数据处理的基础。天然线程安全:不可变对象不需要锁,在多线程环境下可以安全共享结构共享:操作List时可以复用大部分结构,性能更好函数式友好:map/filter/reduce不修改原List,可以组合、可以嵌套这些特性不是孤立的,它们共同支撑了Scala的函数式编程范式。

https://starzy1990.github.io/ 1334

Bugku 326 Baby-heap1 题解:glibc 2.23 堆溢出到 FSOP 劫持 _IO_list_all(附完整 exp)

为什么 FSOP 在 2.23 这么好用?glibc 2.23 的_IO_FILE虚表调用没有 vtable 合法性检查是 2.24 才加入的),只要能把指向自己伪造的 FILE,就能让__overflow槽位指向任意函数。exit()一定会走因此把_mode置 0、置 1、置 0,就能进入;把fp首地址写成/bin/shsystem(fp)的参数就齐了。为什么用 fastbin attack 而不是?2.23 没有 tcache,fastbin 的fd。

kingx3的博客 165

[C++]:7.STL:list

好久不见,firdawn小课堂又和大家见面啦。今天我们要学习的内容是list容器,list也是一种常用的数据结构。下面是本章的思维导图,那么让我们开始学习吧!自定义的list,由三个结构构成。分别是链表的最小组成单位,也就是链表节点。以及迭代器类和list类其实要特别说明的是, List的迭代器,它不是单纯的指针,因为我们如果对指针直接进行解引用操作的话,我们得到的是这个节点,而不是节点里面存储的值并且我们对这个指针加加,得到的也不是下一个节点的地址,而是所在节点的下一个单位的地址。

2301_80817679的博客 172

LinkedList知识

LinkedList是List 接口的实现类,同时实现了Deque有序、可重复、带索引双向链表prev前驱指针 + item数据 + next后继指针✅ 核心特点首尾增删速度快:只修改指针,不需要移动元素查询慢:没有数组随机访问,按索引查找需要遍历链表线程不安全,支持存储 null兼具 List、队列、栈的功能,所以有两套首尾 API(一组抛异常,一组返回 null)ArrayList:可变数组 → 查询快,中间增删慢LinkedList:双向链表 → 首尾增删快,查询慢多态写时,

Sarvartha的博客 87

Iterator 迭代器、ListIterator & foreach 循环

foreach 是简化版 for 循环,底层依然是 Iterator 迭代器(语法糖)适用范围:数组、所有实现Iterablefor(容器中元素类型 临时变量 : 容器变量) {执行语句hasNext()只判断,不移动指针;不能连续多次调用next(),容易泛型缺失时,Iterator 取出元素是 Object,需要强制转换只能 List 获取,Set 集合不能使用增强 for 只是语法糖,编译后依然变成 Iterator,同样不能在遍历时直接调用集合增删方法。

Sarvartha的博客 345

List 接口 & ArrayList

List 是Collection 的子接口(单列集合)有序:存入顺序和取出顺序一致可重复:允许存储重复元素有索引:支持根据索引操作元素(这是 List 独有的!Set 没有索引)所以 Collection 里所有方法,List 全都可以用,同时 List 新增一套带索引的专属方法ArrayList 是实现类,实现了 List 接口有序、可重复、有索引底层数组,查询快、中间增删慢扩容 1.5 倍;空参构造不会立刻创建长度 10 数组,JDK8 是懒加载线程不安全,不同步。

Sarvartha的博客 342

一个链表(Linked List)--为什么要用链表--deepseek

数组(如你定义的大盘子就像你在 FPGA 里例化了一块深度为 2500 的 BRAM。它必须是一块连续的、完整的内存。如果内存里全是碎片,凑不出 2500 个连续空位,数组就建立不起来。链表(Linked List)就像一堆散落在大街小巷的小仓库,每个仓库大小不固定,彼此不挨着。但是,每个仓库的门口都贴了一张小纸条,纸条上写着“下一个仓库的地址”。我们来画个图,这就是链表的核心——节点(Node)text。

AlibabaApple的博客 162
上一篇: EJB3.0 定时服务:Timer Service
danning
博客等级 码龄22年 5粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值