Welcome![Sign In][Sign Up]
Location:
Search - 任务与函数代码

Search list

[Linux-UnixRTOSandNucleusPLUS

Description: Nucleus PLUS是美国著名RTOS厂商ATI公司(Accelerated Tedmology lnc) 在嵌入式实 时多任务操作系统Nucleus基础上,为实时嵌入式应用而设计的一个抢先式多任务操作系统内核。其95%的代码是用ANSI C写成的,非常便于移植并支持大多数类型的处理器 Nucleus PLUS是一组c函数库,应用程序代码与核心函数连接在一起,生成一个目标代码,下载到目标板的RAM 中或直接烧录到目标板的ROM 中执行。在典型的目标环境中,Nucleus PLUS核心代码区一般不超过20K字节大小。-Nucleus PLUS RTOS is well-known American manufacturers ATI Corporation (Accelera ted Tedmology lnc) in Embedded Real-time Operating System Nucleus multi-task basis, for real-time embedded applications designed to pre-empt a multi-tasking operating system kernel. Its 95% of the code is written in ANSI C, very easy transplantation and to support most types of processors Nucleus PLUS is a function of the group c, Application code and linked to the core function, generating an object code, downloaded to the target board RAM or direct copying to the target board ROM implementation. In a typical target environment, Nucleus PLUS core code is generally not exceed 20 K byte size.
Platform: | Size: 111252 | Author: 柳荫 | Hits:

[.NET/ASPX亮剑Net-深入体验与实战精要

Description: 目录 第一篇 技术基础总结 第1章 .NET,你真的知道了吗 1.1 搞清自己是干什么的 1.2 .NET的几个特性 1.3 万丈高楼平地起:面试者必会 1.3.1 C#介绍 1.3.2 命名空间 1.3.3 C#语法格式要点 1.3.4 变量 1.3.5 类型推断 1.3.6 变量的作用域 1.3.7 常量 1.3.8 流程控制 1.3.9 字符串常见操作 1.3.10 几个常用的数学函数 1.4 .NET的面向对象之门 1.4.1 继承——“子承父业” 1.4.2 委托——“任务书” 1.4.3 事件——“年终分红” 1.4.4 反射——“解剖” 1.5 .NET开发几把小刀 1.5.1 using之多变身 1.5.2 @符号的妙用 1.5.3 预处理指令,有你更轻松 1.6 Visual Studio.NET 2008 实战 1.6.1 如何创建ASP.NET项目 1.6.2 如何创建Windows项目 1.6.3 Visual Studio.NET 2008操作与使用技巧 1.6.4 常见开发调试技巧 1.6.5 错误异常处理方法 本章常见技术面试题 常见面试技巧之面试前的准备 本章小结 第2章 细节决定成败 2.1 Equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 abstract class与interface 2.6 公共变量与属性的区别 2.7 参数修饰符params、out和ref的区别 2.8 值类型和引用类型的区别 2.9 结构与类的区别 2.10 Dispose()和Close()、Finalize()的区别 2.11 string和StringBuilder有什么区别 2.12 Debug版本和Release版本的区别 本章常见技术面试题 常见面试技巧之细节决定成败 本章小结 第3章 ASP.NET开发大杂烩 3.1 页面生命周期 3.1.1 独立页面生命周期事件顺序 3.1.2 具有Master页的生命周期事件顺序 3.1.3 ASP.NET生命周期详解 3.2 页面状态管理 3.2.1 Cookie 3.2.2 HtmlInputHidden隐藏域 3.2.3 ViewState 3.2.4 查询字符串Request 3.2.5 Aplication对象 3.2.6 Session对象 3.2.7 示例项目:在线用户列表统计 3.3 服务器和客户端数据交互 3.3.1 页面数据绑定全攻略 3.3.2 Bind和Eval的区别 3.4 ASP.NET编程中的技巧 3.4.1 页面之间传值的7种方法 3.4.2 get与post方法的区别 3.4.3 ASP.NET服务器控件和HTML控件的区别 3.4.4 Server.Transfer和Response.Redirect的区别 3.4.5 刷新页面的方法汇总 3.4.6 页面事件控制 3.4.7 在URL中传递中文的解决方案 3.4.8 增强用户体验的一些技巧 3.4.9 XHTML与HTML的区别 3.5 打造自己的页面基类PageBase 本章常见技术面试题 常见面试技巧之如何做好自我介绍 本章小结 第4章 Windows窗体编程你也行 4.1 创建简单的WinForm项目 4.2 创建MDI窗体应用 4.3 获取应用程序路径信息 4.4 回车跳转控件焦点 4.5 窗体间传递复杂数据 4.5.1 构造传递 4.5.2 公有字段传递 4.5.3 委托与事件传递 4.6 实现个性化窗体界面 4.7 无标题窗体拖动的两种方法 4.8 让程序只启动一次——单实例运行 4.9 实现系统托盘和热键呼出 4.10 进程与多线程的区别 4.11 创建多线程应用程序 4.12 WinForm开发常见问题 4.12.1 如何设置运行时窗体的起始位置 4.12.2 如何使一个窗体在屏幕的最顶端 4.12.3 实现窗体渐显效果 4.12.4 设置窗口背景为渐变色 4.12.5 模态窗口和非模态窗口 4.12.6 屏蔽窗口右上角的关闭操作 4.12.7 调用执行外部的程序 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第5章 数据库开发 5.1 ADO.NET与抽水的故事 5.1.1 ADO.NET的定义 5.1.2 趣味理解ADO.NET对象模型 5.1.3 进水笼头——建立Connection 5.1.4 抽水机——Command 5.1.5 输水管——DataAdapter 5.1.6 输水管——DataReader 5.1.7 随用随关,释放资源 5.1.8 水库管理——DataSet 5.1.9 水池子——DataTable 5.2 数据库操作类的封装详解 5.2.1 执行命令方法的封装 5.2.2 查询数据方法的封装 5.2.3 数据统计方法的封装 5.2.4 实现SqlParameter方式 5.2.5 实现多数据库的访问 5.3 常用经典SQL语句 5.4 事务处理 5.4.1 SQL和存储过程级别的事务 5.4.2 ADO.NET级别的事务 5.4.3 ASP.NET页面级别的事务 5.4.4 企业级服务COM+事务 5.4.5 System.Transactions 事务处理 5.5 Oracle开发常见问题 5.5.1 Oracle和SQL Server的常用函数对比 5.5.2 Oracle和SQL Server的语句区别 5.5.3 ASP.NET连接Oracle失败的解决方法 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第6章 关于XML 6.1 XML概述 6.1.1 XML和HTML有什么区别 6.1.2 XML的优势 6.2 文档结构与基本语法 6.3 XML操作 6.3.1 XmlDocument创建XML文档 6.3.2 XmlTextWriter创建XML文档 6.3.3 XmlDocument读取XML文档 6.3.4 XmlTextReader读取XML文档 6.3.5 在HTML中显示XML中的数据 6.3.6 JavaScript获取XML内容 6.3.7 项目案例:通用自定义XML配置类 6.4 ADO.NET与XML 6.4.1 读XML文档到DataSet 6.4.2 DataSet转为XML文档 6.5 项目案例1:实现网站的RSS应用 6.6 项目案例2:在线实现RSS阅读器 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第7章 Web Service开发详解 7.1 Web Service基本概念 7.2 Web Service的应用场景 7.3 创建简单的Web Service项目应用 7.4 Web Service属性介绍 7.5 ASP.NET如何调用Web Service 7.6 JavaScript如何调用Web Service 7.6.1 通过webbehavior.htc调用Web Service 7.6.2 通过Microsoft.XMLDOM调用Web Service 7.6.3 XMLHTTP POST调用Web Service 7.6.4 SOAP调用Web Service 7.7 WinForm如何调用Web Service 7.7.1 .NET的WinForm调用Web Service 7.7.2 手动发送HTTP请求调用Web Service 7.8 实现异步调用Web Service 7.9 如何保证Web Service的安全 7.9.1 通过SoapHeader来增强Web Service的安全性 7.9.2 采用SSL实现加密传输 7.9.3 访问IP限制 7.10 Web Service开发中需要注意的 问题 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第8章 用户体验的杀手锏——Ajax 8.1 Ajax概述 8.1.1 什么是Ajax 8.1.2 Ajax技术的核心 8.1.3 Ajax的工作原理 8.1.4 Ajax的优点 8.1.5 Ajax的问题 8.1.6 Ajax适用场景 8.1.7 Ajax不适用场景 8.1.8 XMLHttpRequest开发实例 8.2 微软VS.NET的Ajax开发 8.2.1 安装ASP.NET 2.0 Ajax Extensions 8.2.2 创建ASP.NET Ajax应用程序 8.2.3 ScriptManager控件使用技巧 8.2.4 UpdaetPanel控件使用技巧 8.2.5 AsyncPostBackTrigger实现外部控件引发局部刷新 8.2.6 Ajax错误处理 8.2.7 告诉用户你正在做什么——UpdateProgress控件 8.2.8 ASP.NET AjaxControToolKit简介 8.3 使用第三方组件 Ajax.dll 开发 8.4 使用第三方组件AjaxPro的开发 8.5 使用第三方组件MagicAjax的开发 8.6 Ajax开发原则 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第9章 系统与文件操作 9.1 获取系统信息 9.1.1 用SystemInformation类获取系统信息 9.1.2 用Environment 类获取系统信息 9.1.3 通过WMI获取系统信息 9.1.4 用RegistryKey 类读取系统信息 9.1.5 用API函数获取系统信息 9.1.6 获取系统服务信息 9.2 文件操作 9.2.1 StreamWriter类实现写文件 9.2.2 通过File类创建文件 9.2.3 通过FileStream类创建文件 9.2.4 通过FileInfo类创建文件 9.2.5 追加文本 9.2.6 读取文本文件 9.2.7 读写二进制文件 9.2.8 文件复制、移动、删除 9.3 文件夹目录操作 9.4 读写INI文件 9.5 读写注册表 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第10章 网络应用开发 10.1 Socket基本编程 10.1.1 Socket基本知识 10.1.2 Socket服务端开发步骤 10.1.3 Socket客户端开发步骤 10.2 异步Socket通信——实现MSN机器人 10.2.1 机器人服务端 10.2.2 客户端实现步骤 10.3 基于TCP协议的客户端和服务端 10.3.1 TcpListener 实现网络服务端 10.3.2 TcpClient实现网络客户端 本章常见技术面试题 常见面试技巧之经典问题巧回答 本章小结 第11章 Windows Service开发 11.1 什么是Windows服务 11.2 创建Windows服务 11.3 Windows服务开发常见问题 11.4 安装/卸载Windows服务 11.4.1 安装Windows服务 11.4.2 卸载Windows服务 11.4.3 Windows服务应用程序体系结构 11.5 调试Windows服务 11.5.1 日志调试法 11.5.2 附加进程断点调试法 本章常见技术面试题 职场智慧之初入江湖 本章小结 第12章 新技术初探 12.1 WPF 421 12.1.1 WPF简介 421 12.1.2 WPF何以令人佩服 422 12.1.3 XAML概述 422 12.1.4 WPF开发环境配置 423 12.1.5 项目示例:开发一个简单的WPF应用程序 424 12.2 WCF 427 12.2.1 SOA是什么 427 12.2.2 WCF是什么 428 12.2.3 WCF的优势是什么 428 12.2.4 WCF开发环境 431 12.2.5 项目示例:订票服务WCF开发步骤 431 12.3 LINQ 440 12.3.1 LINQ的架构 441 12.3.2 传统的查询 441 12.3.3 LINQ查询实例 444 12.3.4 LINQ查询语法 448 本章常见技术面试题 449 职场智慧之学习方法 449 本章小结 450 第二篇 系统架构设计思想 第13章 面向对象思想 13.1 为什么要面向对象 454 13.2 什么是面向对象 456 13.3 面向对象的特点 458 13.3.1 封装 459 13.3.2 继承 459 13.3.3 多态 460 13.4 面向对象设计和开发实例 466 13.4.1 传统过程化设计实现播放器功能 466 13.4.2 基于面向对象设计实现播放器功能 467 13.4.3 面向对象封装、继承、多态的应用 468 13.4.4 设计模式、条件外置及反射技术的应用 471 13.5 面向对象分析(OOA)的方法 475 13.6 面向对象设计的原则 478 13.6.1 优先使用(对象)组合,而非(类)继承 478 13.6.2 针对接口编程,而非(接口的)实现 481 13.6.3 开放-封闭法则(OCP) 482 13.6.4 Liskov替换法则(LSP) 485 13.6.5 单一职责原则(SRP) 486 13.6.6 依赖倒置原则(DIP) 486 13.6.7 接口分离原则(ISP) 489 13.6.8 面向对象设计时需要注意的问题 490 本章常见技术面试题 491 本章小结 491 第14章 三层架构项目开发 14.1 什么是三层架构 494 14.1.1 常用的三层架构设计 494 14.1.2 趣味理解:三层架构与养猪 496 14.2 为什么要用三层架构 497 14.3 三层架构项目开发示例 500 14.3.1 数据库设计 500 14.3.2 创建整体解决方案 501 14.3.3 业务实体Model的实现 502 14.3.4 数据访问层的实现 504 14.3.5 业务逻辑层的实现 509 14.3.6 表示层的实现 510 14.4 实现基于工厂模式的三层架构 512 14.4.1 扩展新增数据访问层 512 14.4.2 IDAL抽象接口的实现 513 14.4.3 创建DAL对象的封装 517 14.4.4 实现抽象工厂模式 519 14.4.5 工厂模式的三层架构图 521 本章常见技术面试题 522 职场智慧之程序员的职业规划 523 本章小结 524 第15章 大型网站的性能优化与安全 15.1 高效C#编码优化 526 15.2 页面(HTML)优化的方法 534 15.3 ASP.NET开发性能优化 540 15.3.1 如没必要,尽量使用静态HTML页面 540 15.3.2 避免不必要的回送操作 541 15.3.3 尽量在客户端进行用户输入验证 541 15.3.4 关闭不必要的Session状态 542 15.3.5 优先使用HTML控件,而非服务器控件 542 15.3.6 不必要时关闭ViewState 542 15.3.7 禁用调试模式 543 15.4 系统缓存管理 543 15.4.1 缓存的分类 544 15.4.2 传统缓存方式 545 15.4.3 页面输出缓存 545 15.4.4 页面输出缓存API 548 15.4.5 页面局部缓存 549 15.4.6 应用程序数据缓存 554 15.4.7 文件缓存依赖 555 15.4.8 数据库缓存依赖 557 15.4.9 Memcached——分布式缓存系统 560 15.4.10 Cacheman——.NET架构下的分布式缓存项目 561 15.5 数据库访问性能优化 562 15.5.1 选择合适的.NET数据供应器 563 15.5.2 及时地关闭数据库连接 563 15.5.3 跟踪监视SQL Server当前链接池状态 564 15.5.4 善用数据库的存储过程 567 15.5.5 SqlDataRead和Dataset的选择 567 15.5.6 ExecuteNonQuery和ExecuteScalar的选择 568 15.5.7 数据的绑定DataBinder 568 15.5.8 使用DataReader的注意事项 568 15.5.9 Command对象的使用 569 15.5.10 反复地执行SQL语句用 Prepare() 569 15.5.11 分页的数据访问 570 15.5.12 SQL命令的优化 570 15.5.13 tempdb的使用技巧 572 15.5.14 使用视图代替跨库操作 572 15.5.15 尽量避免大事务操作 572 15.5.16 尽量避免使用游标 573 15.5.17 为你的表建立适当的索引 573 15.6 网站安全防护 573 15.6.1 什么是SQL注入式攻击 573 15.6.2 如何防范SQL注入式攻击 574 15.6.3 实现页面验证码 575 15.6.4 实现文件防盗链 579 15.6.5 采用HTTPS进行访问 584 15.7 IIS优化 584 15.7.1 如何监测IIS服务器并发数 584 15.7.2 采用Gzip压缩页面优化 585 15.7.3 网站应用程序池配置 588 15.8 网站架构优化策略 593 本章常见技术面试题 596 职场智慧之独善其身 596 本章小结 599 第16章 系统设计的原则和技巧 16.1 系统设计的一些原则 602 16.1.1 最适合的才是最好的 602 16.1.2 以不变应万变 603 16.1.3 可扩展性 603 16.1.4 可复用性 604 16.2 系统设计的常用方法 604 16.3 敏捷软件开发12条原则 608 16.4 系统架构师成长之路 611 本章常见技术面试题 615 职场智慧之职场政治 615 本章小结 616 第三篇 项目实战解析 第17章 权限角色管理项目解析 17.1 权限角色管理概述 620 17.2 项目概述 623 17.3 数据库设计 624 17.3.1 数据库实体关系模型 624 17.3.2 表结构设计 625 17.4 数据访问层 627 17.4.1 类设计 627 17.4.2 代码实现 629 17.5 业务逻辑层 629 17.5.1 类设计 630 17.5.2 扩展.NET Framework用户处理机制 632 17.6 接口调用与Web管理实现 638 17.6.1 Web.config配置 638 17.6.2 用户身份和权限验证 638 17.6.3 用户验证接口方式:权限验证用户控件 640 17.6.4 用户验证接口方式:页面基类 642 17.6.5 用户和角色权限的后台管理 644 职场智慧之如何提升自己在公司的价值 652 本章小结 653 第18章 单点登录系统的设计与实现 18.1 项目概述 656 18.1.1 名词定义 656 18.1.2 项目需求描述 656 18.2 业务流程设计 657 18.2.1 用户认证流程 657 18.2.2 安全验证流程 658 18.3 功能与接口设计 659 18.3.1 接*互设计 659 18.3.2 应用系统接口 660 18.3.3 认证服务器功能和接口 660 18.4 数据库设计 660 18.4.1 数据库实体关系模型 661 18.4.2 表结构设计 661 18.5 实现认证服务器 662 18.5.1 SSO解决方案 663 18.5.2 系统管理后台 664 18.5.3 用户通行证管理中心 665 18.5.4 认证服务器接口开发 673 18.6 应用系统接入接口开发 675 18.6.1 用户身份认证 675 18.6.2 接收状态同步 676 18.6.3 用户注销 678 18.6.4 更新认证服务器状态 679 18.7 接口封装及调用 679 职场智慧之晋升之道 682 本章小结 684 第19章 常用.NET开发工具介绍 19.1 源码版本管理:Visual SourceSafe 2005 686 19.1.1 安装和配置VSS 2005服务端 686 19.1.2 安装和配置VSS客户端 691 19.1.3 将项目加入VSS版本控制 692 19.1.4 客户端连接VSS 服务器获取源代码 694 19.1.5 设置VSS支持通过Internet访问 696 19.1.6 版本控制的几个概念 701 19.1.7 VSS项目权限管理 703 19.1.8 VSS数据备份 705 19.1.9 VSS 2005的使用规范 707 19.2 单元测试工具:NUnit 708 19.2.1 NUnit简介 708 19.2.2 手把手教你在.NET中应用NUnit 708 19.3 日志工具——Log4net 714 19.3.1 Log4net简介 714 19.3.2 使用步骤 717 19.3.3 单独配置文件的使用 719 19.4 代码规范检查工具:Microsoft Source Analysis for C# 721 19.5 生成文档注释工具:GhostDoc 723 19.6 反编译工具:Reflector for .NET 732 19.7 动软.NET代码生成器 733 19.8 帮助文档生成工具:Sandcastle 737 19.8.1 Sandcastle介绍 737 19.8.2 生成方式 738 19.8.3 具体生成步骤 740 本章小结 748 附录A 软件编码规范 A.1 概述 750 A.1.1 规范基本原则 750 A.1.2 术语定义 750 A.1.3 文件命名组织 750 A.2 代码外观 751 A.2.1 列宽 751 A.2.2 换行 751 A.2.3 缩进 751 A.2.4 空行 751 A.2.5 空格 752 A.2.6 括号——() 753 A.2.7 花括号——{} 753 A.3 程序注释 754 A.3.1 注释概述 754 A.3.2 文档型注释 755 A.3.3 类注释 755 A.3.4 单行注释 755 A.3.5 注释标签 756 A.4 声明 758 A.4.1 每行声明数 758 A.4.2 初始化 758 A.4.3 位置 758 A.4.4 类和接口的声明 759 A.4.5 字段的声明 759 A.5 命名规范 759 A.5.1 命名概述 759 A.5.2 大写规则 760 A.5.3 缩写 761 A.5.4 命名空间 761 A.5.5 类 762 A.5.6 接口 762 A.5.7 属性(Attribute) 763 A.5.8 枚举(Enum) 763 A.5.9 参数 763 A.5.10 方法 764 A.5.11 属性(property) 764 A.5.12 事件 765 A.5.13 常量(const) 766 A.5.14 字段 767 A.5.15 静态字段 768 A.5.16 集合 768 A.5.17 措词 768 A.6 语句 769 A.6.1 每行一个语句 769 A.6.2 复合语句 769 A.6.3 return语句 769 A.6.4 if、if-else、if else-if语句 770 A.6.5 for、foreach 语句 770 A.6.6 while语句 771 A.6.7 do-while语句 771 A.6.8 switch-case语句 771 A.6.9 try-catch语句 772 A.6.10 using块语句 772 A.6.11 goto语句 772 A.7 其他 773 A.7.1 表达式 773 A.7.2 类型转换 773 A.8 匈牙利命名法 773 A.9 控件命名规则 774 A.9.1 一般命名方法 774 A.9.2 主要控件名简写对照表 774
Platform: | Size: 7456954 | Author: jackws@tom.comjackws | Hits:

[DocumentsjavaNIO

Description: 一系列缓冲区类支撑起了 Java 2 平台标准版的新 I/O(NIO)包。这些类的数据容器形成了其它 NIO 操作(如套接字通道上的非阻塞读取)的基础。在本月的 Merlin 的魔力中,常驻 Java 编程专家 John Zukowski 展示了如何操作那些数据缓冲区来执行如读/写原语这样的任务以及如何使用内存映射文件。在以后的文章里,他将把这里所提到的概念扩展到套接字通道的使用。 Java 2 平台标准版(Java 2 Platform Standard Edition,J2SE)1.4 对 Java 平台的 I/O 处理能力做了大量更改。它不仅用流到流的链接方式继续支持以前 J2SE 发行版的基于流的 I/O 操作,而且 Merlin 还添加了新的功能 — 称之为新 I/O 类(NIO),现在这些类位于 java.nio 包中。 I/O 执行输入和输出操作,将数据从文件或系统控制台等传送至或传送出应用程序。(有关 Java I/O 的其它信息,请参阅 参考资料)。 缓冲区基础 抽象的 Buffer 类是 java.nio 包支持缓冲区的基础。 Buffer的工作方式就象内存中用于读写基本数据类型的 RandomAccessFile 。象 RandomAccessFile一样,使用 Buffer ,所执行的下一个操作(读/写)在当前某个位置发生。执行这两个操作中的任一个都会改变那个位置,所以在写操作之后进行读操作不会读到刚才所写的内容,而会读到刚才所写内容之后的数据。 Buffer 提供了四个指示方法,用于访问线性结构(从最高值到最低值): "capacity() :表明缓冲区的大小 "limit() :告诉您到目前为止已经往缓冲区填了多少字节,或者让您用 :limit(int newLimit) 来改变这个限制 "position() :告诉您当前的位置,以执行下一个读/写操作 "mark() :为了稍后用 reset() 进行重新设置而记住某个位置 缓冲区的基本操作是 get() 和 put() ;然而,这些方法在子类中都是针对每种数据类型的特定方法。为了说明这一情况,让我们研究一个简单示例,该示例演示了从同一个缓冲区读和写一个字符。在清单 1 中, flip() 方法交换限制和位置,然后将位置置为 0,并废弃标记,让您读刚才所写的数据: 清单 1. 读/写示例 import java.nio.*; ... CharBuffer buff = ...; buff.put('A'); buff.flip(); char c = buff.get(); System.out.println("An A: " + c); 现在让我们研究一些具体的 Buffer 子类。 回页首 缓冲区类型 Merlin 具有 7 种特定的 Buffer 类型,每种类型对应着一个基本数据类型(不包括 boolean): "ByteBuffer "CharBuffer "DoubleBuffer "FloatBuffer "IntBuffer "LongBuffer "ShortBuffer 在本文后面,我将讨论第 8 种类型 MappedByteBuffer ,它用于内存映射文件。如果您必须使用的类型不是这些基本类型,则可以先从 ByteBuffer 获得字节类型,然后将其转换成 Object 或其它任何类型。 正如前面所提到的,每个缓冲区包含 get() 和 put() 方法,它们可以提供类型安全的版本。通常,需要重载这些 get() 和 put() 方法。例如,有了 CharBuffer ,可以用 get() 获得下一个字符,用 get(int index) 获得某个特定位置的字符,或者用 get(char[] destination) 获得一串字符。静态方法也可以创建缓冲区,因为不存在构造函数。那么,仍以 CharBuffer为例,用 CharBuffer.wrap(aString) 可以将 String对象转换成 CharBuffer 。为了演示,清单 2 接受第一个命令行参数,将它转换成 CharBuffer ,并显示参数中的每个字符: 清单 2. CharBuffer 演示 import java.nio.*; public class ReadBuff { public static void main(String args[]) { if (args.length != 0) { CharBuffer buff = CharBuffer.wrap(args[0]); for (int i=0, n=buff.length(); i<n; i++) { System.out.println(i + " : " + buff.get()); } } } } 请注意,这里我使用了 get() ,而没有使用 get(index) 。我这样做的原因是,在每次执行 get() 操作之后,位置都会移动,所以不需要手工来声明要检索的位置。 回页首 直接 vs. 间接 既然已经了解了典型的缓冲区,那么让我们研究直接缓冲区与间接缓冲区之间的差别。在创建缓冲区时,可以要求创建直接缓冲区,创建直接缓冲区的成本要比创建间接缓冲区高,但这可以使运行时环境直接在该缓冲区上进行较快的本机 I/O 操作。因为创建直接缓冲区所增加的成本,所以直接缓冲区只用于长生存期的缓冲区,而不用于短生存期、一次性且用完就丢弃的缓冲区。而且,只能在 ByteBuffer 这个级别上创建直接缓冲区,如果希望使用其它类型,则必须将 Buffer 转换成更具体的类型。为了演示,清单 3 中代码的行为与清单 2 的行为一样,但清单 3 使用直接缓冲区: 清单 3. 列出网络接口 import java.nio.*; public class ReadDirectBuff { public static void main(String args[]) { if (args.length != 0) { String arg = args[0]; int size = arg.length(); ByteBuffer byteBuffer = ByteBuffer.allocateDirect(size*2); CharBuffer buff = byteBuffer.asCharBuffer(); buff.put(arg); buff.rewind(); for (int i=0, n=buff.length(); i<n; i++) { System.out.println(i + " : " + buff.get()); } } } } 在上面的代码中,请注意,不能只是将 String 包装在直接 ByteBuffer中。必须首先创建一个缓冲区,先填充它,然后将位置倒回起始点,这样才能从头读。还要记住,字符长度是字节长度的两倍,因此示例中会有 size*2 。 回页首 内存映射文件 第 8 种 Buffer 类型 MappedByteBuffer 只是一种特殊的 ByteBuffer 。 MappedByteBuffer 将文件所在区域直接映射到内存。通常,该区域包含整个文件,但也可以只映射部分文件。所以,必须指定要映射文件的哪部分。而且,与其它 Buffer 对象一样,这里没有构造函数;必须让 java.nio.channels.FileChannel的 map() 方法来获取 MappedByteBuffer 。此外,无需过多涉及通道就可以用 getChannel() 方法从 FileInputStream 或 FileOutputStream获取 FileChannel 。通过从命令行传入文件名来读取文本文件的内容,清单 4 显示了 MappedByteBuffer : 清单 4. 读取内存映射文本文件 import java.io.*; import java.nio.*; import java.nio.channels.*; import java.nio.charset.*; public class ReadFileBuff { public static void main(String args[]) throws IOException { if (args.length != 0) { String filename = args[0]; FileInputStream fis = new FileInputStream(filename); FileChannel channel = fis.getChannel(); int length = (int)channel.size(); MappedByteBuffer byteBuffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, length); Charset charset = Charset.forName("ISO-8859-1"); CharsetDecoder decoder = charset.newDecoder(); CharBuffer charBuffer = decoder.decode(byteBuffer); for (int i=0, n=charBuffer.length(); i<n; i++) { System.out.print(charBuffer.get()); } } } }
Platform: | Size: 5876 | Author: 635868631@qq.com | Hits:

[SourceCodeverilog HDL任务与函数代码

Description: 1、 了解verilog HDL任务与函数的定义及格式 2、 掌握函数与任务的定义与调用 3、 掌握函数与任务在使用时的区别 4、 掌握任务与函数的具体应用
Platform: | Size: 120320 | Author: 439469609@qq.com | Hits:

[Linux-UnixRTOSandNucleusPLUS

Description: Nucleus PLUS是美国著名RTOS厂商ATI公司(Accelerated Tedmology lnc) 在嵌入式实 时多任务操作系统Nucleus基础上,为实时嵌入式应用而设计的一个抢先式多任务操作系统内核。其95%的代码是用ANSI C写成的,非常便于移植并支持大多数类型的处理器 Nucleus PLUS是一组c函数库,应用程序代码与核心函数连接在一起,生成一个目标代码,下载到目标板的RAM 中或直接烧录到目标板的ROM 中执行。在典型的目标环境中,Nucleus PLUS核心代码区一般不超过20K字节大小。-Nucleus PLUS RTOS is well-known American manufacturers ATI Corporation (Accelera ted Tedmology lnc) in Embedded Real-time Operating System Nucleus multi-task basis, for real-time embedded applications designed to pre-empt a multi-tasking operating system kernel. Its 95% of the code is written in ANSI C, very easy transplantation and to support most types of processors Nucleus PLUS is a function of the group c, Application code and linked to the core function, generating an object code, downloaded to the target board RAM or direct copying to the target board ROM implementation. In a typical target environment, Nucleus PLUS core code is generally not exceed 20 K byte size.
Platform: | Size: 110592 | Author: 柳荫 | Hits:

[SCMBycore-1.0.12

Description: Bycore是一个嵌入式操作系统内核。Bycore包括内存管理、任务管理、中断管理、任务互斥、同步与通信管理等功能。Bycore全部由C语言完成,只有少量的与硬件有关的代码由汇编代码完成。Bycore支持64优先级的多任务管理,任务数量由实际的内存大小决定。Bycore是一个抢占式的内核,任务间的切换时间确定,使得用户可以完全确定任务的切换时机。内存管理采用一种全新的算分配策略,兼顾了分配速度、管理简单、利用率高等特点。为便于移植,只需要简单修改Bycore提供的几个函数即可。另外,Bycore提供了一套简单的机制完成对中断的管理,应用程序只需关注一个逻辑的中断,然后指定中断处理函数,Bycore在中断发生时,中断处理函数就能被回调。-Bycore is an embedded operating system kernel. Bycore including memory management, task management, interrupt management, task mutual exclusion, synchronization and communication management. Bycore completed by the C language, only a small amount of code and hardware related to the completion of the assembly code. Bycore priority to support 64 multi-task management, task number from the actual memory size. Bycore is a preemptive kernel, the switching time between tasks to determine which tasks the user can determine the timing of the switch. Memory management using a new operator allocation strategy, taking into account the speed of the distribution, management, simple, high utilization rate. In order to facilitate the transplant, only a simple modification Bycore can provide several functions. In addition, Bycore provides a simple mechanism for the management of completion of the interruption, the application only concerned about the interruption of a logic, and then interrupt handlin
Platform: | Size: 136192 | Author: 李默涵 | Hits:

[OS programnueclus

Description: Nucleus PLUS嵌入式操作系统是目前最受欢迎的操作系统Nucleus PLUS 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,Nucleus PLUS 是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行-Embedded Operating System Nucleus PLUS is the most popular operating system for the Nucleus PLUS real-time embedded applications designed a preemptive multi-tasking operating system kernel, and its 95 of the code is written in ANSIC, so very easy to transplantation and can support most types of processors. From the point of view of realization, Nucleus PLUS is a set of C libraries, applications and core library code linked to generate an object code, download to the target board' s RAM, or direct burn to the target board in the implementation of the ROM
Platform: | Size: 697344 | Author: darren | Hits:

[OS programTimer(VB)

Description: 精密定时器集合:VB版 ■ SetTimer(多Timer):是使用SetTimer()和回调函数产生的Timer,与VB6中定时器控件效果一样,只是用API实现而已,不爱用控件的朋友可能会喜欢 ■ Timer大比拼(CSDN):是CSDN网友提供的测试各种Timer的代码:QueryPerformanceCounte() 多媒体定时器;和VB6定时器控件。测试时,可以看到3种定时器的区别。多媒体定时器和QueryPerformanceCounte()都是较好的选择. 可惜多媒体定时器与VB6似乎不太和谐,如果在回调函数中出现代码,则极易崩溃,即使在IDE种运行正常,生成EXE后也会不稳定,没辙! ■ QTimer原始:是CSDN网友“嗷嗷叫的老马”的作品,使用QueryPerformanceCounter()制作的精密定时器,作者代码很具创造性而且精简。 但有个小问题:拖动鼠标时会停顿。 ■ Active EXE_hTimer: 是在“QTimer原始”基础上改装的一个Active EXE, 拖动鼠标时不会停顿,不爽的是任务管理器进程中又多出了一个hTimer.exe。 ■ mmTimer控件:是对多媒体定时器的包装,先用VC对多媒体定时器进行包装再提供给VB6使用,解决了VB6与多媒体定时器"不和谐"的问题。 不会停顿,进程中也不会出现"多余的" EXE, 推荐使用 Thinker2009 2009-07-04-This is a collection of VB timer, timer to achieve a variety of ways, there are ordinary, but also sophisticated, super-sophisticated, there are dll s ocx s, as well as the active exe, short will be able to find your favorite ... ■ SetTimer (Multi-Timer): is to use SetTimer () and have a callback function of the Timer, Timer control with VB6 in effect, the only API to achieve it, do not like to use controls may be like a friend ■ Timer Competition (CSDN): is provided CSDN User Timer test code: QueryPerformanceCounte () multimedia timer and VB6 timer control. Test, we can see the difference between three kinds of timers. Multimedia timer and QueryPerformanceCounte () are a better choice. Unfortunately, multimedia timer does not seem in harmony with VB6, if there in the callback function in code, while easy to collapse, even in the IDE to run the normal species, after the EXE will be generated instability,没辙! ■ QTimer original: Yes CSDN netizen "Old嗷嗷called" the works,
Platform: | Size: 114688 | Author: 尹刚 | Hits:

[Linux-UnixAKAE_train_task

Description: 北京亚嵌(AKAE)培训--任务task实验代码从应程设计的角度来看,UC/OS-II的任务就是一个线程,就是一个用来解决用户问题的C语言函数和与之相关联的一些数据结构而构成的一个实体。 -Beijing Asia-embedded (AKAE) training- mission task test code from the design point of view should be way, UC/OS-II task is a thread that is used to resolve user issues a C-language function, and associated with Some data structure consisting of an entity.
Platform: | Size: 564224 | Author: | Hits:

[WEB CodeLearningPjquery

Description: 今天的万维网是一个动态的环境,他们的用户为网站的风格和功能设置了一个高标准。为了 创建有趣的交互式的网站,开发者正都转向如 jQuery 这样的javascript库,使普通的任务自 动化和简化复杂的任务。jQuery 库是流行的选择的一个原因是它能够协助大范围的任务。 因为 jQuery 有很多不同的函数,它可像有挑战性的知道从哪开始。然而,这个库的设计是 一致(coherence)与对称(symmetry)的。它的概念的大部分都借鉴于 HTML 与 Cascading Style Sheets (CSS) 的架构。国 为很多 web 开发者使用这些技术比较 javascript 有更多的经 验。库的设计让只有少量编程经验的设计师可以快速入门。事实上,在开始的这章我们会只 用三行代码写一个功能的 jQuery 程序。另一方面,有经验的程序员在概念的一致性得到帮 助,我们将会在后面的更高级的章节中看到。-<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE html PUBLIC "// W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional. dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta httpequiv=" ContentType" content="text/html; charset=utf8"/> <title>Through the LookingGlass</ title> <link rel="stylesheet" href="alice.css" type="text/css" media="screen" /> <script src="jquery.js" type="text/javascript"></script> <script src="alice.js" type="text/javascript"></script> </head> <body> <div id="container">
Platform: | Size: 460800 | Author: | Hits:

[Other Embeded programMicroStar1.1

Description: 最新版本MicroStar1.1不仅能支持按优先级调度,还支持时间片轮转调度和前二者相接合调度。   声明 代码未经严格测试,现仅作学习和交流用途,不得利用其作任何商业目的的开发。擅自使用之进行商业开发,所造成的后果由自已承担,本人不负任何法律上的责任。 使用需知 1. MicroStar1.0最多只能创建16个任务。最多可提供16个定时器。最多能直接提供16个同步对象,若要更多的同步对象,须自行分配内存。 2 为了使代码能在DOS下运行,不少函数声明和定义前都有_FAR宏,以使所有函数都可以通过在os_type.h中添删FAR_MODE宏来编译成远调函数还是近调函数。随演示程序提供的是在小模式下编译的obj文件,不必关心_FAR。 3 部分函数,结构体在DOS下必须使用 far 指针,移植时只需在os_type.h中添加一条-----#define far 4 此手册并不专对PC机编写,因而有些函数的原型与PC机源码不符,请读者注意。 5 调试版本中内核调用用户编写的os_WARNINGE 和 os_ASSERT校验函数,可参考演示程序中的other.c文件。出错类型和警告类型可在os_macro.h中查的。-Not only can support the latest version MicroStar1.1 by priority scheduling, also supports round-robin scheduling and dispatching former two engagement. Declaration code without strict testing, is solely for learning and communication purposes, not for any commercial purpose use of its development. Unauthorized use for commercial development, the consequences of the self-commitments, I assumes no legal responsibility. Using Notes 1. MicroStar1.0 can create a maximum 16 tasks. Provides up to 16 timers. Up to 16 synchronous object directly, to more synchronization objects at their own memory allocation. 2 To make the code can be run under DOS, and many function declarations and definitions have _FAR macro front, so that all functions are available through the os_type.h Sinostate delete FAR_MODE macros to compile near or far call function call function. With a demo program is compiled in a small model obj file, do not care _FAR. 3 partial function, the structure must be used unde
Platform: | Size: 236544 | Author: hugaoquan | Hits:

[Internet-NetworkminiFTP

Description: win SOCKET 编程实现 miniFTPclient/Server Zhe大计算机网络实验,具体要求如下: 使用 Win32Socket 函数实现,不能使用 MFC 的 Csocket 类库(MFC 的 Csocket 类库不 能在 LINUX、UNIX 等环境下使用,跨平台性差),不能用 C++ builder 开发(编程量太少, C++ builder 已完成了很多 SOCKET 代码的编写)。 1. mini FTPclient/ Server 要求:在客户端至少实现 GET file, PUT file, CD( change Directory), PWD( display current directory in server)功能。独立完成 mini FTP client 端及 Server 端程序。mini FTPclient/ Server 不一定要使用标准 FTP 协议,不一定 要与现有的标准 FTPserver 互通,也不一定要与现有的标准 FTPClient(例如 LEAP FTP)互通。mini FTPclient/ Server 可使用自定义的 FTP 协议、应用层 PDU 格式 及握手方式。 2. 补充:有能力的同学在完成任务后,可以进一步开发 client 端软件,尝试与现有的 标 准 FTP server 互 通 , 实 现 GET file, PUT file, CD( change Directory), PWD(displaycurrentdirectoryin server)等功能。有能力的同学在完成任务后,可以 进一步在自己机器上的 linux/ unix 平台下实现 mini FTPclient/ Server 或聊天程序。-miniFTPclient/server based on win SOCKET, coded on c++
Platform: | Size: 89088 | Author: Pepe | Hits:

[OtherMyArray

Description: 动态数组及模板类 任务目标:   学习C++的类机制、模板机制、运算符重载、重载函数机制、内存动态分配与释放等。 任务描述:   使用C++的类机制实现一个动态的数组类MyArray,具有完整的构造和析构函数。使用模板机制,使其能够支持各种数据类型(包括结构体)。MyArray类中实现以下方法: 添加一个元素,使用函数重载的方式,实现1)添加数组尾部,2)添加到指定序号位置; 通过函数,设置指定位置(序号)的元素数据; 删除指定序号的元素; 删除所有元素; 获得元素个数 通过函数获取指定序号的元素; 重载运算符‘[]’,可以通过序号引用数组元素。   实现以上功能的动态数组类,并设计测试代码,验证实现的所有功能。要求数组元素的数据类型为自定义的数据结构,如“学生信息”。 任务提示:   添加元素时用new分配空间,删除时用delete删除空间-Dynamic arrays and template class mission objectives: learning class mechanism C++, the template mechanism, operator overloading, function overloading mechanism, such as dynamic memory allocation and deallocation. Task Description: Use C++ class mechanism to implement a dynamic array class MyArray, with full constructor and destructor functions. Using the template mechanism to support a variety of data types (including structures). MyArray class implements the following methods: add an element, the use of function overloading way to achieve a) to add an array of tail, 2) to specify the ordinal position through the function, setting the specified location (number) of the element data delete the specified number of Elements delete all the elements obtain the number of elements specified number of elements to get through the function overloaded operator ' []' , array elements can be referenced by number. Achieve more dynamic array class functionality and design test code, verif
Platform: | Size: 10502144 | Author: 周畅 | Hits:

[JSP/JavaKyle Simpson You Dont Know JS Scope & Closures

Description: 与“you dont know JS”系列中的其他书籍一样,作用域和闭包潜入许多JavaScript程序员简单避免的语言中较复杂的部分。有了这些知识,就可以实现真正的JavaScript掌握。 了解范围,这是一组规则,帮助JavaScript引擎在代码中定位变量。 深入嵌套范围,一系列变量和函数的容器 探索基于函数和块的范围、“提升”以及基于范围的隐藏的模式和好处。 探索如何为同步和异步任务使用闭包,包括创建JavaScript库(Like other books in the "You Dont Know JS" series, Scope and Closures dives into trickier parts of the language that many JavaScript programmers simply avoid. Armed with this knowledge, you can achieve true JavaScript mastery.)
Platform: | Size: 5733376 | Author: shuafen | Hits:

CodeBus www.codebus.net