均不会对表格中其它行造成太大的影响。
与 这种“吝啬”的语法相反的是“贪婪”性的语法。什么是“贪婪”性呢?这个问题也不太好解释。不过,这种特性与正则表达式的解析十分十分地一致。“吝啬性”的正则表达式 用做 精确匹配Group时有着较高的性能,而“贪婪性”的正则表达式用于判断IsMatch时有着较高的性能。 像C类的所有封口均使用大括号的语言,就属于这种“贪婪性”性的语言。过多相同的封口使得代码更加地难于控制。
许多人抱怨微软,为什么不给C#加上动态编译、加上自动完成……,实际上,微软何尝不想加啊,但由于C#的语法特性,是根本无法实现的。下面就用实例来说明为什么C#无法实现动态编译:
看下面的C#代码段,代码中的大括号是不平衡的: class A { class B { class C { int F1() { return 1; } int F2() { return 2; } } } 假如现在已经有了C#的动态编译器,现在要求编译器指明到底是哪里丢失了大括号! 这时,编译器就糊涂了:因为 不论是把大括号加在F1的末尾 还是加在class A的末尾 都是行得通的,虽然这两种情况的意义是完全不同的,即:不能判断F1到底是Class C的方法,还是Class B的方法。那么连带下一步,在代码的其它部分 就更无法判断 调用F1的代码的合理性了。
这里只是举了一个简单的例子,实际的情况比这个更复杂。我们可以看到,在C语言的代码没有完全正确地书写之前,它的结构是有可能极度混乱、多意性的,在这种极度混乱的环境下 是无法判断故障之所在、无法正确识别对象的结构的。自然,这样的动态编译器也就成了“累赘”。
相比之下,同样的内容 看看VB语法: Class A Class B Class C Function X1() As Integer Return 1 End Function End Class
Function X2() As Integer Return 2
End Function End Class End Class 无论你删除End Class还是删除End function,故障范围都不会扩大,定位就可以做到精准。
检错如此,自动完成代码也是如此。在C#环境下,由于代码结构可能存在着“多意性”,所以IDE有可能无法决定做处理的确切位置。
当然,C类的代码并不是没有优点,其优点主要有二: 1.节省代码所占的磁盘和内存空间 2.使编译器的体积能够做得更小(最终还是为了节省磁盘空间) 只有在 内存和磁盘空间非常珍贵的过去的年代里,C类语言代码才能够更具优势。 然而在内存和磁盘如此丰富的今天,这种优势已经成了劣势。
借助于这种具有确定的“开口”与“封口”的特性,相信VB.net会走得更远。 三、语言的灵活性、适应性的对比 C#的代码,可以“随便书写”:在一行里可以写多条语句,一条语句可以分成多行来写。这使得它的代码有可能更加地“松散”。虽然C#允许您把代码写得非常地松散,不过在实际的使用中,几乎所有的使用者都默默地走向了VB的代码风格(一行一条语句)。最后,它的分号成了累赘。
虽然C#的代码更加地自由,不过C#的思想比起VB.net起来却是更加地死板。 在这方面,我觉得把C#比做手动档汽车、把VB.net比做自动档汽车是比较合适的。自动档汽车也可以用手动档的方式驾驶。 C#的思想、思路在VB.net中均可实现,而VB.net的思想(自动档)却经常无法在C#上实现。下面举例说明:
例一:事件模型 在C#中,事件模型是固定的,构造一个事件模型通常需要下面的思路: 建立事件代理结构、声明事件、建立事件处理方法、添加事件句柄、判断事件代理是否挂到上实例、通过代理方法引发事件。 在VB.net中,即可以按照C#所用的模式建立事件,也可以用VB.net自身所带的RaiseEvent方法实现。虽然他们编译后的结构几乎是一样的,但毕竟VB.net让我们有了更多的选择,何乐而不为呢?下面就看看VB.net引发事件的两种方法示例: 方法一:用RaiseEvent. 这是一种非常快捷、代码思路非常清晰的一种方法: Class EventClass Public Event E1(sender as Object,e as XXXEventHandler) Sub XXXX() RaiseEvent E1(Me,new XXXEventHandler(…) End Sub End Class 方法二:用C#的的思路 Public Delegate Sub xxxHandler(ByVal sender As Object, ByVal e As EventArgs)
Public Class A Public Event XXX As xxxHandler Public Overridable Sub OnXXXEvent(ByVal sender As Object, ByVal e As EventArgs) If XXXEvent IsNot Nothing Then XXXEvent.Invoke(sender, e) End If End Sub Sub X() OnXXXEvent(Me, New EventArgs) End Sub End Class “用尽量少的代码 做出更多的事情”是每个人程序员的最爱! 很显然,VB.net在这方面占尽了优势。
例二:可选参数结构 如下代码展示了VB特有的结构:可选参数 Public Sub XXX(P1 As Integer,Optional P2 As String,Optional P3 As String) ‘… End Sub 这样的结构在C#中是无法实现的,但可以通过“重载”的方式实现相同的效果: void XXX(int P1){} void XXX(int P1,string P2){} void XXX(int P1,string P2,string P3{} 当然,用VB.net也可以用重载方式写出一模一样的结构。
例三:事件代理的挂接 C#中:只有一种方法:XXX.XXX += new XXX(…); VB.net中:即可以效仿C#的方法:AddHandler(XXX.xxx,AddressOf XXX) 也可以把过程显示地指定给某个事件:Sub(…) Handles XXX.XXX
利用上面的第二种方法的特性,可以实现在VB.net代码编辑页中 简单地通过下拉框 来精确地定位某个对象的特定事件的处理过程。 遗憾的是,这种方便的特性在C#中是无法实现的。因为C#的语法:XXX.XXX +=的后面可以是任何方法返回的具有相同签名的实例。比如 通过属性、方法,甚至是随机判断后返回的。 这种“过份的自由”使得C#编译器在运行代码前不能准确地确定该对象事件的处理部位。
类似的例子太多了,举不胜举。
总之,VB.net给了我们更大的活动空间,它允许我们在“更快的速度”和“更严格性能要求”之间自由选择。
四、代码书写上的比较 一、变量的命名的区别 C#是区分变量的大小写的,这一点着实让人摸不着门。也许这仅仅是为了效仿Java? 在公共语言规范中(CLS),明确规定“变量不区分大小写”的,真是难为了C#编译器,还要把“重名”的变量重新命名。 相比之下,VB.net更加符合CLS,而且因为不区分大小写,编辑器就更轻松地实现了“自动更正”功能。 C#绝对是“嫁错了人”。 C要区分大小写,其原因有二:一是为了能使用更多的变量资源,二是为了节省编译器的开销(性能和体积上都节省)。 如今,.net环境允许我们使用多达1024个长度的变量名,而且已完全面向对象化,相同的变量可以同时出现在任何object中,所以可用的变量资源数量 理论上已经达到了无穷多个! 在这样的条件下,“区分大小写”使代码在 可读性、可调试性、可辅助性上都造成了不小的负面影响!它已经成为了语言发展的障碍!
二、代码的书写 几乎绝大多数的C#程序员都觉得他们在代码的书写上有着无与伦比的优越性,因为C#代码看上去是如此的简洁。 是的,如果我们仅使用记事本来开发.net应用程序,我相信像VB、Delphi早就灭绝了。 但更糟糕的是:如果我们仅能使用记事本写代码,那么程序员也早就集体自杀了。 说多少也不会有人相信,尤其是C#程序员不会相信 在代码书写方面 他们会完败于VB.net程序员。 我们完全可以用“键盘钩子”做个小程序来检测、验证一下到底是哪种代码更浪费键盘、书写起来更吃力。(这个程序我已经写好,有兴趣的可以到http://img.pcpop.com/upimg2/2005/5/15/491525800.jpg 来下载。注意:必须使用网络快车下载,下载后把文件更改为exe的即可直接运行。这个序使用VB.net + Framework1.0编写,必要的时候 需要你安装.net框架。)
测试结果很明显:VB.net代码需要按键的次数更少、书写更为容易。原因是IDE在其中起到了极大的作用! VB.net不必像C#那样不停地用Ctrl+shift+B来编译检错;不必不停地按下Shift键来输入星罗棋布的符号;不必不停地使用Ctrl+]徘徊于大括号之间;更不必手动输入众多的“关闭符”。 (试一试:输入If A=B [回车],这时 Then和End IF马上就都给你准备好了) (再试一试:在一个刚刚建立的新Class中,输入Inherits后 回车,所有需要实现的方法都给你准备好了)
究其本质,是由于VB.net的语言起到了决定性的作用。 正是因为我们已经告诉了编辑器“这是一个ReadOnly Property”,所以编辑器会给我们自动提供了Get结构代码; 正是因为我们已经告诉了编辑器“这是一个WithEvents的对象”,所以编辑器会在对象事件选择列表里加入它; 正是因为我们已经告诉了编辑器“这是一个Event”,所以当我们要RaiseEvent时,它会准确地出现在列表中; 正是因为我们已经告诉了编辑器“这是一个Function”,所以当我们写上调用方法后,它会自动地在后面加上括号; …… 反观C#,由于代码过度地萎缩,许多事情还需要通过分析整段代码的结构来决定它的属性,导致这些“智能的操作”无法在C#上实现。
但这些动词并不能表明VB.net和C#之间具有什么差距!!!!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/panjun_websoftware/archive/2008/02/28/2129117.aspx
类别:它山之石 | | 添加到搜藏 | 分享到i贴吧 | 浏览(129) | 评论 (0) 上一篇:the mentalist 下一篇:圣诞老人为什么穿红色衣服?
你可能感兴趣的:(.Net开发,vb.net,c#,语言,class,编译器,正则表达式)
从规则到神经网络:机器翻译技术的演进与未来展望
Echo_Wish
前沿技术 人工智能 神经网络 机器翻译 人工智能
从规则到神经网络:机器翻译技术的演进与未来展望引言还记得早些年用翻译软件翻译一句简单的英文句子,却发现翻译结果让人啼笑皆非的日子吗?从“我喜欢吃苹果”被翻译成“我喜欢吃苹果电脑”,到今天的神经网络机器翻译(NeuralMachineTranslation,NMT)能够生成语义流畅、接近人类水平的翻译,我们见证了机器翻译技术的巨大飞跃。但机器翻译技术是如何一步步发展到今天的?未来又将走向何方?本文将
探索前端的未来:深度使用 SolidJS 构建高性能用户界面
桂月二二
前端 ui
SolidJS是近年来前端开发领域的一颗新星,它结合了React的思维模式和Vue的性能优势,提供了一种高效且轻量的框架解决方案。本文将带你深入了解SolidJS的实际使用,并探索如何利用其核心特性构建现代化的高性能应用。为什么选择SolidJS?相比于其他框架,SolidJS有以下独特优势:超高性能:基于fine-grainedreactivity(细粒度反应性)机制,仅更新必要的DOM节点。零
观察者模式(Observer)
你一身傲骨怎能输
设计模式 观察者模式 windows microsoft
观察者模式(ObserverPattern)是一种常用的设计模式,特别适用于需要实现发布-订阅机制的场景。在游戏开发中,事件系统是一个典型的应用案例,允许多个对象对特定事件做出反应。下面我们将详细探讨观察者模式的实现及其在游戏中的应用。观察者模式的基本结构观察者模式主要由以下几个角色组成:主题(Subject):被观察的对象,维护观察者的列表,并在状态变化时通知它们。观察者(Observer):对
LangGraph系列-1:用LangGraph构建简单聊天机器人
梦想画家
机器学习 LangGraph LangChain
在快速发展的人工智能和大型语言模型(llm)世界中,开发人员不断寻求创建更灵活、更强大、更直观的人工智能代理的方法。虽然LangChain已经改变了这个领域的游戏规则,允许创建复杂的链和代理,但对代理运行时的更复杂控制的需求也在不断增长。LangGraph是建立在LangChain之上的重要模块,它将彻底改变我们设计和实施人工智能工作流的方式。在这篇博客中,我们提供了一个关于构建聊天机器人和彻底改
【TOGAF系列】架构开发方法(ADF)第五章
东临碣石82
架构
第5章:C阶段:信息系统架构5.1目标C阶段的目标是:制定目标信息系统架构,描述企业的信息系统架构将如何实现业务架构和架构愿景,以解决架构工作说明书和利益相关者关注的问题根据基线和目标信息系统(数据和应用程序)架构之间的差距,确定候选架构路线图组件5.2方法阶段C涉及数据和应用程序架构的某种组合,无论是按哪种顺序。这两种序列都有支持者。例如,StevenSpewak的企业架构规划(EAP)建议采用
【TOGAF系列】架构开发方法(ADF)第七章
东临碣石82
架构
第7章:C阶段:信息系统架构——应用架构本章描述了阶段C的应用程序架构部分。7.1目标C阶段应用程序架构部分的目标是:开发目标应用程序架构,以解决架构工作说明书和利益相关者关注的问题,实现业务架构和架构愿景根据基线和目标应用程序体系结构之间的差距确定候选体系结构路线图组件7.2输入本节定义了阶段C(应用程序架构)的输入。7.2.1企业外部参考资料■架构参考资料(见TOGAF标准——架构内容)7.2
快速搭建React18后端管理系统:轻量级模板推荐
阮然阳Ian
快速搭建React18后端管理系统:轻量级模板推荐react-template-adminAlightweightReact18backendmanagementtemplate项目地址:https://gitcode.com/gh_mirrors/re/react-template-admin项目介绍在现代Web开发中,快速搭建一个功能完善、易于扩展的后端管理系统是许多开发者的迫切需求。为了满足
解放文档处理:Spire.Doc 去水印版本推荐
颜栩原
解放文档处理:Spire.Doc去水印版本推荐【下载地址】Spire.Doc去水印版本下载Spire.Doc去水印版本下载项目地址:https://gitcode.com/open-source-toolkit/29fe3项目介绍在日常的开发工作中,文档处理是一个常见且重要的任务。无论是生成报告、编辑模板,还是进行格式转换,一个高效、稳定的文档处理库都是不可或缺的。Spire.Doc作为一款功能强
Golang Redis:构建高效和可扩展的应用程序
技术的游戏
golang redis 开发语言
利用Redis的闪电般的数据存储和Golang的无缝集成解锁协同效应在当前的应用程序开发中,高效的数据存储和检索的必要性已经变得至关重要。Redis,作为一个闪电般快速的开源内存数据结构存储方案,为各种应用场景提供了可靠的解决方案。在这份完整的指南中,我们将了解什么是Redis,学习使用DockerCompose安装Redis的简便过程,并掌握将Redis与Golang集成的艺术。通过这次探索,你
探索 GO-SAAS-KIT:构建高效SaaS应用的利器
潘俭渝Erik
探索GO-SAAS-KIT:构建高效SaaS应用的利器kitMicroservicecompatiblestarterkitforgolangsassproject项目地址:https://gitcode.com/gh_mirrors/kit8/kit1、项目介绍GO-SAAS-KIT是一个正在积极开发中的GolangSaaS项目启动套件,旨在为开发者提供一个快速搭建SaaS应用程序的基础框架。这
Phaser引擎开发:UI设计与音效实现all
chenlz2007
游戏开发2 ui 命令模式 游戏 音视频 linux
UI设计与音效实现在Phaser引擎开发中,UI设计和音效实现是两个非常重要的方面,它们直接影响到玩家的体验和游戏的整体质量。本节将详细介绍如何在Phaser中设计和实现UI元素,以及如何添加和管理音效。UI设计UI设计是指用户界面的设计,包括按钮、文本、进度条、图标等各种元素。Phaser提供了一系列的API来帮助开发者创建和管理UI元素。我们将从以下几个方面来探讨UI设计:创建和管理UI元素P
Phaser引擎开发:UI设计与音效实现_音效与UI的结合
chenlz2007
游戏开发2 ui 游戏 性能优化 运维 nginx
音效与UI的结合在开发动作游戏时,音效和UI的设计是提升玩家体验的两个重要方面。音效可以增强游戏的沉浸感,而UI则负责向玩家传递关键信息和提供交互手段。将音效与UI有效结合,可以使游戏更加生动、有趣,同时也能提升游戏的可玩性和用户界面的友好性。本节将详细介绍如何在Phaser引擎中实现音效与UI的结合,包括音效的加载、播放和控制,以及UI元素的创建和管理。音效的加载与播放在Phaser引擎中,音效
Phaser引擎开发:UI设计与音效实现_音效控制与管理
chenlz2007
游戏开发2 ui 游戏 计算机外设 网络 前端
音效控制与管理在Phaser引擎开发中,音效控制与管理是提升游戏沉浸感和用户体验的重要环节。本节将详细介绍如何在Phaser中实现音效的加载、播放、停止、暂停、音量控制等基本功能,并介绍如何管理多个音效文件,确保游戏音效的高效和协调。音效加载在Phaser中,音效文件通常通过preload函数加载。preload函数是Phaser游戏生命周期中的一个阶段,用于预先加载所有需要的资源,包括图像、动画
CryEngine引擎开发:角色控制与状态机_CryEngine引擎基础
chenlz2007
游戏开发 cryengine 游戏引擎 网络 服务器 junit
CryEngine引擎基础1.引擎概述CryEngine是一个功能强大的游戏开发引擎,广泛用于动作游戏的开发。它提供了丰富的工具和功能,使得开发者可以高效地创建高质量的游戏内容。本节将介绍CryEngine的基本架构和主要特点,帮助初学者快速了解这个引擎的基本概念。1.1引擎架构CryEngine采用模块化设计,主要由以下几个核心组件组成:CrySystem:负责引擎的基本初始化和关机操作,包括文
CryEngine引擎开发:网络游戏开发_CryEngine引擎概述
chenlz2007
游戏开发 cryengine 游戏引擎 网络 php 服务器
CryEngine引擎概述引擎架构CryEngine是一款高性能的游戏开发引擎,专为动作游戏类项目的开发而设计。它由多个子系统组成,每个子系统都有其独特的功能和职责。了解这些子系统的架构对于有效地使用CryEngine进行网络游戏开发至关重要。1.渲染系统CryEngine的渲染系统是其最引以为豪的子系统之一。它支持先进的图形技术,如实时全局光照、物理渲染、高动态范围(HDR)和后处理效果。这些技
大数据生态的Apache RocketMQ5.0
Apache RocketMQ
java 开发语言
本文作者:李伟-ApacheRocketMQCommitter,RocketMQPython客户端项目Owner,ApacheDorisContributor,腾讯云消息队列资深开发工程师,著有《RocketMQ分布式消息中间件(核心原理与最佳实践)》。一、RocketMqueue101RocketMQ拥有诸多出色的特性:比如多副本机制,RocketMQ支持存储层的多副本Dledger,它是基于R
【TOGAF系列】架构开发方法(ADF)第三章
东临碣石82
架构
3.1目标A阶段的目标是:就拟议的企业架构所带来的能力和业务价值制定一个高层次的愿景获得架构工作说明书的批准,该说明书定义了开发和部署架构愿景中概述的架构的工作计划3.2输入本节定义了阶段A的输入。3.2.1企业外部参考资料架构参考资料(见TOGAF标准——架构内容)3.2.2非架构输入架构工作请求(见TOGAF标准——架构内容)业务原则、业务目标和业务驱动因素(参见TOGAF标准——架构内容)3
Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向
LCG元
前端 vue.js pdf 前端
在Vue项目中实现导出PDF文件、调整文件页面大小和页面方向的功能,使用html2canvas将HTML内容转换为图片,再使用jspdf把图片添加到PDF文件中。以下是详细的实现步骤和代码示例:步骤1:安装依赖首先,在项目中安装html2canvas和jspdf:npminstallhtml2canvasjspdf步骤2:创建Vue组件以下是一个完整的Vue组件示例,包含导出PDF、调整页面大小和
CryEngine引擎开发:网络游戏开发_CryEngine多人游戏架构
chenlz2007
游戏开发 cryengine 游戏 架构 java 游戏引擎 junit 网络
CryEngine多人游戏架构在网络游戏开发中,多人游戏架构的设计是至关重要的一步。CryEngine提供了一系列强大的工具和系统,使得开发多人游戏变得更加高效和灵活。本节将详细介绍CryEngine中多人游戏架构的原理和内容,包括网络同步、服务器客户端模式、消息传递机制等。1.网络同步网络同步是多人游戏的基础,它确保了所有玩家看到的游戏状态是一致的。CryEngine通过网络同步机制实现了这一目
PEP 8:Python 编程的编码风格指南
软件架构师笔记
python python java mysql
PEP8:Python编程的编码风格指南引言编码风格是一种重要的规范,它不仅可以提高代码的可读性和可维护性,还能够促进团队合作。对于Python这门语言而言,PEP8(PythonEnhancementProposal8)就是一份权威的编码风格指南。本文将详细介绍PEP8的定义、作用以及为什么它是必要的。什么是PEP8?PEP8是由Python社区制定的一份关于Python代码编写风格的指南。PE
java 正则表达式匹配Matcher 类
学会了没
开发语言 java 正则表达式 find和matches
Matcher类用法在Java中,Matcher类是用于匹配正则表达式的工具,而group()方法是Matcher类中的一个重要方法,用于提取匹配结果中的捕获组(capturedgroups)。以下是对group()方法的详细解释:1.正则表达式中的捕获组在正则表达式中,捕获组是通过圆括号()定义的。每个()内的子表达式都是一个捕获组,匹配的内容可以被单独提取。例如:Stringregex="(\
阿里巴巴超大规模 Kubernetes 基础设施运维体系介绍
阿里云云栖号
云栖号技术分享 kubernetes 运维 云原生
简介:ASI作为阿里集团、阿里云基础设施底座,为越来越多的云产品提供更多专业服务,托管底层K8s集群,屏蔽复杂的K8s门槛、透明几乎所有的基础设施复杂度,并用专业的产品技术能力兜底稳定性,让云产品只需要负责自己的业务,专业的平台分工做专业的事。作者:仔仁、墨封、光南序言ASI:AlibabaServerlessinfrastructure,阿里巴巴针对云原生应用设计的统一基础设施。ASI基于阿里云
图书销售数据大屏可视化
一键难忘
python 开发语言 信息可视化
你的技术旅程将在这里启航!本文选自专栏:可视化技术专栏100例可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。每一个案例都会提供完整代码和详细的讲解,不论你是初学者还是资深开发者,这里都有适合你的内容。本专栏至少会发布100篇高质量的文章深入剖析案例。文章目录一.图书销售数据大屏可视化1.1生成图表和地图代码讲解1.2
Electron----桌面应用开发框架
暖阳浅笑-嘿
前端框架 electron 桌面应用
Electron是一个开源框架,旨在使用Web技术(如HTML、CSS和JavaScript)开发跨平台的桌面应用。它结合了Chromium和Node.js,使开发者能够构建具有原生应用体验的桌面应用程序,同时使用熟悉的Web开发工具和技术。1.什么是Electron?定义:Electron是一个跨平台的桌面应用开发框架,由GitHub开发并维护。它允许使用Web技术(HTML、CSS和JavaS
深入理解Electron一Electron架构介绍
weixin_43188769
前端框架 开发语言
深入理解Electron(一)Electron架构介绍Electron是什么引用来自官网的解释:Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。通过将Chromium和Node.js嵌入到它的二进制文件中,Electron允许你维护一个JavaScript代码库,并创建可以在Windows、macOS和Linux上运行的跨平台应用程序ーー不需要本地开发经验。
Electron: 跨平台桌面应用开发框架概览
百态老人
人工智能 笔记
Electron的背景Electron是一个开源框架,允许开发者使用Web技术构建跨平台的桌面应用程序。它最初由GitHub开发,用于构建Atom编辑器,后来发展成为一个独立的项目,支持构建各种桌面应用程序,如VisualStudioCode、Slack、WhatsApp等。Electron的核心优势在于它结合了Chromium的UI能力和Node.js的后端功能,使得前端开发者可以使用熟悉的HT
Python中的 with语句
奶糖芯
python python 开发语言 后端
Python中的with语句在开发中有一些任务,有可能是需要事情进行设置,然后在事后又需要进行清理工作;对于这种场景,with语句就提供了很方便的处理方式;最常见就是对于文件的操作;不使用with语句这样写①有可能忘记关闭文件句柄,②读取文件出现异常处理也没有进行任何的处理;file=open("a.txt")data=file.read()file.close()改为有处理版本(这样代码看起来有
Python框架区别是什么?比较常用的框架有哪些?
其实还好啦
python 编程语言
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。众所周知,Python开发框架大大减少了开发者不必要的重复劳动,提高了项目开发效率的同时,还使得创建的程序更加稳定。目前比较主流的Python框架都有哪些呢?一般大家用的比较多的是Django、Flask、Scrapy、Diesel、Cubes、Pulsar和Tornado。那
Vue.js 如何塑造现代网络体验
清风孤客
vue.js 网络 前端
Vue.js已迅速成为JavaScript框架中的热门之选,以其简洁的设计、灵活性和强大功能而闻名。全球的开发者被Vue.js所吸引,是因为它能极为轻松地构建动态且引人入胜的用户界面。但Vue.js究竟有何用途,又为何如此受欢迎呢?本文将探讨Vue.js及其在各个领域的关键应用。我们将展示开发者如何利用它构建从交互式网络应用、单页应用(SPA)到复杂电子商务网站等各种项目。我们还将讨论其核心特性、
Electron 框架详解与最新动态
海豹工匠
electron javascript 前端
什么是Electron?Electron是由GitHub开发并维护的一个开源框架,旨在使用Web技术(如HTML、CSS和JavaScript)来构建跨平台的桌面应用程序。它嵌入了Chromium和Node.js,使开发者能够使用这些Web技术在桌面环境中构建应用。Electron的核心优势在于其跨平台兼容性,允许开发者编写一次代码,运行在Windows、macOS和Linux平台上。常见的基于E
继之前的线程循环加到窗口中运行
3213213333332132
java thread JFrame JPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
linux 常用命令
BlueSkator
linux 命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
php heredoc原文档和nowdoc语法
dcj3sjt126com
PHP heredoc nowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
[简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
Java新手入门的30个基本概念三
aijuans
java 新手 java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试 敏捷开发 项目管理 IBM 活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程 异常 PL/SQL块 声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
Mockito(三)--完整功能介绍
bijian1013
持续集成 mockito 单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle 数据库 plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
mybatis3入门学习笔记
白糖_
sql ibatis qq jdbc 配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
[货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
Toast原来也可以多样化
dai_lm
android toast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
java数据计算的几种解决方法3
datamachine
java hadoop ibatis r-langue r
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
向网页中插入透明Flash的方法和技巧
dcj3sjt126com
html Web Flash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑 Eos平台 java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
挥洒泪水的青春
lampcy
编程 生活 程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScript iframe contentDocument 高度自适应 局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5 bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">