上一篇博客详细讲到了设计时(DesignTime)和运行时(RunTime)的概念与区别,不过没有给出实际的Demo,今天整理了一下,做了一个例子,贴出来分享一下,巩固前一篇博客讲到的内容. 简单回顾一下: 组件有两种状态,即设计时和运行时,组件存在设计器中时,它就处于“设计时”:组件存在运行过程时,它就处于“运行时”: 无论设计器中组件还是运行过程中的组件,它们都是“组件实例”,所谓“实例”,就是new出来了对象,可想而知,无论在设计器中还是运行过程中,组件都会执行一些代码: 一般情况下,可以…
本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 一.前言 在这里雾央先解释一下战争迷雾的概念,以下内容引自维基百科:      战争迷雾(Fogof War),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军…
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(age=10 * 24 * 60 * 60)def index_page(self, response): for each in response.doc('a[href^="http"]').items(): matchObj = re.match( r'(.*).html', each…
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使用:=分割,而在python中使用in分割.而python中range是函数,不是关键字. package main import "fmt" func main() { nums := []int {10, 20, 30} sum := 0 for i, num := range num…
原文:DirectX11笔记(十二)--Direct3D渲染8--EFFECTS 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article/details/78838316 概述 Effect Files Compiling Shaders 创建 Effect 示例 概述   Effect Framework 是一个工具代码的集合, 他提供了一个框架用于组织 shader 和渲染状态, 并由他们共同实现某种效果.   …
原文 Windows Phone 8初学者开发—第14部分:在运行时绑定到真实的数据 第14部分:在运行时绑定到真实的数据 原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-14-Binding-to-Real-Data-at-Runtime 系列地址:http://channel9.msdn.com/Series/Windows-Phone-8-Develo…
var connstr = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10"; IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql…
编译器设计-RunTime运行时环境 Compiler Design - Run-Time Environment 作为源代码的程序仅仅是文本(代码.语句等)的集合,要使其活动,它需要在目标计算机上执行操作.程序需要内存资源来执行指令.程序包含程序名.标识符等,运行时需要与实际内存位置进行映射. 所谓运行时,我们指的是正在执行的程序.运行时环境是目标机器的一种状态,它可以包括软件库.环境变量等,为系统中运行的进程提供服务. 运行时支持系统是一个包,主要由可执行程序本身生成,有助于进程与运行时环境…
在使用需要授权的软件时,注册付费的目标是软件的使用者,我们开发人员平时用到的一些第三方组件也是需要授权付费的,也就是说,付费者是开发人员,并不是系统(使用了该第三方组件)的最终使用者. 以上两者的区别如下图: 图1 本篇文章介绍.net中怎样开发需要授权的第三方控件(组件),既然授权对象是开发者,不是最终用户,那么授权入口只能提供给开发人员,而不应该提供给最终用户.另外,一般情况下,组件的一次成功授权只能供一个开发人员使用,因此授权信息需要跟开发人员的电脑绑定,这个可以通过关联机器硬件编码来做到…
之前介绍的各类变量都是单独声明的,倘若要求定义相同类型的一组变量,则需定义许多同类型的变量,显然耗时耗力且不宜维护.为此,编程语言引入了数组的概念,每个数组都由一组相同类型的数据构成,对外有统一的数组名称,对内通过序号区分每个数据元素.数组类型由基本的变量类型扩展而来,在基本类型后面加上一对方括号,便形成了该类型对应的数组类别.在Java代码中声明数组变量有两种形式,一种是在变量名称后面添加方括号,例如“int primeNumbers[]”:另一种是在类型后面添加方括号,例如“int[] pr…
经过前面的学习,我们发现演示的Java代码越来越复杂,而且每个例子的代码都堆在入口方法main内部,这会导致如下问题:1.一个方法内部堆砌了太多的代码行,看着费神,维护起来也吃力:2.部分代码描述的是通用算法,比如牛顿迭代法.二分查找法等等,这些通用的算法代码结构固定,很多地方会用到,倘若每次都复制粘贴无疑是苦大仇深:基于此,亟需对纷繁复杂的代码段加以梳理,一方面把代码行依据功能进行划分,这样剥离出来的各段代码不会相互影响:另一方面封装通用的算法代码,做到只定义一次,就能被多次调用.这样既提高了…
前面通过main方法介绍了方法的定义形式,对于方法的输入参数来说,还有几个值得注意的地方,接下来分别对输入参数的几种用法进行阐述.一个方法可以有输入参数,也可以没有输入参数,倘若无需输入参数,则方法定义的圆括号内部直接留空.以打印当前时间为例,下面的showTime方法没有输入参数也能正常实现: // 没有输入参数,则方法名称后面的圆括号内部留空. // showTime方法的用途是显示当前时间 private static void showTime() { Date date = new D…
前面介绍了方法的输入参数,与输入参数相对应的则为输出参数,输出参数也被称作方法的返回值,意思是经过方法的处理最终得到的运算数值.这个返回值可能是整型数,也可能是双精度数,也可能是数组等其它类型,甚至允许不返回任何参数.与输入参数类似,输出参数也需要定义数据类型,它的返回值类型在方法名称前面定义,具体位置参见方法的定义形式“访问权限类型 可选的static 返回值的数据类型 方法名称(参数类型 参数名称)”.这里特别要注意,即使方法不返回任何输出参数,也需定义一个名叫void的返回值类型,而不像输…
早期的编程语言为了节约计算机的内存,给数字变量定义了各种存储规格的数值类型,比如字节型byte只占用一个字节大小,短整型short占用两个字节大小,整型int占用四个字节大小,长整型long占用八个字节大小.但是长整型也只能表达到负2的63次方~2的63次方-1,超出这个范围的巨大整数,竟连long类型也放不下.何况现在不管手机还是电脑的内存都是以GB计量,因此原先锱铢计较几个字节的数值类型便不合时宜了.为此Java又设计了一种大整数类型BigInteger,这个BigInteger能够表示任意…
前面介绍了数值包装类型,因为不管是整数还是小数,它们的运算操作都是类似的,所以只要学会了Integer的用法,其它数值包装类型即可一并掌握.但是对于布尔类型boolean来说,该类型定义的是“true”和“false”的布尔值,并非123之类的数字,因此还需专门的包装类型Boolean来包装boolean.Boolean作为包装类型,与数值包装类型相似,它也拥有三种变量初始化方式.由于布尔包装类型的初始化代码雷同数值包装类型,这里不再赘述,具体代码示例如下: // 初始化包装变量的第一种方式:直…
数组作为一种组合形式的数据类型,必然要求提供一些处理数组的简便办法,包括数组比较.数组复制.数组排序等等.为此Java专门设计了Arrays工具,该工具包含了几个常用方法,方便程序员对数组进行加工操作.Arrays工具的方法说明如下: Arrays.equals(a1, a2); // 判断a1和a2两个数组是否相等,也就是每个元素是否都相等 Arrays.fill(a, val); // 往数组a全部填入指定的数值val dest = Arrays.copyOf(src, newLength)…
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域处理 十.签权 十一.国际化 十二.统一的渲染控制 十三.WebSocket 十四.与Spring.Jsr330的常用注解对比 下面这个场景是特意为此文设计出来的,有点儿乱.但凡类似的场景...Solon 都可以给你一个so easy的支持. Solon 特性之一: 可让控制器实现 Render,从…
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们会简单的描述一下jvm访问控制器的栈校验机制. 这节课,我们还是以实践为主,什么是栈校验机制,讲一百遍不如你自己实际的代码一下然后验证一下,下面我们下把环境搭起来. 第一步,配置系统环境.(copy吧,少年)   path=%JAVA_HOME%/bin JAVA_HOME=C:/Java/jdk1…
前面我们已经对Modbus的基本事务作了说明,也据此设计了我们将要实现的主从站的操作流程.这其中与Modbus直接相关的就是Modbus消息帧的生成.Modbus消息帧也是实现Modbus通讯协议的根本. 1.Modbus消息帧分析 MODBUS协议在不同的物理链路上的消息帧有一些差异,但我们分析一下就会发现,在这些不同的消息帧中具有一下相同的部分,这对我们实现统一的数据操作非常重要,具体描述如下: (1).简单协议数据单元 MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU)…
用代码实现动态控制Service服务运行状态. 效果图: 代码: #region 启动服务 /// <summary> /// 启动服务 /// </summary> /// <param name="scname"></param> void XServiceStart(string scname) { ServiceController sc = new ServiceController(scname); ServiceContro…
方法的出现缘起优化代码结构,但它的意义并不局限于此,正因为有了方法定义,编程语言才更像一门能解决实际问题的工具,而不仅仅是只能用于加减乘除的计算器.在数学的发展过程中,为了表示四则运算,人们创造了加减乘除符号,对应Java编程的“+”.“-”.“*”.“/”.但是随着运算类型的增多,新的运算符号来不及创造了,于是出现了函数形式的运算操作,譬如三角函数sin.cos等等.这种数学函数就是方法的雏形,对于三角函数来说,角度类似方法的输入参数,而函数值类似方法的输出参数.自从有了方法,大部分的算术计算…
钻取是指沿着层次结构(维度的层次)查看数据,钻取可以变换分析数据的粒度.钻取分为下钻(Drill-down)和上钻(Drill-up),上钻是沿着数据的维度结构向上聚合数据,在更大的粒度上查看数据的统计信息,而下钻是沿着数据的维度向下,在更小的粒度上查看更详细的数据.举个例子,当前的粒度是月份,按照年份查看数据是上钻,而按照日期来查看数据是下钻,日期的数据是详细的数据,而每天的数据是高度聚合的数据. 我的PowerBI开发系列的文章目录:PowerBI开发 一,层次结构 钻取数据,离不开层次结构…
十二. 指针 ● 基本概念 位系统下为4字节(8位十六进制数),在64位系统下为8字节(16位十六进制数) 进制表示的, 内存地址不占用内存空间 指针本身是一种数据类型, 它可以指向int, char, float double等不同类型的变量, 仔细揣摩下图: 的时候(在CPU为32位的情况下),要根据指针的类型来前进相应字节数.比如int类型的指针前进四个字节,char型的指针前进一个字节,void类型指针前进一个字节…… 位十六进制数占多少字节,比如0x12345678这是多少字节? 位十…
第五章.JNI机制 4.1 JNI概述 由前面基础知识可知,Android的应用层由Java语言编写,Framework框架层则是由Java代码与C/C++语言实现,之所以由两种不同的语言组合开发框架层,是由于Java代码是与硬件环境彻底"隔离"的跨平台语言,Java代码无法直接操作硬件. 比方:Android系统支持大量传感器.Java运行在虚拟机中,无法直接得到传感器数据.而Android系统基于Linux操作系统.在Linux操作系统中C/C++通过Linux提供的系统调用接口能…
一.前言 继承上一篇所说的,有了对微信小程序的基础概念后,这边将会示范动手做一个小程序,在动手的过程中我们可以更快的熟悉小程序里面的架构和开发流程. 二.小程序的设计 这次要做的是一个猜数字的程序,程序会自动产生一组4个不重复的数字,例如1835,玩家看不到数字,但每次玩家输入一个数字,系统会自动给提示,A代表位置跟数字的正确,B代表数字正确但位置不正确,例如现在输入1502,会提示1A1B,因为1的数字和位置都正确,5的数字正确,但位置不正确,而0和2数字位置都不正确.所以这个系统由三个部分组…
第十二章  Java内存模型与线程 1.硬件效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲. 每个处理器都有自己的高速缓存,而它们又共享同一主内存(Main Memory),当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致,为了解决一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在读写时要根据协议来进行操作,这类协议有…
前言   stm32系列是最常用的单片机之一,不同的版本对应除了引脚.外设.频率.容量等'不同之外,其开发的方法是一样的.  本章讲解使用库函数使用GPIO引脚功能.   补充   本文章为多年前学习方法总结,基本是一通百通(PS:学的是方法而不是技术本身).   stm32系列帮助文件GPIO手把手详细解说   编写GPIO功能,建议初学者学习帮助文件中的案例.    这是固件库V3.4中的GPIO源文件,而V3.5中的资源文件使用的不是固件库,V3.4这个文件明显是GPIO操作LED的,所以…
前言   Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章.   libzip   libzip是一个C库,用于读取,创建和修改zip档案.可以从数据缓冲区,文件或直接从其他zip归档文件直接复制的压缩数据中添加文件.在不关闭存档的情况下所做的更改可以还原.  当前版本是1.7.3,于2020年7月15日发布.  官网:https://libzip.org…
前言   开发国产应用,使用到银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4.V7.V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境.   银河麒麟V10版本   系统版本:    检查qt:    调整颜色:   Qt下载   参考博文<获取下载Qt安装包,Qt源码全国网址备忘录(不用注册Qt账户,即可下载各版本Qt安装包和Qt源码包)>  需要哪个版本下哪个版本,笔者经常使用得是Qt5.9和Qt5.12两个大版本,本次下载Qt5.12.0.…
反射概念在网上到处都有,但是讲到的具体的应用很少,一个重要的原因是现实中真的很少用得到它.引用msdn上对“反射”的解释: "通过 System.Reflection 命名空间中的类以及 System.Type,您可以获取有关已加载的程序集和在其中定义的类型(如类.接口和值类型)的信息. 您也可以使用反射在运行时创建类型实例,以及调用和访问这些实例." 这个解释着实让人难以理解,至少对新手来讲,一头雾水.那么这篇文章我首先从概念下手,用一种尽量易于理解的方式解释一下反射到底是个什么东西…