许多Microsoft的编程语言,如Visual Basic、VBScript和Jscript,都提供集合(collection)。可以把集合想象为数组,可以使用其中内建的函数完成存储和操纵数据等基本任务。无须担心数据是在哪些行列,而是使用唯一的键进行访问。
VBScript和Jscript都提供类似的对象,通称Scripting.Dictionary对象或Dictionary对象。它类似于二维数组,把键和相关条目的数据存放在一起。然而真正的面向对象的方法,不应直接访问数据条目,必须使用Dictionary对象支持的方法和属性来实现。
本章提供了一些示例页面,允许试验脚本运行期对象的方法和属性。这些实例在下载的文件的文件的Chaper05子目录里。
5.3.1 创建和使用Dictionary对象
创建一个Dictionary对象的示例如下:
‘In VBScript:
Dim objMyData
Set objMyData = Server.CreateObject(“Scripting.Dictionary”)
//In Jscript:
var objMyData = Server.CreateObject(‘Scripting.Dictionary’);
PROGID=”Scripting.Dictionary”>
Dictionary对象还可用于客户端的IE中。
1. Dictionary对象的成员概要
表5-2和表5-3列出了Dictionary对象的属性和方法及相应的说明。
当增加一个键/条目对时,如果该键已存在;或者删除一个键/条目对时,该关键字/条目对不存在,或改变已包含数据的Dictionary对象的CompareMode,都将产生错误。
表5-2 Dictionary对象的属性和说明
属 性 说 明
CompareMode (仅用于VBScript)设定或返回键的字符串比较模式
Count 只读。返回Dictionary里的键/条目对的数量
Item(key) 设定或返回指定的键的条目值
Key(key) 设定键值
表5-3 Dictionary对象的方法和说明
方 法 说 明
Add(key,item) 增加键/条目对到Dictionary
Exists(key) 如果指定的键存在,返回True,否则返回False
Items() 返回一个包含Dictionary对象中所有条目的数组
Keys() 返回一个包含Dictionary对象中所有键的数组
Remove(key) 删除一个指定的键/条目对
RemoveAll() 删除全部键/条目对
2. 对Dictionary中增加和删除条目
一旦得到一个新的(空的)Dictionary,可以对其添加条目,从中获取条目以及删除条目:
‘ In VBScript:
objMyData.Add “MyKey”, “MyItem” ‘Add Value MyItem with key MyKey
objMyData.Add “YourKey”, ”YourItem” ‘Add value YourItem with key YourKey
blnIsThere = objMyData.Exists(“MyKey”) ‘Returns True because the item exists
strItem = objMyData.Item(“YourKey”) ‘Retrieve value of YourKey
strItem = objMyData.Remove(“MyKey”) ‘Retrieve and remove YourKey
objMyData.RemoveAll ‘Remove all the items
在JScript中,等价的代码为:
// In JScript;
objMyData.Add (‘MyKey’, ‘MyItem’); //Add Value MyItem with key MyKey
objMyData.Add (‘YourKey’, ‘YourItem’); //Add value YourItem with key YourKey
var blnIsThere = objMyData.Exists(‘MyKey’); //Returns True because the item exists
var strItem = objMyData.Item(‘YourKey’); //Retrieve value of YourKey
var strItem = objMyData.Remove(‘MyKey’); //Retrieve and remove YourKey
objMyData.RemoveAll(); //Remove all the items
3. 修改键或条目的值
可以通过修改键的值,或通过修改与特定的键关联的条目的数据,来改变存储在Dictionary内的数据。下面的代码改变键为MyKey的条目中的数据。
ObjMyData.Item(“MyKey”) = “NewValue” ‘ In VBScript
ObjMyData.Item(‘MyKey’) = ‘NewValue’; // In JScript
如果指定的键在Dictionary未找到,将在Dictionary中创建一个以MyKey为键,以New Value为其条目值的新的键/条目对。有意思的是,如果使用一个不存在的键来检索条目,不仅得到一个空的字符串(这是可以想到的),而且还在Dictionary里添加一个新的键/条目对,键即是指定的键,但条目的数据为空。
可以使用Key属性仅改变键的值而不改变与之对应的条目的数据。将一个已存在的键MyKey改变为MyNewKey,可以用:
objMyData.Key(“MyKey”) = “MyNewValue” ‘ In VBScript
objMyData.Item(‘MyKey’) = ‘MyNewValue’; // In JScript
如果指定的键未找到,则产生运行期错误。
4. 设置比较模式
Dictionary的CompareMode属性仅适用于VBScript,不能在JScript中使用。当比较字符串键时,允许指定比较的方式。两个允许的值为BinaryCompare(0)和TextCompare(1)。BinaryCompare(0)为二进制数对照(即区分大小写);TextCompare(1)为文本对照(即不区分大小写)。
5. 遍历Dictionary
研究Dictionary时,有两个方法和一个属性需要特别注意,它们允许我们遍历存储在Dictionary里的所有键/条目对。Items方法用一个一维数组的形式返回Dictionary里所有的条目数据,而keys方法用一个一维数组返回所有已存在的键值。可以使用Count属性得到键或条目的数量。
例如,可以使用下列代码得到名称为objMyData的Dictionary中所有的键和条目值。注意,虽然Count属性保存了在Dictionary里的键/条目数量,但VBScript和JScript的数组总是从下标0开始的。因此,数组下标应从0到Count-1。
‘In VBScript:
arrKeys = objMyData.Keys ‘Get all the keys into an array
arrItems = objMyData.Items ‘Get all the items into an array
For intLoop = 0 To objMyData.Count –1 ‘Iterate through the array
StrThisKey = arrKeys(intLoop) ‘This is the key value
StrThisItem = arrItems(intLoop) ‘This is the item (data) value
Next
// In JScript
// Get VB-style arrays using the Keys() and Items() methods
var arrKeys = new VBArray(objMyData.Keys()).toArray();
var arrItems = new VBArray(objMyData.Items()).toArray();
for (intLoop = 0; intLoop < objMyData.Count; intLoop++) {
// Iterate through the arrays
strThisKey = arrKeys[intLoop]; // This is the key value
strThisItem = arrItems[intLoop]; // This is the item (data) value
}
在VBScript里也可以使用For Each … Next语句完成同样的功能:
‘ Iterate the dictionary as a collection in VBScript
For Each objItem in arrItems
Response.Write objItem & “ = “ & arrItems(objItem) & “
”
Next
5.3.2 Dictionary对象示例
本书提供了一系列示例文件可用来试验脚本运行时间库的各种属性。
本章代码的缺省页面提供了一系列可使用的VBScript示例链接。有些示例对JScript同样有效。这些示例存放在Chapter05目录下相应的子目录里,显示的界面如图5-2所示:
要查看Dictionary对象的运行,在菜单页面点击第一个链接,打开名叫show_dictionary.asp的页面。这个页面显示了我们提供的Dictionary对象的内容,允许试验其属性和方法。屏幕如图5-3所示:
1. Dictionary的global.asa文件
随Dictionary对象示例页面提供的文件之一是global.asa。它创建并预先填充了一个会话层作用域的Dictionary对象,因此其内容在页面请求之间不会丢失。一般说来(考虑到可扩展性),这不是一个理想的做法。在这个例子里,可以看到Dictionary的属性和方法的效果。
如果在自己的服务器上下载并安装示例,必须创建一个基于此global.asa文件的虚拟应用程序。或者将其内容添加到缺省站点的根文件夹中的global.asa文件里。在第3章讲述了如何用向导创建虚拟应用程序。然而对于本示例,创建一个虚拟应用程序最简单的方法是在Chapter05示例文件夹内右击dictionary子文件夹,在Properties对话框的Home Directory选项卡里,点击Create按钮,如图5-4所示:
在这个global.asa文件里,代码使用
元素创建一个会话层作用域的Scripting.Dictionary对象实例。然后在Session_onStart事件处理程序里将一系列值用Add方法放入Dictionary中,并将对Dictionary对象的引用指定给ASP会话变量MyDictionary:
PROGID="Scripting.Dictionary">
2. Dictionary示例页面
在“Scripting.Dictionary Object”主页面里,首要的任务是得到一个会话层作用域的Dictionary对象实例的引用。注意,这个引用是一个对象变量,因此必须在VBScript里使用Set关键字。
然后,检查一下是否得到了一个对象(这是个好习惯),如果没有正确地建立包含global.asa文件的虚拟应用程序,检查一下问题出在哪里。你将看到我们自己的消息代替了ASP的错误消息(但是注意,对于这一操作必须关闭缺省的错误处理)。
<%
on error resume next ' turn off error handling to test if object exists
'retrieve Dictionary object from user's session
Set objMyData = Session("MyDictionary")
If IsObject(objMyData) Then 'found Dictionary object in Session
…
%>
Iterating the Dictionary with Arrays
<%
arrKeysArray = objMyData.Keys 'get all the keys into an array
arrItemsArray = objMyData.Items 'get all the items into an array
For intLoop = 0 To objMyData.Count - 1 'iterate through the array
Response.Write "Key: " & arrKeysArray(intLoop) & " Value: " _
& arrItemsArray(intLoop)& " "
Next
%>
…
… Other code and controls go here …
…
<%
Else
'could not find Dictionary object in the session
Response.Write "Dictionary object not available in global.asa for session"
End If
%>
显示在页面上的Dictionary内容列表是使用Dictionary对象的Key和Items方法创建的两个数组,可使用前面的代码遍历它们。
3. Dictionary页面控件
在Dictionary的内容列表下是一系列的HTML控件,可用于设定Dictionary对象的某些属性和执行各种方法。这些控件全部在一个
…
4. 使用Dictionary的属性和方法
在“Scription.Dictionary Object”页面,点击用来检查并改变条目的Key属性的按钮,如图5-5所示:
把窗体再次提交给页面。该页面包含一个脚本段,检查被点击的按钮的值。它通过在Resquest.Form集合里查找按钮的名字来断定单击的是哪个按钮。如果发现一个对应于cmdChangKey的值,则从列表中或文本框中得到相应的值并用来改变Key属性:
…
'look for a command sent from the FORM section buttons
If Len(Request.Form("cmdChangeKey")) Then
strKeyName = Request.Form("lstChangeKey") 'Existing key from list box
strNewKey = Request.Form("txtChangeKey") 'New key value from text box
objMyData.Key(strKeyName) = strNewKey 'Set key property of this item
End If
…
页面重新载入后,在Dictionary的内容列表里能看到相应的结果,如图5-6所示:
页面的其余代码用来设定一个条目的Item属性,或者执行Dictionary对象的方法。下面是这些操作的代码,每段代码与演示Key属性的代码非常类似。每次都将结果显示在Dictionary的内容列表中:
…
If Len(Request.Form("cmdChangeItem")) Then
strKeyName = Request.Form("lstChangeItem") 'Existing key from list box
strNewValue = Request.Form("txtChangeItem") 'New item value from text box
objMyData.Item(strKeyName) = strNewValue 'Set the Item property
End If
If Len(Request.Form("cmdAdd")) Then
strKeyName = Request.Form("txtAddKey") 'New key value from text box
strItemValue = Request.Form("txtAddItem") 'New item value from text box
objMyData.Add strKeyName, strItemValue 'Execute the Add method
End If
If Len(Request.Form("cmdRemove")) Then
strKeyName = Request.Form("lstRemove") 'Existion key from list box
objMyData.Remove strKeyName 'Execute the Remove method
End If
If Len(Request.Form("cmdRemoveAll")) Then
objMyData.RemoveAll 'Execute the RemoveAll method
End If
…
例如,如果现在点击Add方法的按钮,在Dictionary的内容列表里将增加一个新的条目,如图5-7所示:
结果如图5-8所示:
可以在这个页面中试验Dictionary对象的属性和方法,你将会发现什么因素及在什么环境下能引起Dictionary对象错误。例如,尝试用与已经存在的一个条目相同的键值增加一个条目,看看会出现什么结果。
你可能感兴趣的:(Web编程,Web技术,dictionary,vbscript,object,session,arrays,microsoft)
阿里OSS--基本介绍
AugustShuai
# 阿里OSS文件存储 java 分布式 大数据 阿里OSS 文件存储
文章目录相关链接一.文件存储系统介绍1.储存系统的选择二.阿里OSS的基础介绍介绍使用场景三.阿里OSS的基础概念存储空间(Bucket)对象/文件(Object)Region(地域)Endpoint(访问域名)AccessKey(访问密钥)强一致性数据冗余机制四.阿里OSS基础概念对比图(方便记忆理解)OSS术语表相关链接Fastdfs—基本介绍和底层模型详解阿里OSS–官方文档阿里OSS–基本
VSCode 与 OSS 的区别
qichengzong_right
VS Code 软件架构 vscode
VSCode与OSS的区别VSCode与OSS的区别Code-OSS存储库VisualStudioCode链接VSCode与OSS的区别本文概述了github.com/microsoft/vscodeGitHub项目(通常称之为Code-OSS)和Microsoft的VisualStudioCode发行版之间的区别。Code-OSS存储库Code-OSS存储库是微软开发开源编辑器之处,微软基于此构
Express + MongoDB 实现登录验证码
yqcoder
express mongodb 数据库
使用svg-captcha生成SVG格式验证码,express-session存储验证码一、安装依赖npminstallsvg-captchaexpress-session二、核心代码示例constsvgCaptcha=require("svg-captcha");constsession=require("express-session");//配置会话中间件app.use(session({s
java中过滤器应实现的接口_下面选项中,编写过滤器需要实现的接口是( )
凛冬之怒
java中过滤器应实现的接口
【填空题】Tomcat容器中会话的有效时间可以在___文件中设置,默认会话过期时间为30分钟【判断题】在修改传智书城注册页面使用include指令包含顶部、菜单列表和底部这些公共页面时,可以参考引入css、js文件一样放到head标签内部。()【单选题】下列选项中,可以更改Cookie的存活时间的是()【判断题】用于监听HttpSession对象生命周期的接口是HttpSessionBinding
OmniParser omnitool 使用体验和使用中踩过的坑
yiheng2000
docker 人工智能
我来帮你重新组织这篇技术体验文章,让它更有结构性和可读性。OmniParser与OmniTool实践体验总结前言最近我尝试了Microsoft开源的OmniParser和OmniTool这两个工具,这里记录一下使用体验和踩坑经历。作为一名开发者,我觉得这套工具组合挺有意思的,特别是在AI控制计算机这个领域。工具介绍OmniParserOmniParser是一个图像识别工具,主要功能是:自动识别图片
Chrome 插件开发:技术解析与应用实例
阿吉的呓语
java开发知识 chrome
引言Chrome插件,又称为扩展,为用户提供了自定义和增强浏览器功能的能力,从而改善用户体验并提升工作效率。本文将详尽介绍Chrome插件的开发基础,探讨所需的技术栈,并通过具体应用场景展示其实际应用和潜力。一、Chrome插件的基本概念什么是Chrome插件Chrome插件是一种浏览器扩展,允许开发者使用Web技术如HTML、CSS和JavaScript为Chrome浏览器添加额外的功能。它可以
使用 PyOpenGL 进行 2D 图形渲染总结
无水先生
3D图形渲染和OpenGL编程 图形渲染 人工智能
一、说明OpenGL是一个广泛使用的开放式跨平台实时3D图形库,开发于二十多年前。它提供了一个低级API,允许开发人员以统一的方式访问图形硬件。在开发需要硬件加速且需要在不同平台上运行的复杂2D或3D应用程序时,它是首选平台。它可以在多种语言中使用,包括C/C++、C#、Java、Objective-C(用于iPhone和iPad游戏)、Python等。在本文中,我将展示如何将OpenGL与Pyt
Chrome插件开发
Min_nna
ai分析 chrome插件开发 chrome
介绍Chrome插件,也称为扩展程序(Extensions),是用于增强浏览器功能的轻量级应用程序。它们可以添加新的功能或修改现有的网页内容,为用户提供更加个性化的浏览体验。以下是开发Chrome插件的一些基本概念和步骤:了解Chrome插件:Chrome插件是由HTML、CSS、JavaScript等Web技术构建的,并且通常会包含一个manifest.json文件来定义其基本信息和所需权限。准
AttributeError: ‘int‘ object has no attribute ‘append‘
想变瘦的测试何同学
python学习 python
python执行报错:Traceback(mostrecentcalllast):File“E:\pythonProject2\mobile-test\0622.py”,line,ini.append(x)AttributeError:‘int’objecthasnoattribute‘append’报错代码:i=[]foriinrange(3):x=int(input("请输入整数:"))i.a
Deepin 基于Docker搭建Sql Server 2019数据库
转悠的陀螺
运维 docker 数据库 sql
前言SqlServer一般指MicrosoftSQLServer,是Microsoft公司推出的关系型数据库管理系统示例搭建环境:deepinV20+Docker20.10.12一、先决条件1)硬件环境配置要求硬盘最少6GB的可用硬盘空间,延展《磁盘空间要求》内存最低要求:ExpressEdition:512MB,所有其他版本:1GB推荐:ExpressEdition:1GB,所有其他版本:至少4
JSON-RPC-CXX深度解析:C++中的远程调用利器
极地星光
软件功能原理 架构 json rpc c++
一、引言1.JSON-RPC简介及其在C++开发中的重要性JSON-RPC(JavaScriptObjectNotation-RemoteProcedureCall)是一种基于JSON格式的远程过程调用协议。在C++开发中,它扮演着至关重要的角色。随着软件系统的日益复杂和分布式架构的广泛应用,高效的远程过程调用成为构建强大应用程序的关键。JSON-RPC以其简洁的JSON数据格式,使得不同的系统之
DOM与CSS:网页设计的核心力量
lsx202406
开发语言
DOM与CSS:网页设计的核心力量引言在网页设计中,DOM(文档对象模型)与CSS(层叠样式表)是两个不可或缺的组成部分。它们共同构成了现代网页的骨架与外衣。本文将深入探讨DOM与CSS的关系、作用以及如何有效地运用它们来提升网页设计质量。DOM:网页内容的结构化表示什么是DOM?DOM(DocumentObjectModel)是一种跨平台和语言独立的接口,它允许程序和脚本动态地访问和更新文档的内
软件架构的演化和维护
Wlq0415
系统架构 数据库 重构
软件架构的演化和维护:软件架构的演化是一个不断迭代的过程,旨在使软件适应环境变化并满足用户需求。涉及软件架构的全生命周期,包括需求获取、建模、文档化、实现和维护等阶段。软件架构演化的重要性在于它是系统骨架,保障软件特性和宏观管控复杂性。通过形式化和可视化表示,有助于降低演化成本,提高软件演化效率。软件架构演化的主要类型:对象演化:包括AddObject(AO)和DeleteObject(DO)。A
linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent【转】...
weixin_33935777
操作系统 shell
转自:http://blog.csdn.net/myarrow/article/details/82598881.kobject,ktype,kset1)kobject:代表sysfs中的目录。2)ktype:代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。3)kset:包含了s
参考thinkphp架构的FastAPI实现思路
Wiktok
架构 fastapi
FastAPI是一个现代、快速(高性能)的Web框架,用于构建API,基于Python3.7+并使用了类型提示。虽然FastAPI和ThinkPHP的设计理念和语言不同,但FastAPI同样可以实现ThinkPHP的核心功能,如路由、模型、视图、中间件、JWT、Session等。以下是如何用FastAPI实现这些功能的详细说明:一、路由(Route)FastAPI实现:FastAPI使用装饰器定义
linux uevent分析
青蛙嘎嘎
---------linux driver-------
1.kobject,ktype,ksetkobject代表sysfs中的目录。ktype代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。kset包含了subsystem概念,kset本身也是一个kobject,所以里面包含了一个kobject对象。另外,kset中包含kset_u
Unity中自定义一个EditorWindow窗体并显示诸如list<GameObject>数据
dzj2021
unity 游戏引擎
前言:自定义窗体的效果一、显示一个你自定义的窗口原理1、基类:EditorWindow2、组成:(1)定义普通变量。(2)定义系列化的对象和属性。【SerializedObject】、【SerializedProperty】(3)初始化方法和菜单定制//Addmenunamed"MyWindow"totheWindowmenu[MenuItem("Window/MyWindow")]staticv
分页、渲染、读取静态资源.
数据潜水员
node.js
###分页```jsimport{Arrays}from'../Db/BooksDb.js'constlist=async(ctx,next)=>{//转换为数字类型constpage=parseInt(ctx.query.pageIndex)||1constsize=parseInt(ct
简要分析NETLINK_KOBJECT_UEVENT参数
TJ_Dream
基础内核函数分析 网络
NETLINK_KOBJECT_UEVENT时Linux内核中Netlink协议族的一个特定类型,专门用于传递内核对象(kobject)相关的设备事件消息(称为uevent)。它是实现动态设备管理(如热插拔、驱动加载)的核心机制,支撑了udev、systemd-udevd等用户空间设备管理服务的工作。一、核心作用1.传递设备状态变更事件当设备被添加(如USB插入)、移除(如硬盘拔出)、状态变化(如
Ajax 封装Ajax函数(含注释)
夏沐_lk
jquery Ajax 封装函数
封装好的Ajax函数/***发送一个AJAX请求*@param{String}method请求方法*@param{String}url请求地址*@param{Object}params请求参数*@param{Function}done请求完成过后需要做的事情(委托/回调)*/functionajax(method,url,params,done){//统一转换为大写便于后续判断method=met
AttributeError: ‘NoneType‘ object has no attribute ‘astype‘
冰虺
python
今天在复现fasterRCNN网络时,出现AttributeError:'NoneType'objecthasnoattribute'astype'报错,如下图所示通过dug,发现im的shape为none,究其原因是因为cv.imread无法读取图像,主要原因是因为我数据集中存在中文名称。更加详细的请参考一下大佬的博客pythoncv2.imread读取中文路径的图片返回为None的问题_陶将的
手把手教你从头编写 PDF – 第 5 部分:Hello World PDF
IDRSolutions_CN
pdf 软件工程 经验分享 团队开发 java
上一篇:手把手教你从头编写PDF–第4部分:DIY空白页当恐龙还在地球上漫步的时候,我曾经谈到过构成PDF文件的各种对象。其中一种对象是流对象(streamobjects)。流对象包含了描述PDF页面外观的所有指令。在本文结束时,我们将能够创建一个“HelloWorld”PDF。为了在PDF文档中添加一些文本,我需要使用流对象。如果你用文本编辑器打开任意一个PDF文件,大多数你能看到的内容都包含在
一些对编程语言的看法
后端程序员
我让AI列出了一些较为常见的编程语言,要纯编译型的得到如下经典编译型语言名称主要特点C最经典的编译型语言,直接编译为机器码。C++基于C的扩展,同样通过编译器生成原生二进制文件。Fortran科学计算领域的老牌语言,编译为高效机器码。COBOL商业和金融领域的历史语言,完全编译执行。Ada高可靠性系统(如航空航天)的编译型语言。Pascal/Delphi(ObjectPascal)Delphi/f
Apollo部署及整合SpringBoot实战
It_BeeCoder
SpringBoot
前言:最近在完成毕业设计,题目是《基于微服务的B2C网上商城系统的设计与实现》,整个项目最早是我在看黑马的培训视频时学习JavaWeb做的一个项目,第一次做完大约在去年过年的时候,这个项目前前后后自己改了差不多5、6次了,使用技术不断更新(还有一些小细节的修改比如最早购物车用Session后来用Redis存储),从最早的Servlet+Filter到SSM+Redis到SpringBoot+Thy
JSON对象处理工具类
波波有料
JAVA json java 开发语言
目录1.工具类的功能设计2.工具类的实现依赖配置工具类代码3.工具类的使用示例示例1:美化JSON打印示例2:从JSON中提取数据示例3:修改JSON数据示例4:合并JSON对象4.总结在现代软件开发中,JSON(JavaScriptObjectNotation)是一种广泛使用的轻量级数据交换格式。由于其简洁性和易读性,JSON被广泛应用于API通信、配置文件、数据存储等场景。然而,在处理JSON
【用友U8BOM全阶展开SQL】存储过程批量展开BOM结构,由子阶向上算母件的成本。
陈家旺
学习笔记 数据库 sql sqlserver
在百度查询U8BOM结构批量导出时,发现都要收费,于是自己写了个存储过程,顺便分享给需要的朋友。USE[UFDATA_110]--使用你的账套数据库GO/******Object:StoredProcedure[dbo].[BOMJS]ScriptDate:2022-11-0223:28:13******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREAT
[Pytorch报错问题解决]AttributeError: ‘nn.Sequential‘ object has no attribute ‘append‘
Bartender_Jill
编程报错解决 pytorch 人工智能 python
问题运行深度学习代码的时候遇到了以下报错问题:Traceback(mostrecentcalllast):File"/home/anaconda3/envs/Text2HOI/lib/python3.9/site-packages/torch/autograd/grad_mode.py",line28,indecorate_contextreturnfunc(*args,**kwargs)File
0310-冒泡排序、选择排序的Java实现
春生野草
数据结构 笔记 排序算法 算法 java 数据结构
Java基本//定义使用变量//定义使用函数//基本类型//整数byteshortintlong//小数floatdouble//字符char''//布尔boolean//引用类型//StringArrayListLinkedList自定义冒泡排序两两比较交换冒泡排序Java实现package排序;importjava.util.Arrays;publicclassTest{publicstati
关于FBX模型导入Unity后,在Play场景里想要选中但报错:“NullReferenceException: Object reference not set to an insta”的解决办法。
宝宝嘟嘟打雷辣
unity 游戏引擎
FBX导入Unity后,本想要测试通过做一个BIM模型数字孪生场景,实现Play场景下,选择构件能展示构件属性信息。代码如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassDemo1:MonoBehaviour{publicfloatsmooth=3f;Transformcur
field.setAccessible(true);代码扫描有安全漏洞,解决方案
码叔义
常规发表 java 开发语言
AccessibleObject类是Field、Method和Constructor对象的基类,能够允许反射对象修改访问权限修饰符,绕过由Java访问修饰符提供的访问控制检查。它让程序员能够更改私有字段或调用私有方法,这在通常情况下是不允许的。例如:以下代码片段中,将Field将accessible标记设置为true。Classclazz=User.class;Fieldfield=clazz.g
PHP如何实现二维数组排序?
IT独行者
二维数组 PHP 排序
二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,(一维数组排序可以参考本站另一篇文章【PHP中数组排序函数详解汇总】)。二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数:
代码:
functionarray_sort($arr,$keys,$type='asc'){
$keysvalue= $new_arr
【Hadoop十七】HDFS HA配置
bit1129
hadoop
基于Zookeeper的HDFS HA配置主要涉及两个文件,core-site和hdfs-site.xml。
测试环境有三台
hadoop.master
hadoop.slave1
hadoop.slave2
hadoop.master包含的组件NameNode, JournalNode, Zookeeper,DFSZKFailoverController
由wsdl生成的java vo类不适合做普通java vo
darrenzhu
VO wsdl webservice rpc
开发java webservice项目时,如果我们通过SOAP协议来输入输出,我们会利用工具从wsdl文件生成webservice的client端类,但是这里面生成的java data model类却不适合做为项目中的普通java vo类来使用,当然有一中情况例外,如果这个自动生成的类里面的properties都是基本数据类型,就没问题,但是如果有集合类,就不行。原因如下:
1)使用了集合如Li
JAVA海量数据处理之二(BitMap)
周凡杨
java 算法 bitmap bitset 数据
路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘 JAVA 基础的数据结构,从来分析出所编写的 JAVA 代码为什么把内存耗尽,思考有什么办法可以节省内存呢? 啊哈!算法。这里采用了 BitMap 思想。
首先来看一个实验:
指定 VM 参数大小: -Xms256m -Xmx540m
java类型与数据库类型
g21121
java
很多时候我们用hibernate的时候往往并不是十分关心数据库类型和java类型的对应关心,因为大多数hbm文件是自动生成的,但有些时候诸如:数据库设计、没有生成工具、使用原始JDBC、使用mybatis(ibatIS)等等情况,就会手动的去对应数据库与java的数据类型关心,当然比较简单的数据类型即使配置错了也会很快发现问题,但有些数据类型却并不是十分常见,这就给程序员带来了很多麻烦。
&nb
Linux命令
510888780
linux命令
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示C
java常用JVM参数
墙头上一根草
java jvm参数
-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制
-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ 2
我的spring学习笔记9-Spring使用工厂方法实例化Bean的注意点
aijuans
Spring 3
方法一:
<bean id="musicBox" class="onlyfun.caterpillar.factory.MusicBoxFactory"
factory-method="createMusicBoxStatic"></bean>
方法二:
mysql查询性能优化之二
annan211
UNION mysql 查询优化 索引优化
1 union的限制
有时mysql无法将限制条件从外层下推到内层,这使得原本能够限制部分返回结果的条件无法应用到内层
查询的优化上。
如果希望union的各个子句能够根据limit只取部分结果集,或者希望能够先排好序在
合并结果集的话,就需要在union的各个子句中分别使用这些子句。
例如 想将两个子查询结果联合起来,然后再取前20条记录,那么mys
数据的备份与恢复
百合不是茶
oracle sql 数据恢复 数据备份
数据的备份与恢复的方式有: 表,方案 ,数据库;
数据的备份:
导出到的常见命令;
参数 说明
USERID 确定执行导出实用程序的用户名和口令
BUFFER 确定导出数据时所使用的缓冲区大小,其大小用字节表示
FILE 指定导出的二进制文
线程组
bijian1013
java 多线程 thread java多线程 线程组
有些程序包含了相当数量的线程。这时,如果按照线程的功能将他们分成不同的类别将很有用。
线程组可以用来同时对一组线程进行操作。
创建线程组:ThreadGroup g = new ThreadGroup(groupName);
&nbs
top命令找到占用CPU最高的java线程
bijian1013
java linux top
上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程
top -Hp 28174 -d 1 -n 1
32694 root 20 0 3249m 2.0g 11m S 2 6.4 3:31.12 java
【持久化框架MyBatis3四】MyBatis3一对一关联查询
bit1129
Mybatis3
当两个实体具有1对1的对应关系时,可以使用One-To-One的进行映射关联查询
One-To-One示例数据
以学生表Student和地址信息表为例,每个学生都有都有1个唯一的地址(现实中,这种对应关系是不合适的,因为人和地址是多对一的关系),这里只是演示目的
学生表
CREATE TABLE STUDENTS
(
C/C++图片或文件的读写
bitcarter
写图片
先看代码:
/*strTmpResult是文件或图片字符串
* filePath文件需要写入的地址或路径
*/
int writeFile(std::string &strTmpResult,std::string &filePath)
{
int i,len = strTmpResult.length();
unsigned cha
nginx自定义指定加载配置
ronin47
进入 /usr/local/nginx/conf/include 目录,创建 nginx.node.conf 文件,在里面输入如下代码:
upstream nodejs {
server 127.0.0.1:3000;
#server 127.0.0.1:3001;
keepalive 64;
}
server {
liste
java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
bylijinnan
double
public class Power {
/**
*Q71-数值的整数次方
*实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
*/
private static boolean InvalidInput=false;
public static void main(
Android四大组件的理解
Cb123456
android 四大组件的理解
分享一下,今天在Android开发文档-开发者指南中看到的:
App components are the essential building blocks of an Android
[宇宙与计算]涡旋场计算与拓扑分析
comsci
计算
怎么阐述我这个理论呢? 。。。。。。。。。
首先: 宇宙是一个非线性的拓扑结构与涡旋轨道时空的统一体。。。。
我们要在宇宙中寻找到一个适合人类居住的行星,时间非常重要,早一个刻度和晚一个刻度,这颗行星的
同一个Tomcat不同Web应用之间共享会话Session
cwqcwqmax9
session
实现两个WEB之间通过session 共享数据
查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下:
If set to true, all paths for session cookies will be set to /. This can be useful for portlet specification impleme
springmvc Spring3 MVC,ajax,乱码
dashuaifu
spring jquery mvc Ajax
springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决
Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandlerAdapter类handleResponseBody方法,具体实
搭建WAMP环境
dcj3sjt126com
wamp
这里先解释一下WAMP是什么意思。W:windows,A:Apache,M:MYSQL,P:PHP。也就是说本文说明的是在windows系统下搭建以apache做服务器、MYSQL为数据库的PHP开发环境。
工欲善其事,必须先利其器。因为笔者的系统是WinXP,所以下文指的系统均为此系统。笔者所使用的Apache版本为apache_2.2.11-
yii2 使用raw http request
dcj3sjt126com
http
Parses a raw HTTP request using yii\helpers\Json::decode()
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class:
'request' =&g
Quartz-1.8.6 理论部分
eksliang
quartz
转载请出自出处:http://eksliang.iteye.com/blog/2207691 一.概述
基于Quartz-1.8.6进行学习,因为Quartz2.0以后的API发生的非常大的变化,统一采用了build模式进行构建;
什么是quartz?
答:简单的说他是一个开源的java作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。并且还能和Sp
什么是POJO?
gupeng_ie
java POJO 框架 Hibernate
POJO--Plain Old Java Objects(简单的java对象)
POJO是一个简单的、正规Java对象,它不包含业务逻辑处理或持久化逻辑等,也不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hiber
jQuery网站顶部定时折叠广告
ini
JavaScript html jquery Web css
效果体验:http://hovertree.com/texiao/jquery/4.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>网页顶部定时收起广告jQuery特效 - HoverTree<
Spring boot内嵌的tomcat启动失败
kane_xie
spring boot
根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误:
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.Lif
leetcode: sort list
michelle_0916
Algorithm linked list sort
Sort a linked list in O(n log n) time using constant space complexity.
====analysis=======
mergeSort for singly-linked list
====code======= /**
* Definition for sin
nginx的安装与配置,中途遇到问题的解决
qifeifei
nginx
我使用的是ubuntu13.04系统,在安装nginx的时候遇到如下几个问题,然后找思路解决的,nginx 的下载与安装
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
./configure
make
make install
安装的时候出现
用枚举来处理java自定义异常
tcrct
java enum exception
在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。
1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage
public
erlang supervisor分析
wudixiaotie
erlang
当我们给supervisor指定需要创建的子进程的时候,会指定M,F,A,如果是simple_one_for_one的策略的话,启动子进程的方式是supervisor:start_child(SupName, OtherArgs),这种方式可以根据调用者的需求传不同的参数给需要启动的子进程的方法。和最初的参数合并成一个数组,A ++ OtherArgs。那么这个时候就有个问题了,既然参数不一致,那